以太坊作为全球领先的智能合约平台,其生态系统日益庞大,以太坊主网本身并不适合存储大量数据,因为存储成本高昂且会影响网络性能,为了解决这个问题,以太坊社区开发了 Swarm(也常被称为 Bzz),一个去中心化的存储和内容分发服务,旨在为以太坊提供强大的数据层,本教程将带你了解 Swarm 的基本概念,并指导你如何开始使用它。

什么是 Swarm

Swarm 是一个由以太坊基金会主导开发的开源项目,它构建一个分布式的存储、带宽和计算系统,它的目标是:

  1. 去中心化存储:将数据分割成小块,并通过加密方式存储在网络中的多个节点上,确保数据的高可用性和抗审查性。
  2. 内容可寻址:每个数据块都通过其 SHA3 哈希值(称为“地址”)进行唯一标识,这意味着内容本身决定了其地址,任何微小的改动都会导致地址完全不同。
  3. 以太坊数据层:Swarm 旨在成为以太坊的“硬盘”,存储 DApp 的前端代码、用户数据、元数据等,使得智能合约能够与这些数据进行交互。
  4. 经济激励:通过内置的“邮票”(Stamp)机制,使用者需要支付少量以太坊来激励节点存储和提供服务,形成自给自足的经济系统。

Swarm 的核心概念

在开始使用 Swarm 之前,了解几个核心概念非常重要:

  • Manifest (清单文件):类似于传统 Web 服务器上的 index.html,它告诉 Swarm 客户端哪个文件是默认的入口点,以及如何组织多个文件,清单文件本身也是一个 JSON 文件。
  • Stamp (邮票):这是你发布数据到 Swarm 时支付的费用,它包含了你想要存储的数据的引用(通常是一个 enr 地址,即 Ethereum Node Record),支付后,你会收到一个收据,证明你已经为数据付费并可以开始分发。
  • ENR (Ethereum Node Record):Swarm 节点的身份标识,包含了节点的网络地址和公钥等信息,用于节点间的发现和通信。
  • 随机配图