这两天朋友推荐我一个以太坊上的分布式数据存储项目SWARM,近期依据测试网的参与程度进行其代币BZZ的空投,想要参与空投需要运行SWARM的节点客户端,名称为Bee。现将节点客户端的架设方法简要说明如下,如有错误之处,烦请指正。

以下说明基于Ubuntu系统,使用Xshell和Winscp进行云服务器链接,使用root用户操作,所有命令基于官方文档https://docs.ethswarm.org/docs/。

一、安装Bee-clef

Bee-clef是密钥管理工具,bee-clef文件夹下存储着与私钥等同的keystore和password。

1、使用wget下载Bee-clef安装包

wget https://github.com/ethersphere/bee-clef/releases/download/v0.4.7/bee-clef_0.4.7_amd64.deb

2、安装Bee-clef

sudo dpkg -i bee-clef_0.4.7_amd64.deb

以上命令成功后就完成了Bee-clef的安装。

二、安装节点客户端Bee

Bee是节点客户端程序,维持着节点的运行。

1、使用wget下载Bee安装包

wget https://github.com/ethersphere/bee/releases/download/v0.5.0/bee_0.5.0_amd64.deb

2、安装Bee

sudo dpkg -i bee_0.5.0_amd64.deb

以上命令成功后就完成了Bee的安装,也就完成了初期准备工作。

三、生成Bee节点客户端的地址

所谓地址,就是与你所运行的Bee节点客户端相对应的以太坊地址,这个地址就是未来官方进行空投的地址,当然空投BZZ数量的多少要根据你节点的运行时间和运行质量。这里为了生成地址,我们仅需要用简单以下启动命令即可,需要输入两次节点运行密码,输入完毕后,此时节点运行肯定是不成功的,可以忽略报错:

bee start \--verbosity 5 \--swap-endpoint https://rpc.slock.it/goerli \--debug-api-enable  \--clef-signer-enable   \--clef-signer-endpoint /var/lib/bee-clef/clef.ipc

此时,在运行信息中就可以发现自己的地址,出现在以下几个地方,可以对比验证:

INFO信息中using ethereum address 后面,这个没有0x开头;

WARN信息中的receiver=后面,以0x开头;

/var/lib/bee-clef/keystore目录下的keystore文件名中也含有以0x开头的地址。

获取后就可以ctrl+c结束节点运行。

(值得注意的是笔者使用bee-get-addr命令获取的地址与上述提到的以太坊地址不同。)

四、获取gETH和gBZZ

上述代币都是以太坊Goerli测试网上的测试代币,可以登录以下水管网站,输入第三节中你得到的以太坊地址,获得gETH和gBZZ空投。https://faucet.ethswarm.org/

五、通过screen工具在后台运行节点程序

前四步做完后,使用screen工具来运行节点程序,确保断开Xshell的时候,相关程序仍能够在后台运行。使用screen -S swarm命令打开虚拟CLI环境,仍然使用之前的命令开启Bee节点客户端:

bee start \--verbosity 5 \--swap-endpoint https://rpc.slock.it/goerli \--debug-api-enable  \--clef-signer-enable   \--clef-signer-endpoint /var/lib/bee-clef/clef.ipc

此时节点正常运行,虽然也会有很多报错信息,但会有与其他节点成功通信并交换令牌的提示,这样就成功了。可以用以下命令监测客户端已经连接了多少个节点:

curl -s http://localhost:1635/peers | jq '.peers | length'

最后使用ctrl+a然后按d退出screen虚拟CLI,此时Bee客户端进入后台运行,就可以关闭Xshell或进行其他调试,想回到之前的节点,可以使用screen -r swarm回到虚拟CLI。

六、检查是否获取支票及Cashout

成功运行Bee客户端后,节点会不断与其他节点通信,交换令牌的过程就会产生所谓的支票,获取的支票越多,就能拿到更多的空投,而且支票要定期兑现,也就是Cashout,只有兑现的支票才能获得空投。使用以下命令查看自己获得了多少支票:

curl localhost:1635/chequebook/cheque | jq

每一段大括号内的六行数据(从peer到payout)就代表一张支票,有几段,就代表获取了几张支票(值得注意的是”lastreceived”: null的支票是无法cashout的,是没用的支票,无法获得空投)。为简化cashout的过程,我们使用cashout.sh脚本来简化执行。使用以下命令复制cashout.sh脚本到当前目录:

wget -O cashout.sh https://gist.githubusercontent.com/ralph-pichler/3b5ccd7a5c5cd0500e6428752b37e975/raw/7ba05095e0836735f4a648aefe52c584e18e065f/cashout.sh

为该脚本赋予权限:

chmod a+x cashout.sh

使用以下命令就可以列示出当前所有可以cashout的支票:

./cashout.sh

使用以下命令就可以自动cashout价值超过5BZZ的支票:

./cashout.sh cashout-all 

节点保持运行,定期cashout支票,等待空投即可。

七、使用metamask管理当前地址的钱包

后续领完空投后,BZZ代币的交易都要涉及metamask钱包的使用,钱包的私钥保存在/var/lib/bee-clef/目录下,其中keystore文件夹下保存着keystore文件,/var/lib/bee-clef/目录下的password文件里明文保存着与keystore配对的密码。安装metamask,使用keystore文件和对应密码恢复钱包即可(值得提到的是,metamask需要先创建一个钱包,之后才可以使用添加钱包功能导入keystore文件)。笔者接触SWARM项目仅仅两天的时间,对项目还未深入了解,上述内容不构成投资建议,写这篇文章仅仅是为了让更多的人少走弯路,仅此而已,欢迎批评指正。以上。