mcpField
W
walrus-overview

walrus-overview

github.com/mystenlabsクラウド・DevOps344 回インストール1 週間前に更新
リポジトリ

walrus-overview について

walrus-overviewは、Walrusの分散型バイナリデータストレージの構造や用語、ツール選択を案内するスキルです。具体的な作業には関連する専用スキルへ誘導します。

主な機能

  1. 01Walrusの構造と用語の解説
  2. 02ツール選択の案内
  3. 03作業別スキルへの誘導
  4. 04Blob IDとライフサイクルの説明

活用シーン

  1. 01アプリ向けのWalrusインターフェース選択
  2. 02Blob IDと保存期間の把握
  3. 03データの保存・読み取り方法の確認
  4. 04費用・セキュリティ・問題解決の情報探し

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mystenlabs/walrus-skills --skill walrus-overview

インストール後、Claude Code で/walrus-overviewを入力して読み込まれたか確認します。

同梱ファイルevals/evals.json

詳細

Walrus の概要

出典に関する制約: このスキルのすべての情報は、 Walrus のドキュメントと Walrus のホワイトペーパーを出典としています。 このスキルを拡張する場合は、これらの出典のみを使用してください。

Walrus は、Sui ブロックチェーン上に構築された分散型ストレージプロトコルです。消失訂正符号を使用して、独立したストレージノードのネットワーク全体に任意のバイナリデータ(「blob」)を保存します。Sui スマートコントラクトは、blob の登録、認証、支払い、メタデータを管理します。

このスキルは、Walrus を理解するための入り口です。アーキテクチャ、基本的な用語、ユースケースに適したツールの選び方を説明します。具体的なツールの使い方については、該当するスキルを読み込んでください。


関連スキル

トピックスキル読み込むタイミング
CLIwalrus-cliwalrus バイナリを使用するとき
HTTP APIwalrus-http-apiREST 経由で保存/読み取りするとき
TypeScript SDKwalrus-ts-sdkTypeScript からプログラムでアクセスするとき
Move 連携walrus-move-integrationblob を Move コントラクトでラップするとき
ストレージコストwalrus-storage-costs料金、見積もり、コスト最適化について調べるとき
blob のライフサイクルwalrus-blob-lifecycleblob の期間延長、削除、共有を行うとき
サイトwalrus-sites静的ウェブサイトをデプロイするとき
Quiltswalrus-quilts多数の小さな blob をまとめるとき
機密性walrus-data-security保存前に暗号化するとき。Walrus が保証するのは可用性と完全性であり、機密性ではありません
トラブルシューティングwalrus-troubleshooting一般的なエラーとその解決方法を調べるとき

選択ガイド

タスク読み込むスキル
「Walrus とは何ですか?」/「どのように動作しますか?」以下のスキルの内容
「どのツールを使えばよいですか?」以下の判断ツリー
「blob/blob ID/オブジェクト ID とは何ですか?」以下の用語
ファイルを保存するwalrus-cli または walrus-http-api または walrus-ts-sdk
コストを見積もるwalrus-storage-costs
ウェブサイトをデプロイするwalrus-sites
データを暗号化するwalrus-data-security
エラーを解決するwalrus-troubleshooting

スキルの内容

Walrus とは?

Walrus は分散型 blob ストレージプロトコルです。ファイルをアップロードすると、Walrus はそのファイルをフラグメントに符号化して独立したストレージノードに分散し、Sui ブロックチェーンが所有権と可用性を追跡します。その結果、ノード障害に耐え、単一の制御点を持たず、データが改ざんされていないことを暗号学的に証明できるストレージが実現します。

主な特性:

  • デフォルトで公開されています。 blob ID を知っている人なら誰でも、すべての blob を読み取れます。プライバシーが必要な場合は、アップロード前に暗号化してください(walrus-data-security を参照)。
  • コンテンツアドレス方式です。 同じファイルの内容からは、常に同じ blob ID が生成されます。
  • 保存期間に制限があります。 ストレージの期間は一定のエポック数で、最長約 2 年です。より長く保存するには、blob の期間を延長するか、再アップロードする必要があります。
  • 障害耐性があります。 ストレージノードの最大 2/3 が停止しても、データは利用可能な状態を保ちます。
