DigStoreとは?
DigStoreは、Git形式で、暗号化された、コンテンツアドレス指定型のプロジェクトであり、単一の自己防衛型WebAssemblyモジュールにコンパイルされます。
Gitスタイルのコマンド — init、add、commit、log、clone、push、pull — が使えるプロジェクトでありながら、保存時に暗号化され、1つの.wasmファイルにコンパイルされます。この単一のファイルはあなたのデータであると同時に、そのアクセスを制御するサーバーでもあります。それを保存または中継するホストは、ハッシュでアドレス指定された暗号文しか見えず、それが運んでいるものを読むことはできません。
コンテンツは**URN**でアドレス指定され、URNこそが鍵です。それは場所を示すと同時に復号も行います。誰かにURNを渡せば、そのリソースを読むことができます。渡さなければ読めません — 管理すべき別のパスワードやアクセスリストは存在しません。
Gitとは異なり、DigStoreはビルド出力のために作られており、リポジトリのソースのためのものではありません。プロジェクトをdist/のようなディレクトリに向けると、そこにあるものを取り込みます。
存在理由
| 問題 | DigStoreの答え |
|---|---|
| ホストが公開物を読む・スキャンできてしまう | コンテンツは保存時に暗号化され、ホストはハッシュでキー付けされた暗号文しか保持しない |
| アクセス制御にはパスワードとACLが必要になる | URNこそが権限(capability)である — 共有すれば読み取りを許可し、渡さなければ拒否する |
| サーバーが本物のバイト列を返すと信頼しなければならない | clone/pullは、インストール前にモジュールのstore id、公開者の署名済みroot、そしてオンチェーンのシングルトンrootを検証する — 失敗時は閉じる |
| 「このペイロードはどれくらい大きいか」がファイルサイズから漏れる | すべてのプロジェクトは1つの.wasmであり、内容について何も明かさない均一なサイズにパディングされる |
| サービングロジックがデータとは別の場所に存在する | データとそれを制御するコードが同じモジュールにコンパイルされる |
このドキュメントの読み方
- DigStoreフォーマット — 概念編:プロジェクト、デ プロイ、
.wasmモジュール、URN、暗号化、証明。DigStoreが何であるかを理解したいなら、まずここから。 - CLIチュートリアル — CLIをインストールして実際のプロジェクトで使う:プロジェクトの初期化、ビルドディレクトリの取り込み、デプロイのコミット、リモート経由の共有、コンテンツのストリーミング読み出しまで。
とにかく試してみたいなら、クイックスタート(無料でWeb優先の手順)または**CLIチュートリアル**に直接進んでください。
注記
DigStoreはDIG Networkの一部です。技術設計の全体像はプロトコルセクション(コンテンツアドレス指定型WASM storeフォーマット)にあります。
関連項目
- DigStoreフォーマット — プロジェクト、WASMモジュール、URN、暗号化、証明
- storeの構造 — storeのアイデンティティ、generation、コンパイル済みモジュール
- URNと暗号化 — アドレス指定と復号の両方を行うURN
- CLIチュートリアル — 数分でstoreを作成・コミット・読み取る
- 概念と用語集 — DIGの中核となるエンティティの全体像