Swarm
世纪大撸!

SWARM客户端Bee的进阶部署教程

推荐:全球第二大交易所OKEx欧意,邀请链接: https://www.ouyi.fit/join/1837888  能交易XCH,BZZ,BTC,ETH等等安全交易,新用户能开合约。

一、决定Bee客户端支票产量的因素
这是一个所有人都在好奇的问题,笔者为了探索Bee客户端产出支票的影响因素,先后测试了国内、国外不同配置的云服务器,通过反复的客户端部署和观察,求得了一点心得,可以作为大家的参考。
以下说明基于Ubuntu系统,使用Xshell和Winscp进行云服务器链接,使用root用户操作,所有命令基于官方文档https://docs.ethswarm.org/docs/。
1、带宽
SWARM作为一个底层的分布式存储和通信项目,节点间的通信质量和效率,是决定本地客户端对外链接节点数量的最重要因素,笔者尝试了部署国内4核8G内存5M带宽的云服务器,对外节点连接数量稳定被控制在40以内,每日支票产出量6-10张,属于最基本节点运行水平。值得提出的是,对于使用家用电脑和家用宽带进行节点运行的读者,虽然家用宽带带宽一般在100M-500M带宽甚至更高,但仅为下行速率,即从其他节点接受和下载数据的带宽,家用宽带的上行速度是被运营方限制的,大概也就在几十M左右,因此上传数据的速度是被限制的。为测试带宽的影响,笔者部署了国外1G带宽的服务器,对外节点连接数量有明显提高但不够稳定,波动区间在200-500左右,每日产出支票大概在60-150张。
2、CPU
Bee客户端是非常吃CPU的,对CPU的资源消耗量非常大,笔者在单服务器上同时运行了两个Bee节点,在数据同步初期,4核心CPU的资源占用为300%+,8核心CPU的资源占用为150%+,节点运行稳定后,4核心CPU的资源占用为180%+,8核心CPU的资源占用为90%+。长期CPU资源的高度占用就会导致宕机和客户端进程被断开,这也是很多客户端运行不稳定,经常断开的原因。
3、硬盘占用
SWARM是一个分布式存储项目,因此对硬盘占用的要求是相对较高的,值得注意的是,一般客户端运行后硬盘的占用会稳定在21G左右,因为在Bee的配置文件中默认的是db-capacity: 5000000,也就是说人为设置了客户端的数据承载上限为21G左右。可以通过在配置文件中设置db-capacity来提高空间承载能力,对节点出票有好处。笔者将db-capacity一般设置为25000000,大概是97G。硬盘分为机械硬盘HDD和固态硬盘SSD两种,后者比前者通信速度快,出票效率高,当然SSD中还区分是SATA还是NVMe,就不细说了。
4、Bee-clef
笔者在测试过程中,不使用Bee-clef要比使用Bee-clef出票效率更高,这点是笔者未意料到的。Bee-clef是一个外部签名工具,不使用的话Bee客户端就会用自带的key进行签名,如果不使用Bee-clef的话,仅需要在配置文件中添加clef-signer-enable: false即可。
5、使用自己的swap-endpoint
尽量不要使用公用的swap-endpoint,自己登陆infura.io注册一个自己的swap-endpoint,并把地址添加在配置文件中,会使出票效率明显提高。
二、如何在单台服务器中运行多个Bee客户端
在服务器有限的情况下,运行多个Bee客户端可以提高有限资源的运行效率,获取更多的支票,需满足如下条件:
(一)不使用Bee-clef;
(二)两个客户端启动时以不同的配置文件启动;
(三)两个客户端占用不同的端口进行对外通信;
(四)两个客户端在不同的目录下存储节点数据。
上述内容都可以通过配置客户端启动文件来实现,具体步骤如下:
1、部署第一个客户端
进入/etc/bee目录,修改bee.yaml配置文件,确保有以下内容(括号内的内容为说明,复制到配置文件中时要删除掉):
api-addr: :1633 (HTTP API端口)
clef-signer-enable: false (不使用Bee-clef)
config: /etc/bee/bee.yaml (指定配置文件位置)
data-dir: /var/lib/bee (指定客户端数据存储目录)
db-capacity: 25000000 (指定客户端数据储存上限)
debug-api-addr: 127.0.0.1:1635 (指定调试端口)
debug-api-enable: true (开放调试API)
p2p-addr: :1634 (P2P通信端口)
password-file: /var/lib/bee/password (keystore的密码所在文件路径)
swap-endpoint: XX(自己注册的infura API接口地址)
verbosity: 5 (5就是显示所有客户端运行日志信息)
使用以下命令启动第一个Bee客户端:
bee start   \
–config /etc/bee/bee.yaml
2、部署第二个客户端
进入/etc/bee目录,复制bee.yaml配置文件并重命名为bee02.yaml,进入进行内容修改:
api-addr: :1643 (HTTP API端口从1633改为1643,非固定,只要未被占用的端口均可)
clef-signer-enable: false
config: /etc/bee/bee02.yaml (指定配置文件位置,修改为新的)
data-dir: /var/lib/bee02 (指定客户端数据存储目录,修改为新的,非固定,自己可以随意指定目录)
db-capacity: 25000000 
debug-api-addr: 127.0.0.1:1645 (指定调试端口,非固定,只要未被占用的端口均可)
debug-api-enable: true 
p2p-addr: :1644 (P2P通信端口,非固定,只要未被占用的端口均可)
password-file: /var/lib/bee/password (keystore的密码所在文件路径,可修改非固定)
swap-endpoint: XX(自己注册的infura API接口地址,自己根据部署节点数量控制,可更换)
verbosity: 5 
使用以下命令启动第二个Bee客户端:
bee start   \
–config /etc/bee/bee02.yaml
3、运行第三个、第四个客户端,重复上述步骤即可。