3 層アーキテクチャ
  1. クライアント層。 コード(CLI、SDK、または HTTP リクエスト)が blob を符号化し、フラグメントをストレージノードに分散して、登録と認証のために Sui とやり取りします。

  2. ストレージノード層。 独立した運営者がストレージノードを稼働させ、blob の消失訂正符号化されたフラグメント(「sliver」)を保持します。各ノードは 1 つ以上のシャードを保持します。ノードは sliver を検証し、受領証に署名して、エポックの移行に参加します。メインネットでは 60 を超える運営者がノードを稼働させています。

  3. Sui ブロックチェーン層。 Sui 上のスマートコントラクトが、支払い(WAL トークン)、ストレージリソースの割り当て、シャードとノードの割り当て、blob の登録/認証、メタデータを管理します。ブロックチェーンは調整層であり、データ層ではありません。

保存の仕組み
  1. クライアントは RedStuff 消失訂正符号を使って blob をエンコードし、すべてのシャードに分散するスリバーを生成します(ストレージのオーバーヘッドは約 4.5 倍です)。
  2. クライアントは Sui に blob を登録し、ストレージ料金として WAL、ガス代として SUI を支払います。
  3. スリバーがストレージノードに並行して送信されます。各ノードは検証を行い、受領証に署名します。
  4. ノードの 2/3 が確認すると、署名が 可用性証明書に集約され、Sui に送信されます。
  5. **可用性ポイント(PoA)**は、Walrus が blob の保存期間全体にわたって利用可能であることを保証する時点を示します。
読み取りの仕組み
  1. クライアントはストレージノードにスリバーを要求します。
  2. ノードの 1/3 を超える数からスリバーを収集すると、元の blob を再構築します。
  3. または、アグリゲーターが代わりにこの処理を行い、HTTP 経由で blob を提供します。
主な用語
用語定義
BlobWalrus に保存されるあらゆるバイナリデータ(ファイル、画像、JSON、動画など)。最大約 13.6 GiB です。
Blob IDblob の内容を識別する、URL セーフな base64 文字列です。コンテンツアドレス方式で、同じ内容には同じ ID が割り当てられます。読み取りに使用します。
Sui オブジェクト IDオンチェーンの Blob Sui オブジェクトを識別する 0x... 形式の 16 進文字列です。同じ内容でもアップロードごとに異なります。ライフサイクル操作(延長、削除、共有)に使用します。
エポック一定の期間です。メインネットでは 14 日間です。ストレージ期間はエポック単位で計測されます。
スリバー消失訂正符号でエンコードされた blob の断片で、単一のシャードに保存されます。
シャードストレージ領域を分割した単位で、各エポックにストレージノードへ割り当てられます。
パブリッシャーblob データを受け付ける HTTP サービス(PUT)です。自身が資金を用意したウォレットを使い、エンコード、配布、オンチェーン登録を処理します。Walrus はメインネットで公開の未認証パブリッシャーを運用しておらず、今後運用する予定もありません。認証を設定して独自に運用してください。公開テストネットパブリッシャーは利用できます。
アグリゲーターストレージノードからスリバーを取得して blob を読み取る HTTP サービス(GET)です。両ネットワークには、無料で利用できる公開アグリゲーターが多数あります。
アップロードリレー帯域幅が限られたクライアント(ブラウザーなど)に代わって、エンコードとスリバーの配布を処理するサードパーティーサービスです。チップを請求する場合があります。
WALストレージ料金の支払いに使用する Walrus トークンです。
SUIオンチェーンのガス代の支払いに使用する Sui トークンです。
可用性ポイント(PoA)可用性証明書がオンチェーンに投稿される時点です。この時点以降、Walrus は blob が利用可能であることを保証します。
削除可能な blob有効期限前であれば、所有者が削除できる blob です(デフォルト)。
永続 blobアップロードしたユーザーであっても、有効期限前に削除できない blob です。
キルト複数の blob を格納する単一のストレージ単位で、blob ごとのオーバーヘッドを削減します。
共有 blobSui の共有オブジェクトでラップされた Blob で、誰でも資金を追加して保存期間を延長できます。Walrus コントラクトは参照実装として SharedBlob を提供しています。開発者は独自の共有ラッパーも作成できます。
ストレージプールプレビュー機能です。1 つの前払いストレージ予約を複数の blob で共有するため、各保存で支払うのは書き込み料金のみとなり、プール内のすべての blob が同時に期限切れになります。Rust SDK と Move のみで利用でき、CLI、HTTP API、TypeScript SDK ではまだ利用できません。
Blob ID と Sui オブジェクト ID の違い

