Перейти к основному содержимому

What is the dig RPC?

Нормативная спецификация

Это ознакомительная страница. Авторитетная спецификация машинного интерфейса — методы, объект чанка в проводном формате, профиль узла и документы OpenRPC — находится в Protocol · The dig RPC.

dig RPC — это общесетевой интерфейс для чтения контента напрямую из размещённых capsule DigStore .dig. Это сервис JSON-RPC 2.0, работающий поверх HTTPS POST.

Каждый узел, размещающий capsule — эталонный узел на https://rpc.dig.net или любой сторонний узел — предоставляет одни и те же методы с одной и той же семантикой. Клиент, написанный под этот интерфейс, читает данные из всей сети через одну конечную точку. CDN не существует; весь контент в DIG обслуживается только через dig RPC.

Он отдаёт три вещи:

У вас есть…Вы вызываете…Вы получаете…
Retrieval key ресурса (sha256(urn))dig.getContent / dig.getProofШифротекст ресурса + доказательство включения по Меркла (и ZK-доказательство выполнения), передаваемые по кускам
Store id + корень generationdig.getCapsuleВсю capsule .dig для этого generation, потоково по кускам
Store iddig.getManifest / dig.getMetadata / dig.listCapsulesПубличный манифест обнаружения / манифест метаданных store / список подтверждённых generation store

Три свойства, которые его определяют

  • Слепой по конструкции. Узел отдаёт непрозрачный шифротекст, ключ к которому — хеш. Он никогда не видит URN, ключ расшифровки или открытый текст. Запрос, не давший результата, получает детерминированный, неотличимый decoy-поток — никогда не 404 — так что путь чтения никогда не служит оракулом существования. Вся расшифровка и вся верификация доказательств происходят на клиенте.
  • Проверяемый без доверия. Каждый настоящий байт приходит с доказательством включения по Меркла, привязанным к on-chain корню generation. Клиент сворачивает доказательство до корня и принимает его, только если он совпадает с доверенным корнем. Узлу никогда не доверяют факт возврата подлинных байтов.
  • Стримингуется при любом размере. Контент читается ограниченными, выровненными по 64 KiB чанками с явным продолжением. Ресурс в один килобайт и capsule в сто мегабайт читаются одним и тем же циклом, и ни один ответ не является неограниченным.

Как это сочетается с DigStore

DigStore даёт вам формат: контентно-адресуемый, зашифрованный store, который компилируется в единую самозащищённую capsule .wasm, адресуемую через URN, где URN является ключом. dig RPC — это то, как эта capsule обслуживается в сети без доверия к хосту:

  1. Вы компилируете store и закрепляете generation в блокчейне (синглтон DataLayer CHIP-0035). Его корень контента — якорь доверия.
  2. Узел размещает capsule и предоставляет её через dig RPC.
  3. Читатель выводит retrieval_key = sha256(urn), вызывает dig.getContent, пересобирает потоковый шифротекст, верифицирует доказательство включения по on-chain корню и расшифровывает ключом, выведенным из URN — полностью на стороне клиента.

Узел узнал только хеш; он никогда не узнал, что именно отдал.

Чтение за один вызов

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" } }

Клиент повторяет цикл по next_offset, пока не получит complete, верифицирует inclusion_proof по пересобранным байтам относительно root, затем расшифровывает. Результат с "decoy": true означает не найдено — остановитесь и сообщите об этом соответствующим образом.

Как читать эту документацию

  • Методы — полный набор методов (dig.getContent, dig.getProof, dig.getProofStatus, dig.getCapsule, dig.getManifest, dig.getMetadata, dig.listCapsules, dig.health, dig.methods), их параметры и результаты.
  • Использование публичного сетевого RPC — направьте клиент на rpc.dig.net (или любой узел), конечные точки и запуск собственного узла.
  • Стриминг — модель чанков, пересборка, верификация доказательств и эталонный клиентский цикл.
  • Соответствие — что узел ОБЯЗАН реализовать, чтобы быть участником пути чтения сети, плюс CORS, ошибки и модель слепоты во всех деталях.
примечание

dig RPC — часть DIG Network. Полная нормативная спецификация — раздел Protocol · The dig RPC, интерфейс контента сети.