Changelog
What changed across the DIG developer surfaces — the digstore CLI, the dig RPC, and the window.chia provider — including breaking changes and the versioning rules for each.
What changed across the DIG developer surfaces — the digstore CLI, the dig RPC, and the window.chia provider — including breaking changes and the versioning rules for each.
Configure a dig-node: listen ports and listeners, the cache cap, and the upstream the node blind-fetches from — via config and DIGNODE_* environment variables.
The cross-implementation parity discipline: frozen canonical()/retrieval_key() goldens, the C8 crypto fixtures, the shared URN conformance vectors, the OpenRPC-vs-server diff test, and what every reimplementation MUST pass.
Blind serving model, decoy streams, CORS, caching, rate limiting, and conformance checklist for dig RPC endpoints.
DIG Network 核心元件總覽:用於內容定址發布的 DigStore、用於盲目託管與取回的 dig RPC,以及用於存取內容的 DIG Browser。
Every DIG error code in one place: dig RPC JSON-RPC codes, digstore CLI exit codes, and DIGHUb user-facing codes — each with what it means and what to do.
Where to get help with DIG — the community Discord, GitHub issues, and how to file a report that gets answered fast.
The shortest path for integrating developers: connect a wallet, read verified content, build a spend the right way, and deploy from CI — using the typed @dignetwork/dig-sdk and the dig RPC, no prose-scraping required.
Two proof types: synchronous Merkle inclusion proofs that pin served bytes to an on-chain root, and asynchronous ZK / risc0 execution receipts that attest faithful serving — gated on the control plane.
The cross-platform dig-node installer for Windows, macOS, and any Linux: one curl | sh (or a direct download), installs the service and the digstore CLI, and registers dig.local.
Install dig-node and the digstore CLI on Ubuntu/Debian from the apt.dig.net repository, and run dig-node as a managed systemd service.
Chia AugScheme (G1 48B / G2 96B), the five mutually-distinct role DSTs (PUSH/NODE/TOMB/REQ/ATTEST) with their exact signing-message preimages, rogue-key rejection, and the host↔guest parity fixtures.
Fixed-size obfuscation (128 MiB uniform blob, deterministic ChaCha20 filler), WASM injection memory layout (BINDING D2: 2 MiB offset, 384 MiB ceiling), the self-serving guest pipeline, oblivious gather, decoy generation, and the disabled host-attestation gate.
The §21 transport: dig:// locator resolution, the REST surface, the JSON-outer / Chia-codec-inner envelope, 2-leg push v1 (inline | presigned), the authenticated head (PUSH_DST), per-request §21.9 auth with exact signing messages, ETag/delta/pull, tombstone revocation, and decoy indistinguishability.
The provider-blindness invariant, serve_blind (framing-only decode), the root-pinned immutable response cache, the *.on.dig.net + custom-domain resolver, the /v1 control plane (CHIP-0002 login, JWT sessions, refresh reuse-detection, action re-auth, GitHub-OIDC CI), and the accept-on-signature push trust model.
The dig RPC is THE machine interface of the protocol: JSON-RPC 2.0 over HTTP POST, the full method catalogue, the chunk wire object (chunk_lens first-window-only, NO decoy field), range/window math, error codes incl. -32004, and the node profile vs the network profile.
The four ordered integrity gates (merkle inclusion → authenticated decryption → anchored-root pinning → risc0 execution), anchored-root pinning against the CHIP-0035 singleton via coinset.org, the authenticated head, tombstones, the MOCK-by-default risc0 caveat, the freshness contract, and provenance UX surfacing.
The normative node↔node protocol: mTLS peer identity (peer_id = SHA-256(TLS SPKI DER)), the two RPC tiers (mTLS-authenticated PEER/CONTROL vs anonymous PUBLIC-READ so browsers can retrieve content), the ordered NAT-traversal ladder (direct → UPnP → NAT-PMP → PCP → relay-coordinated hole-punch (signalling only) → relayed/TURN transport), the relay's four roles (STUN, introducer, hole-punch signalling, relayed transport), STUN reflexive-address discovery, introducer + gossip peer discovery, PEX peer-exchange (node↔node stream + the RLY-008 relay introducer binding), the Kademlia DHT with provider records that locate which peers hold content (find_node/find_providers/add_provider/ping over a framed dig-nat mTLS stream; content-key = SHA-256(domain-tag ‖ store_id[‖root[‖retrieval_key]])), the relay RelayMessage wire (RLY-001..RLY-008), the peer RPC methods (dig.getPeers/dig.announce/dig.getNetworkInfo/dig.getAvailability/dig.listInventory/dig.fetchRange), and the relay-last-fallback invariant (prefer hole-punch signalling over full relaying).
The normative privacy-mode content-retrieval protocol: the per-request speed-vs-privacy toggle on the dig RPC surface, how a private read is onion-routed end-to-end (requester → guard/entry → middle → exit → providers → back) with a who-knows-what table, telescoping circuit construction over dig-nat mTLS (ntor X25519 + HKDF-SHA256 handshake, fixed-size 512-byte ChaCha20-Poly1305 layered cells, the RELAY command set), the onion-relay directory (dig-dht tag 0x04) and relay advertisement, guard nodes, the exit reusing the ordinary merkle-verified content read, and the honest threat model (partial-adversary unlinkability, stronger than Tor on exit integrity, weaker on anonymity-set size and Sybil cost).
Every machine-readable entry point: /openrpc.json, /error-codes.json, /llms.txt, /knowledge-graph.json, the sitemap, and per-page schema.org JSON-LD — so an agent integrates DIG without scraping a single line of human prose.
Operate a running dig-node: the control.* admin RPCs (status, cache, peers) and the DIG Browser's My Node UI that drives them.
Complete dig RPC method set: dig.getContent, dig.getProof, dig.getCapsule, dig.getManifest, dig.listCapsules, dig.listCollectionItems, dig.getCollection, and service discovery methods.
Make the DIG Browser or extension read from your local dig-node first (dig.local → localhost), falling back to rpc.dig.net — local-first reads that share one .dig cache.
DIG 協定以由下而上的七個層級呈現,兼具規範性與實作定義。capsule(storeId:rootHash)是最基本的單位;主機是盲目的,讀取端則對照鏈上狀態進行驗證。這是權威的協定參考文件。
Publishing stores to remotes, downloading with verification, revoking roots, and understanding public vs. private access models.
Where to check the health of the DIG services — the dig RPC (rpc.dig.net), DIGHUb (hub.dig.net), and the resolver (on.dig.net) — plus how RPC and provider versions are signalled.
Streaming chunk model for byte methods: chunk object structure, 64 KiB alignment, reassembly, proof verification, and reference client loop.
@dignetwork/dig-sdk — ChiaProvider (injected window.chia + WalletConnect→Sage), DigClient (verified reads), Paywall (pay-to-unlock / NFT-gating), and the canonical CHIP-0035 spends at the /spend subpath.
Git-style remote protocol via dig:// URLs, per-request BLS signing, clone/pull/push operations, and self-hosted node setup.
Public RPC endpoint usage, portability across nodes, operating your own node, and rate limiting policies.
透過 JSON-RPC 2.0 讀取 DigStore capsule 的全網通用讀取介面;天生具有盲目性、無需信任即可驗證,且可在任何大小下進行串流傳輸。
從頭到尾完整流程:建立一個 React 應用骨架、用 dig-sdk 接上頁內 Chia 錢包(window.chia 加上 WalletConnect 備援)、透過 chip35 wasm 建構並簽署一筆花費,接著上鏈部署並加上自訂網域——一條主線串起每一個 DIG 核心元件。
DIG Network 核心實體的單頁索引——capsule、store、generation、URN、retrieval key、dig RPC 、chia:// 協定,以及鏈上錨定——每個詞彙都僅定義一次,並連結到其深入文件。
每一次失敗都會提供一個穩定代碼與一個能直接對應到伺服器日誌的請求識別碼(request-id),鏈上花費具備競爭防護機制因此你絕不會重複付款,而明確的前置檢查機制則能在你花費 $DIG 之前,先攔下會被浪費的 capsule。
什麼是 dig-node、為什麼你會想要運行一個,以及如何安裝它——適用於 Ubuntu/Debian 的 apt 儲存庫,或是跨平台的通用安裝程式。
一個完全機器可讀的平台——OpenAPI/OpenRPC、一套已編目的錯誤分類系統、即時定價、JWKS、逐頁 JSON,以及具型別的 @dignetwork/dig-sdk——讓你把錢包與經過驗證的讀取功能接進你的應用,完全不需要爬梳任何一行人類可讀的說明文字。