新規ユーザーが最も混乱しやすい点です。

Blob IDSui オブジェクト ID
形式URL セーフな base64(例:M4hsZGQ1oCk...)0x プレフィックス付きの 16 進数(例:0xe91eee8c...)
由来blob の内容(コンテンツアドレス方式)Sui トランザクション(アップロードごとに固有)
同じ内容を 2 回アップロードした場合同じ blob ID異なるオブジェクト ID
用途blob の内容の読み取りライフサイクル操作(延長、削除、共有、バーン)
取得元保存レスポンス(blobId フィールド)保存レスポンス(blobObject.id フィールド)
使用するツールの選択ツリー
目的使用するものスキル
ターミナルからファイルをアップロードするwalrus store CLIwalrus-cli
CI/CD パイプラインでアップロードをスクリプト化するwalrus json CLI(JSON モード)walrus-cli
HTTP 経由で任意の言語から保存/読み込みを行うPublisher/aggregator REST APIwalrus-http-api
TypeScript/JavaScript アプリを構築する@mysten/walrus SDKwalrus-ts-sdk
ブラウザーからアップロードするTypeScript SDK + upload relaywalrus-ts-sdk
Move コントラクトで blob を参照するWalrus Move dependencywalrus-move-integration
静的ウェブサイトをデプロイするsite-builder CLIwalrus-sites
多数の小さなファイルを低コストで保存するQuilts(CLI または HTTP)walrus-quilts
機密データ/プライベートデータを保存するクライアント側で(たとえば Seal を使って)暗号化してから保存するwalrus-data-security
SUI や WAL を保有していないユーザーがアップロードできるようにするバックエンドパブリッシャー(スポンサー付き、ウォレット不要)、upload relay、またはバックエンド署名者を使う SDKwalrus-http-api
依存する前に blob が永続的に保存されていることを確認するwalrus blob-status / getBlobObjectwalrus-blob-lifecycle
Walrus と従来のストレージの比較
WalrusAWS S3 / Cloud Storage
制御データを制御する単一の運営者がいませんプロバイダーがすべてを制御します
信頼モデル暗号学的検証プラットフォームへの信頼
耐障害性ノードの 2/3 が故障しても存続しますプロバイダーの SLA
プライバシーすべてのデータはデフォルトで公開されますデフォルトで非公開です
料金モデルWAL + SUI トークン、エポック単位USD、月単位
期間1 回の購入につき最大約 2 年、更新可能無期限
構造フラットな blob ストレージ(ディレクトリなし)ディレクトリ/バケット
検証可能性暗号学的 blob ID、オンチェーン証明書なし

Walrus は、検閲耐性、検証可能性、分散型の可用性、またはプログラム可能なアクセス制御を必要とするユースケースに最適です。あらゆるクラウドストレージをそのまま置き換えるものではなく、オブジェクト/blob ストレージ部分のみを置き換えるものです。

サービスを選ぶ

実際の制約に合わせて選択してください。

  • 呼び出し元が blob を読み込む場合:aggregator を使用します。
  • 呼び出し元が SUI や WAL を保有できない場合:publisher を使用し、Mainnet では独自に運用して認証します。
  • 呼び出し元がウォレットを保有しているものの、ブラウザーまたはモバイルで実行される場合:upload relay を使用します。
  • 呼び出し元が資金のあるウォレットを持ち、サーバー側で実行される場合:ストレージノードと直接通信する TypeScript SDK を使って書き込みます。
ルール
  1. すべての blob は公開されます。 プライバシーが必要な場合は、アップロード前に暗号化してください。
  2. ストレージの利用期間には上限があります。 更新を計画してください。最大は 53 エポック(mainnet で約 2 年)です。
  3. WAL と SUI の両方が必要です。 WAL はストレージ料金、SUI はガス代に使用します。
  4. 公開の mainnet publisher はありません。 upload relay、TypeScript SDK、CLI を使用するか、独自の publisher を運用してください。
  5. 小さな blob を個別に保存すると高コストです。 小さなファイルをまとめて保存するには quilts を使用してください。
  6. Blob ID は object ID ではありません。 コンテンツハッシュ(読み込み用)とオンチェーンオブジェクト(管理用)の違いです。混同しないでください。

コメント