三、在不使用Bee-clef的情况下,如何获取自己的钱包私钥

在使用Bee-clef的情况下,笔者在前文中讲解过如何获取keystore和密码并导入Metamask,在不使用Bee-clef的情况下,笔者参考了@ldeffenb给出的https://pastebee.com/?3b2a4cecafa21a7afcdd4d4f3d74fef1d5551acd91eb2d3a5b750dc9a161fbcf 上面的方法,大家可以参考使用。
原理:在不使用Bee-clef的情况下,keystore的位置为/var/lib/bee/keys/swarm.key,密码的位置为/var/lib/bee/password,但不可以直接使用上述两个文件还原钱包,因为swarm.key的keystore数据格式不是Metamask的导入格式,无法直接导入,因此需要使用转换工具,直接使用swarm.key和password还原出私钥,用私钥进行导入。
1、安装go语言环境
sudo apt install golang-go
并使用go version命令查看是否反馈go语言版本,如果正常反馈则安装成功。
2、进入用户目录并创建工作文件夹
cd ~
mkdir exportKey
cd exportKey
3、下载三个工具的源代码
wget https://raw.githubusercontent.com/ethersphere/exportSwarmKey/master/pkg/main.go
wget https://raw.githubusercontent.com/ethersphere/exportSwarmKey/master/go.mod
wget https://raw.githubusercontent.com/ethersphere/exportSwarmKey/master/go.sum
4、复制swarm.key至工作目录,并赋予权限
cp /var/lib/bee/keys/swarm.key . (注意最后还有个点,代表复制至本目录下)
chmod a+x swarm.key
5、运行转换工具
go run main.go . password文件中存储的密码原文
运行完毕后,会反馈私钥信息,private key:后面跟着的信息就是私钥,可用来直接导入Metamask。
如果觉得麻烦,可以直接运行go build main.go,此时就会产生一个名字为main的可执行文件,这个可执行程序可以自己复制转移,以后直接使用
./main . 密码原文
就可以还原同目录下的swarm.key所对应的私钥了。

推荐:全球第二大交易所OKEx欧意,邀请链接: https://www.ouyi.fit/join/1837888  能交易XCH,BZZ,BTC,ETH等等安全交易,新用户能开合约。

赞(0) 打赏
未经允许不得转载:Swarm之家 » SWARM客户端Bee的进阶部署教程

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

国内服务器VPS云主机

进去看看!优惠码

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