以太坊(ETH)不仅仅是一个智能合约平台,其庞大的生态系统催生了众多创新项目,其中Swarm(BZZ)作为以太坊的官方分布式存储层,旨在为以太坊应用提供去中心化、高可用且抗审查的数据存储服务,参与Swarm“挖矿”(更准确地说是“提供存储服务”或“节点运营”),用户可以通过贡献存储空间、带宽和计算资源来获取BZZ代币奖励,本教程将带你了解如何在以太坊生态中参与Swarm挖矿。

Swarm挖矿是什么?为何要参与?
Swarm的目标是创建一个足够强大和激励相容的分布式存储和内容服务网络,以对抗当前互联网的中心化趋势,在Swarm网络中,数据被分割成小块(chunks),并冗余地存储在多个节点上,确保数据的安全性和可用性。
“挖矿”在这里并非像比特币那样的工作量证明(PoW),而是基于资源贡献的激励机制,当你运行一个Swarm节点并提供存储服务时,网络会根据你贡献的存储空间、数据可用性、带宽消耗以及节点性能等因素,向你分配BZZ代币作为奖励,参与Swarm挖矿的意义在于:
Swarm挖矿前的准备工作
在开始Swarm挖矿之前,你需要做好以下准备:
硬件要求:
软件要求:

知识储备:
Swarm挖矿详细步骤教程
以下步骤主要基于Linux(Ubuntu)环境:
安装依赖和工具:
sudo apt update sudo apt upgrade -y sudo apt install -y build-essential git wget curl software-properties-common
安装Go Ethereum (geth): Sw官方推荐使用geth,你可以从geth的GitHub releases页面下载最新版本,或使用以下方式安装(以Ubuntu为例):
# 添加geth官方PPA sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt update sudo apt install -y ethereum
安装完成后,验证安装:geth version
初始化geth节点(如果尚未有): 如果你还没有以太坊节点,可以初始化一个,如果你已经有运行的geth节点,可以跳过此步。

# 创建一个目录用于geth数据 mkdir ~/geth-data # 初始化geth,指定网络(如mainnet或testnet) geth --datadir ~/geth-data init /path/to/genesis.json (genesis.json可以从以太坊官方获取)
注意:运行完整以太坊节点对硬件要求较高,你也可以考虑连接到Infura等第三方服务,但Swarm挖矿通常建议有自己的geth节点以保证稳定性和某些高级功能。
安装Swarm Bee客户端: 从Swarm的GitHub仓库获取最新版本的Bee客户端。
# 克隆Bee仓库 git clone https://github.com/ethersphere/bee.git cd bee # 编译Bee (需要Go环境) make install
编译完成后,bee命令应该可用,验证:bee version
配置Swarm Bee节点: 创建配置文件是关键一步,你可以使用默认配置,或者自定义配置文件config.yml。
# 生成默认配置文件 bee config --config-file ~/bee-config.yml
然后编辑~/bee-config.yml文件,关键配置项包括:
swap.enabled: 是否启用swap(使用硬盘空间作为内存交换),建议启用true以减少内存压力。swap.size: swap文件大小,建议根据可用内存设置,例如10737418240 (10GB)。api.addr: API监听地址,用于与节点交互,如"0.0.0.0:1633"。debug-api.addr: 调试API监听地址,如"0.0.0.0:1634"。p2p.addr: P2P网络监听地址,如"0.0.0.0:1635"。bootnodes: 指定Swarm网络的引导节点列表,可以从Swarm官方获取最新列表。payment.initial-payment: 初始支付设置,用于激励其他节点存储你的数据。payment-recipient: 你的以太坊钱包地址,用于接收挖矿奖励。sync.mode: 同步模式,如"full"(完整节点)或"light"(轻节点,存储要求低,但收益也较少),挖矿通常建议"full"。storage-capacity: 你愿意提供的存储容量(以字节为单位),例如"1073741824000" (1TB)。启动Swarm Bee节点: 使用配置文件启动节点:
bee --config-file ~/bee-config.yml
首次启动会进行同步,下载Swarm网络中的数据,这可能需要较长时间,具体取决于你的网络和硬件配置,同步完成后,节点开始参与网络并提供存储服务。
监控节点状态和收益:
api.addr和debug-api.addr通过HTTP请求获取节点状态信息,如连接数、存储使用情况、收益等,可以使用curl或Postman等工具。payment-recipient地址,你可以通过Etherscan等区块浏览器查看BZZ余额和交易记录。Swarm挖矿的注意事项与最佳实践