概念與詞彙表
本頁以淺顯易懂的語言,僅一次定義每一個 DIG Network 的核心實體,並連結到深入探討該主題的文件。這是本文件人類可讀的主幹——同時,由於每個詞彙也會以機器可讀的結構化資料形式輸出,這裡也是一份代理程式(agent)可以擷取、藉以學習這個網路詞彙系統的地圖。快速瀏覽以取得方向感;點擊連結以深入了解。
capsule
capsule 是單一不可變的 store 世代(generation):一對 (storeId, rootHash),以 storeId:rootHash 的形式規範表示。它是這個網路的原子單位——涵蓋編譯(一個固定大小的 WASM 模組)、定價(鑄造或提交時統一的每 capsule 價格,以 $DIG 支付)、取回(一個 URN 指向一個 capsule)、快取與來源證明。一個 store 是一連串 capsule 的序列,每次提交產生一個。這個定義在 DigStore、dig RPC 與 DIG Browser 中完全一致。→ 完整了解 capsule
store
store 是一個身分加上其內容與歷史記錄:一連串 capsule 的序列,每次提交產生一個。它的身分是一個 64 位十六進位的 store id,這個 id 就是它在鏈上的 Chia 單例(singleton)launcher id——這個鏈上單例是該 store 目前 root 的權威來源。store 相當於 DIG 世界中的網站。 → store 結構
generation
generation 是 store 的單一已提交狀態,由一個 root hash(該 generation 各資源葉節點的 Merkle root)識別。每一次 commit 都會將目前的內容封存為一個新的、僅能附加(append-only)的 generation——這正是 capsule 所指稱的對象。generation 會像 Git 歷史紀錄一樣單調遞增。→ generation 與 root hash
URN
URN 是 DigStore 集地址與金鑰於一身的字串:
urn:dig:chia:<storeId>[:<rootHash>][/<resource>]。它同時定位某個資源,並衍生出用來解密它的金鑰——持有這個 URN 即是讀取一項公開資源的充分必要條件。面向瀏覽器的簡寫形式是 chia:// 協定。→ URN 與加密
retrieval key
retrieval key 是 SHA-256(canonical_urn)——唯一會離開用戶端的地址。它能定位資源的密文,卻不會洩漏其路徑或 URN。它與 root 無關,因此同一把 retrieval key 能在不同 generation 之間找到同一 個資源;接著再依照正確的 root 對回傳的位元組進行 Merkle 驗證。另外還有獨立的解密金鑰,是在本地端以(HKDF)從同一個 URN 衍生而來,絕不會被傳送出去。→ 一個字串,兩個值
Merkle proof
每個 generation 都會建立一棵 Merkle 樹,每個資源對應一個葉節點,承諾的是所提供的確切密文位元組。每個被提供的資源都附帶一份 inclusion proof(納入證明),用以證明這些位元組屬於那個確切的 root——因此內容無需被解密即可驗證,節點也永遠不會被信任其回傳了真實的位元組。→ Merkle proof
鏈上錨定
每個 store 都是 Chia 主網上的一個單例(singleton)。digstore init 會鑄造它(launcher id 即成為 store id),而每一次 digstore commit 都會以 CHIP-0035 單例更新的形式,將新的 generation root 錨定到鏈上。兩者都會阻塞執行直到確認完成,且都會花費真實資金。鏈上狀態是 store 最新 root 的權威來源。→ 鏈上錨定
DIG payment
$DIG 是 DIG Network 的代幣(一種 Chia CAT)。鑄造一個 capsule(init)或提交一個 capsule,都需要支付統一的每 capsule 價格(以 $DIG 計價),這筆費用會原子性地包含在與錨定相同的鏈上花費之中——不會有另一筆獨立交易,且該筆花費的 memo 會攜帶 store id。→ 費用
DigStore CLI
digstore 是用來建立、提交、分享並讀取 store 的命令列工具——以 Git 風格的工作流程(init、add、commit、log、clone、push、pull)操作這個經過加密、上鏈的 store 格式。→ 指令參考.CLI 教學
dig.toml
dig.toml 是位於專案根目錄的可提交專案設定檔(manifest)——包含 store-id、output-dir、build-command 以及其他專案設定,由 digstore dev、digstore deploy 與骨架範本共用。它不含任何機密資訊(那些來自環境變數),因此可以安全地提交進版本控制。→ 專案設定與建置時期的數值
create-dig-app
create-dig-app(npm create dig-app)是啟動 DIG 專案的 JS 前門:它會從五種範本之一(static、vite-react、next-static、nft-drop、dapp-window-chia)建立一個可直接執行的起始專案——包含一個應用程式、一個 dig.toml,並且(對於錢包相關範本)已接好 DIG SDK。建立骨架是免費的——不鑄造、不上鏈、不花費;只有在你發布一個 capsule 時才需支付統一的 capsule 價格。它是 Rust CLI 的 digstore new 在 npm 端的對應工具。→ 建立應用骨架
GitHub 部署 Action
dig-network/deploy-action 是實現 git-push-to-deploy 的 GitHub Action:它會在執行器(runner)上安裝 digstore CLI,執行 digstore deploy 以推進你的 store(絕不進行鑄造),並將已發布的 capsule、網址與費用回報為步驟輸出、PR 留言、GitHub Deployment 以及提交狀態(commit status)。搭配 if-changed(預設啟用),若建置結果與前次位元組完全相同則不會有任何動作——不會產生花費。→ 從 GitHub Actions 部署
DIG SDK
DIG SDK(@dignetwork/dig-sdk