Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第 1 章 Walrus 是什么

学习目标

  • 用开发者视角理解 Walrus、Sui、Blob、WAL、Epoch 的关系。
  • 判断一个文件上传后应该保存哪些 ID。
  • 明确本书默认使用 Testnet,何时才切到 Mainnet。

前置条件

  • 你能使用 macOS、Linux 或 WSL 终端。
  • 你知道普通对象存储里的“上传文件、获得 URL、下载文件”流程。
  • 本章不要求已经安装 Walrus。

一分钟模型

Walrus 是面向大文件和非结构化数据的去中心化存储网络。你把文件交给 Walrus,Walrus 客户端把文件编码成多个 sliver,分发到存储节点;Sui 链上对象记录这个 Blob 的所有权、生命周期和可管理状态。

上传后至少要记录两个值:

Blob ID:      内容地址,用来 read、blob-status,也可从同一文件重新计算。
Sui object ID: 链上对象 ID,用来 extend、share、attributes、burn 等管理操作。

这两个 ID 不是同一个东西。Blob ID 由内容决定,同一个文件重复上传会得到同一个 Blob ID;Sui object ID 是链上对象,重复上传或 --force 可能得到新的对象。

网络选择

本书所有命令默认使用 Testnet:

walrus info --context testnet
sui client envs
sui client active-env

常见网络含义:

网络用途成本持久性预期
Testnet学习、开发、调试测试 SUI/WAL可能重置,不承诺长期保存
Mainnet生产数据、真实用户真实 SUI/WAL按购买的 Epoch 和网络规则保存
Devnet预发布验证测试资产变化更快,不适合本书主线

截至 2026-05-06,本书采用的版本事实是:Mainnet mainnet-v1.47.1,Testnet testnet-v1.47.1,Devnet devnet-v1.48.0 为预发布。除非你在验证预发布功能,否则不要把 Devnet 当作稳定教程环境。

最小工作流

下面是本书后续章节反复使用的闭环:

printf 'hello walrus\n' > hello.txt

walrus store hello.txt --epochs 2 --context testnet

walrus blob-status --file hello.txt --context testnet

walrus read <BLOB_ID> --out hello.downloaded.txt --context testnet

diff hello.txt hello.downloaded.txt

store 会消耗 SUI 交易 gas 和 WAL 存储费用。Testnet 可以从 faucet 获取测试 SUI,再用 walrus get-wal --context testnet 换取测试 WAL。

输出解读

典型上传输出会包含类似字段:

Blob ID: oehkoh0352bRGNPjuwcy0nye3OLKT649K62imdNAlXg
Sui object ID: 0x1c086e216c4d35bf4c1ea493aea701260ffa5b0070622b17271e4495a030fe83

保存规则:

  • 要下载或公开引用数据,保存 Blob ID
  • 要延长、设置属性、共享、销毁链上对象,保存 Sui object ID
  • 要证明某个本地文件已经在 Walrus 上,优先用 walrus blob-status --file <FILE>

常见坑

  • 把 Blob ID 传给 extendextend 需要 --blob-obj-id,也就是 Sui object ID。
  • 误以为 delete 等于隐私删除:Walrus Blob 是公开可发现的,缓存、历史节点、别人上传的同内容副本都不受你删除命令控制。
  • 用 Testnet 数据做生产承诺:Testnet 会变,长期数据请用 Mainnet。
  • 忘记 Epoch:Blob 到期后不可读,过期 Blob 不能再正常 extend。

下一步

下一章安装 suiupsuiwalrus,并把客户端连到 Testnet。