Ana içeriğe geç

Protokol: Genel Bakış

Bu, DIG Protokolünün normatif şartnamesidir, alttan üste yedi katman olarak tanımlanmıştır. Her katman, normatif referans olarak kendi kanonik crate/dosyasını adlandırır.

Bu, yetkili protokol referansıdır

Bu bölüm, ağın ne yaptığının kaynağıdır. Protokolü, kanonik uygulamaya dosya:satır alıntılarıyla fiilen çalıştığı şekliyle belgeler.

Temel birim: capsule

Her katmanda geçen bir kavram var: capsule = (store_id, root_hash), kanonik olarak storeId:rootHash. Bir store, capsule'lerin sıralı bir dizisidir (eskiden yeniye), her commit için bir tane; kimliği store_id, Chia üzerinde bir CHIP-0035 DataLayer singleton başlatıcı (launcher) id'sinin ta kendisidir. Kimlik, derleme, fiyatlandırma, alma, önbellekleme ve köken kanıtının hepsi capsule başına tanımlanır.

Tez: kör host, istemci tarafında doğrulama, zincire sabitlenmiş kök

  • Kör host. Bir host yalnızca karmalarla anahtarlanmış opak şifreli metin tutar. Ne URN ne de anahtar tutar, capsule'ün kendi çıktısını olduğu gibi aktarır ve bir isabeti bir kaçırmadan ayırt edemez. Tel üzerinde bir decoy alanı ve bir CDN yoktur — içerik yalnızca dig RPC üzerinden sunulur.
  • İstemci tarafında doğrulama. Her bayt, okuyucunun cihazında, kaynak-başına bir merkle dahil etme kanıtıyla zincir üzeri bir köke karşı kontrol edilir, ardından kimlik doğrulamalı olarak şifresi çözülür. Güven asla sunum kaynağına dayanmaz.
  • Zincire sabitlenmiş kök. Güvenilen kök yalnızca Chia üzerindeki CHIP-0035 singleton'ından gelir (coinset.org üzerinden çözülür), asla sunulan "en son"dan değil.

Yedi katman

#KatmanTanımladığı şeyKanonik referans
0Kimlik & adlandırmastore, capsule, generation; store_id = başlatıcı iddigstore-core::capsule, ::urn
0URN & adreslemeurn:dig:chia:… grameri; köksüz retrieval_keydigstore-core::urn, lib.rs
1KriptografiHKDF KDF; AES-256-GCM-SIV mühürlemedigstore-core::crypto
1Merkle dahil etme kanıtlarıD5 kaynak-başına yaprak; NODE_TAG katlamadigstore-core::merkle
1BLS imzaları & DST'lerChia AugScheme; beş rol DST'sidigstore-crypto::bls
2capsule formatıDIGS veri bölümü (BINDING D1)digstore-core::datasection
2Kendini savunan modülsabit boyutlu gizleme; sunum guest'idigstore-compiler, digstore-guest
4Zincir üzeri sabitlemestore = singleton; capsule = kök-ilerletmechip35_dl_coin, digstore-chain
4DIG CAT ödemesi & fiyatlandırmacapsule başına, dinamik, USD-endekslichip35_dl_coin::dig
6dig RPCmakine arayüzü (JSON-RPC 2.0)hub retrieval, dig-node
5§21 aktarım & pushdig:// konumlandırıcı, REST, push v1digstore-remote
7DIG Node eş ağımTLS eş kimliği, NAT geçişi, STUN, tanıtıcı (introducer), relay teli, eş RPC'sidig-gossip, dig-relay, dig-nat, dig-node
6Doğrulama & köken kanıtıdört sıralı bütünlük geçididigstore-core::merkle, dig-node
6Kör host modelisağlayıcı-körlüğü; çözücü; /v1 kontrol düzlemihub retrieval/resolver/api
Uygunluk & eşitlikçapraz-uygulama eşitlik disiplinidondurulmuş goldenlar, OpenRPC diff'i

(3. katman ve §21 aktarımı okuma yoluyla iç içe geçer; tablo bunları bir okuyucunun onlarla karşılaştığı yerde gruplar. Tam katman numaralandırması her sayfada verilmiştir.)

Bir capsule katmanlardan nasıl akar

Bir yayıncı içeriği parçalar + şifreler (K1) bir capsule formatına (K2) dönüştürür, bu da kendini sunar (K3), zincir üzerinde sabitlenir (K4) ve §21 aktarımı üzerinden push edilir (K5). Herhangi bir istemci, onu dig RPC üzerinden okur ve tamamen istemci tarafında zincire sabitlenmiş köke karşı doğrular (K6). Her kriptografik sabit, üretici, host ve doğrulayıcı arasında paylaşılan tek bir tanıma sahiptir — C8 eşitlik değişmezi.

Terminoloji

  • chia:// — ağın içerik adresi (bir tarayıcının açtığı şey).
  • dig:// — §21 aktarım konumlandırıcısı (CLI/eş düzlemi) ve DIG Browser'ın dahili sayfa şeması — iki ayrı kullanım, asla içerik adresi değil.
  • urn:dig: — her ikisinin de türediği URN ad alanı.
  • store / capsule — kimlik ve onun değişmez generation'ı.
  • $DIG — capsule başına ödenen CAT; DigStore — store formatı.