Lewati ke konten utama

What is the dig RPC?

Spesifikasi normatif

Ini adalah halaman orientasi. Spesifikasi antarmuka mesin yang otoritatif — metode, objek wire chunk, profil node, dan dokumen OpenRPC — ada di Protocol · The dig RPC.

dig RPC adalah antarmuka yang berlaku di seluruh jaringan untuk membaca konten langsung dari capsule .dig DigStore yang di-host. Ini adalah layanan JSON-RPC 2.0 yang diucapkan melalui HTTPS POST.

Setiap node yang meng-host capsule — node referensi di https://rpc.dig.net, atau node pihak ketiga mana pun — mengekspos metode yang sama dengan semantik yang sama. Sebuah klien yang ditulis terhadap antarmuka ini membaca dari seluruh jaringan melalui satu endpoint. Tidak ada CDN; semua penyajian konten di DIG dilakukan melalui dig RPC.

Ia menyajikan tiga hal:

Anda punya…Anda memanggil…Anda mendapatkan kembali…
retrieval key sebuah resource (sha256(urn))dig.getContent / dig.getProofCiphertext resource tersebut + sebuah merkle inclusion proof (dan ZK execution proof), di-streaming dalam chunk
store id + root generationdig.getCapsuleSeluruh capsule .dig untuk generation tersebut, di-streaming dalam chunk
store iddig.getManifest / dig.getMetadata / dig.listCapsulesManifest discovery publik / manifest metadata store / daftar generation terkonfirmasi milik store

Tiga properti yang mendefinisikannya

  • Blind secara konstruksi. Sebuah node menyajikan ciphertext buram berkunci hash. Ia tidak pernah melihat URN, decryption key, atau plaintext. Permintaan yang tidak menemukan hasil dijawab dengan stream decoy yang deterministik dan tak terbedakan — bukan 404 — sehingga jalur baca tidak pernah menjadi existence oracle. Semua dekripsi dan verifikasi proof terjadi di klien.
  • Dapat diverifikasi tanpa kepercayaan. Setiap byte asli tiba dengan sebuah merkle inclusion proof yang berakar pada root generation on-chain. Klien melipat proof tersebut hingga ke root dan hanya menerimanya jika cocok dengan root yang dipercayanya. Node tidak pernah dipercaya begitu saja telah mengembalikan byte yang asli.
  • Dapat di-streaming pada ukuran berapa pun. Konten dibaca dalam chunk yang dibatasi, selaras 64 KiB dengan kelanjutan (continuation) eksplisit. Sebuah resource satu kilobyte dan sebuah capsule seratus megabyte dibaca dengan loop yang sama, dan tidak ada satu pun respons yang tidak dibatasi.

Bagaimana ini cocok dengan DigStore

DigStore memberi Anda format: sebuah store content-addressable dan terenkripsi yang dikompilasi menjadi satu capsule .wasm yang mempertahankan dirinya sendiri, dialamatkan oleh sebuah URN di mana URN itu adalah kuncinya. dig RPC adalah cara capsule tersebut disajikan di jaringan tanpa memercayai host:

  1. Anda mengompilasi sebuah store dan menanamkan sebuah generation on-chain (sebuah singleton DataLayer CHIP-0035). Root konten-nya adalah trust anchor.
  2. Sebuah node meng-host capsule tersebut dan mengekspornya melalui dig RPC.
  3. Seorang pembaca menurunkan retrieval_key = sha256(urn), memanggil dig.getContent, menyusun ulang ciphertext yang di-streaming, memverifikasi inclusion proof terhadap root on-chain, dan mendekripsi dengan kunci turunan-URN — sepenuhnya di sisi klien.

Node hanya mempelajari sebuah hash; ia tidak pernah tahu apa yang disajikannya.

Satu pembacaan dalam satu panggilan

POST https://rpc.dig.net
Content-Type: application/json

{ "jsonrpc": "2.0", "id": 1, "method": "dig.getContent",
"params": {
"store_id": "5b1f…e9",
"root": "latest",
"retrieval_key": "9f23…c1"
} }
{ "jsonrpc": "2.0", "id": 1, "result": {
"ciphertext": "<base64>",
"total_length": 5242880,
"offset": 0, "length": 3145728,
"complete": false, "next_offset": 3145728,
"inclusion_proof": "<base64>",
"decoy": false,
"root": "a07c…4d" } }

Klien melakukan loop pada next_offset hingga complete, memverifikasi inclusion_proof atas byte yang tersusun ulang terhadap root, lalu mendekripsi. Hasil dengan "decoy": true berarti tidak ditemukan — hentikan dan laporkan sebagai demikian.

Cara membaca dokumen ini

  • Metode — seluruh kumpulan metode (dig.getContent, dig.getProof, dig.getProofStatus, dig.getCapsule, dig.getManifest, dig.getMetadata, dig.listCapsules, dig.health, dig.methods), parameter, dan hasilnya.
  • Menggunakan RPC jaringan publik — arahkan klien Anda ke rpc.dig.net (atau node mana pun), endpoint, dan cara mengoperasikan satu sendiri.
  • Streaming — model chunk, penyusunan ulang, verifikasi proof, dan sebuah loop klien referensi.
  • Konformansi — apa yang HARUS diimplementasikan sebuah node agar menjadi anggota jalur baca jaringan, plus CORS, error, dan model blind secara lengkap.
catatan

dig RPC adalah bagian dari DIG Network. Spesifikasi normatif lengkapnya ada di bagian Protocol · The dig RPC, antarmuka konten jaringan.