最近比较流行BZZ挖矿,未来ETH2.0时代挖矿方式的改变,也使bzz挖矿成为一个热门,Windows下面的标志着挖矿适合个人PC用户,而矿工如果想大量的部署bee节点,就需要Linux服务器,然后进行虚拟化部署。对于bee节点的部署,当然是多多益善!
BZZ挖矿是ETH创始人V神亲自站台,是ETH项目官方的一部分,它主要是由ETH基金会领头和开发,允许矿池储存、带宽和算力资源来支持基于以太坊网络的应用、(据说是在六月份中旬)主网还没有确定上线时间。
下面我们来看一下在linux下如何部署bee节点进行bzz挖矿。
bzz挖矿的必备条件:
阅读索引
- 一台支持虚拟化Linux服务器,系统安装建议安装centos8
- 1个G的网络带宽(虚拟机共享1G带宽)
- 服务器配置CPU16核和32G内存以上(用于创建更多虚拟机配置节点)
Linux服务器环境搭建
使用Xshell或者putty登录服务器。
Xshell软件下载:Xshell Plus v6.0 中文绿色破解版永久授权
远程连接服务器
下面以Xshell6为例:
输入服务器的主机IP地址,端口号22默认,建议修改主机远程端口号。
在用户身份验证选项中,输入服务器的用户名和密码,然后点击连接。
有些云主机名字都是一串字符,不利于平时使用。我们可以重命名主机来标记。
nmcli g hostname bee
systemctl restart systemd-hostnamed
修改好主机名称后,首先需要做的是更新系统,以及设置一下软件仓库数据源,安装软件包等操作!
更新系统
输入下面的命令更新centos8服务器系统:
dnf -y update
更新好系统后,下面我们来安装centos的软件源。
安装软件源
首先查看以下系统版本和位数,以免手动安装的时候,安装错误的源!
cat /etc/centos-release
uname -a
Repo 仓库介绍
CentOS 默认自带 CentOS-Base.repo 源,但官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定版。
Fedora 自带的源中也找不到很多多媒体软件,如果需要安装,必需先添加其他源,如 RPMFusion 和 RPMForge 等第三方软件库。
但是除了 EPEL 之外还有很多其他三方软件包,下面我们介绍各种第三方软件库,以下软件库适用于与 RHEL 完全兼容的 linux 发行版,如 CentOS, Fedora, Scientific Linux. Scientific Linux 大家可能有点陌生,它与 CentOS 类似,是 RedHat Linux 的克隆版。
EPEL 仓库介绍
EPEL 是 yum 的一个软件源, 里面包含了许多基本源里没有的软件了,但在我们在使用 epel 时是需要安装它才可以了,下文来介绍 CentOS7/RHEL7 安装 EPEL 步骤:
EPEL,即 Extra Packages for Enterprise Linux 的简称,是为企业级 Linux 提供的一组高质量的额外软件包,包括但不限于 Red Hat Enterprise Linux (RHEL), CentOS and Scientific Linux (SL),Oracle Enterprise Linux (OEL)。
安装 EPEL软件源
使用yum或者dnf命令在线安装:
yum -y install epel-release
安装完毕后查询一下epel源是否添加到源列表。
dnf repolist
如果想手动安装,请使用rpm -ivh命令,然后查找适合当前系统的软件源:https://dl.fedoraproject.org/pub/epel/
安装Remi 源
Remi 源大家或许很少听说,但是我们强烈推荐,尤其对于不想编译最新版的 Linux 使用者,因为 Remi 源中的软件几乎都是最新稳定版。
或许您会怀疑Remi 源的稳定性?
放心吧,这些都是 Linux 骨灰级的玩家编译好放进源里的,他们对于系统环境和软件编译参数的熟悉程度毋庸置疑。
Remi 下载地址:https://rpms.remirepo.net/
Remi SRPMS 下载地址:https://rpms.remirepo.net/SRPMS/
rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-8.rpm
好了上面两个软件源已经添加完毕了,下面更新一下软件的缓存。
yum clean all && yum makecache
缓存更新完毕后,下面进行软件包安装!首先安装一个常用编译软件包:
dnf groupinstall "Development Tools" -y
常用编译软件包安装完毕后,我们开始安装运行bee所需的软件包。
安装Bee
Bee提供了基于Ubuntu,Raspbian,Debian和CentOS的Linux发行版软件包。
要安装Bee,您需要完成以下过程。
- 设置Bee的外部签名人Bee Clef。
- 安装Bee并将其设置为作为服务运行。
- 配置蜜蜂。
- 用gETH和gBZZ为您的节点提供资金
- 等待您的支票簿交易完成并且批存储更新。
- 检查Bee是否在工作。
首先需要做的第一步是在mnt目录下创建bee文件夹
cd /mnt
mkdir bee
ll
cd bee
安装Bee Clef
由于Bee必须要快速的自动签署大量交易,因此打包了Bee特定版本的Clef, Bee-clef包括所有相关配置,并实现了使Clef与Bee一起使用所需的特定配置。
Bee-clef地址:https://github.com/ethersphere/bee-clef/releases
首先需要下载bee-clef的软件包到服务器上。
wget https://github.com/ethersphere/bee-clef/releases/download/v0.4.12/bee-clef_0.4.12_amd64.rpm
rpm -i bee-clef_0.4.12_amd64.rpm
安装bee-clef_0.4.12_amd64.rpm软件包,在安装过程中可能会遇到sssd缓存错误。
如果遇到“Usermod错误-[sysdb_domain_cache_connect](0x0010):数据库版本太旧[0.21],对于域hidden_files预期为[0.22]”的错误的话。
删除缓存数据库即可,首先查看一下缓存目录的内容
ls /var/lib/sss/db
rm /var/lib/sss/db/cache_implicit_files.ldb
删除之后,使用“sss_cache -e”命令查询一下。不报错了就可以进行下一步安装了。
最后,让我们检查Bee Clef是否正在运行。
systemctl status bee-clef
如果输入上面命令后,返回错误:“Failed to get properties: Access denied”
那么输入下面的命令即可解决错误:
kill -TERM 1
重新加载了守护程序,之后所有systemctl命令再次开始工作。
如果出现“Warning: The unit file, source configuration file or drop-ins of bee-clef.service changed on disk. Run 'systemctl daemon-reload' to reload units.”
输入systemctl daemon-reload即可解决。
systemctl daemon-reload
使用systemctl start命令启动bee-clef程序。
systemctl start bee-clef
下面查看一下bee-clef的状态。
systemctl status bee-clef
一旦bee开始与bee-clef您进行交互,您应该开始看到日志消息,对于定期处于活动状态且已连接的节点,它们将每隔几秒钟出现一次:
journalctl -f -u bee-clef.service
bee-clef程序数据存储在 /var/lib/bee-clef/
bee-clef程序已经安装完毕了,下面安装bee主程序。
安装Bee主程序
设置Bee并将其作为后台服务在计算机上启动并在后台运行。
bee发布地址:https://github.com/ethersphere/bee/releases
wget https://github.com/ethersphere/bee/releases/download/v0.6.0/bee_0.6.0_amd64.rpm
安装bee_0.6.0_amd64.rpm
sudo rpm -i bee_0.6.0_amd64.rpm
安装完毕后需要需要申请swap-endpoint测试交换节点,先不要启动bee。
ETH交换节点
首先你需要申请ETH的交换节点,官方推荐自建交换节点,也可以去Infura网站申请。
Infura的免费账户每天只支持100000次交换请求,如果你是专职矿工的话,建议你搭建自己的Goerli节点!
swap-endpoint测试交换节点注册地址:https://infura.io/
打开infura.io网站,在右上角,将网站语言更改为zh中文,然后点击注册。
填写一个有效的邮箱进行注册,建议使用海外邮箱,gmail或者live。注册成功后需要进入邮箱激活。
确认好邮件地址后,直接进入到后台管理界面。
点击第三项以太坊图标的选项,开始并创建您的第一个项目,以访问以太坊网络!
然后输入一个你要创建新项目的名称,输入完毕后点击创建。
在ENDPOINTS后面选择Görli选项,选择完毕后,下面的地址就是你的swap-endpoint地址。
https://goerli.infura.io/v3/574deffc70e94e8989b7612a5f427738
Bee配置
由于Bee在向网络提供服务以交换gBZZ时会占用大量资源,因此默认情况下,Bee节点以Light Node模式启动。为了允许Bee使用网络带宽和计算资源为网络服务并开始兑现支票,请将full-node设置为true。
Bee设计用于许多不同的硬件配置。为了促进对此的探索,在我们的beeta阶段,我们允许节点操作员访问leveldb的db-open-files-limit。这有助于确定Bee读取和写入数据库的速度,从而确定其转发和服务块的效率。有人说,将其设置为比默认值200大得多,可以大大提高参与群体并获得这些gBZZ的能力!需要将db-open-files-limit设置成2000。
安装screen
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
- 会话恢复
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。 - 多窗口
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 - 会话共享
Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。 - GNU's Screen 官方站点:http://www.gnu.org/software/screen/
screen安装命令:
dnf install -y screen
安装 json 解析工具,方便后面查询命令的时候,输出显示效果更友好。
dnf install -y jq nc
没有 ifconfig 和netstat -an 命令的话请安装 net-tools
dnf install -y net-tools
查看服务器端口占用
netstat -lnpt
运行Bee
运行bee节点,首次运行要设置密码。输入的时候,屏幕不会显示字符,请牢记密码。
首先新建一个bee窗口
screen -S bee
查看一下你的钱包地址,输入命令:
bee-get-addr
src="https://uzbox.com/wp-content/uploads/2021/05/2021052917445790.png" alt="" width="939" height="149" srcset="https://uzbox.com/wp-content/uploads/2021/05/2021052917445790.png 939w, https://uzbox.com/wp-content/uploads/2021/05/2021052917445790-300x48.png 300w, https://uzbox.com/wp-content/uploads/2021/05/2021052917445790-768x122.png 768w, https://uzbox.com/wp-content/uploads/2021/05/2021052917445790-430x68.png 430w" sizes="(max-width: 939px) 100vw, 939px" />
获取你的钱包地址后,前往官方水龙头节水。
具体接水方式,请查看:bzz挖矿官方水龙头,免费获得ETH和gBZZ
输入下面命令,启动bee
bee start --config /etc/bee/bee.yaml
curl -s http://localhost:1635/peers | jq '.peers | length'
正常启动后,没有遇到启动问题的话,就可以退出screen了,按住ctrl+a然后按d退出screen虚拟CLI,此时Bee客户端进入后台运行,就可以关闭Xshell或进行其它调试,想回到之前的Bee节点窗口,可以使用命令返回到screen。
screen -r bee
禁用IPV6
如果你的服务器启用了IPV6,在启动bee节点时候会报错。
“Error: init chain: dial eth client: dial tcp [::1]:8546: connect: connection refused”
检查服务器是否启用IPV6
ip a | grep inet6
如果有inet6的返回的话,需要禁用IPV6
vi /etc/default/grub
在GRUB_CMDLINE_LINUX中添加ipv6.disable=1
应用新的配置:使用grub2-mkconfig 生成新的grub引导文件。
grub2-mkconfig -o /boot/grub2/grub.cfg
ip a | grep inet6
输入命令后查看一下,没有inet6的返回了,已经成功禁用了ipv6。
Bee相关命令
启动Bee:systemctl start bee
停止Bee:systemctl stop bee
重启Bee:systemctl restart bee
设置开机启动Bee:systemctl enable bee
设置开机禁用Bee:systemctl disable bee
Bee状态:systemctl status bee
删除Bee
如果在安装过程中出现一些不可逆的错误,请先删除bee,然后再重新安装。
rpm -qa | grep -i bee
src="https://uzbox.com/wp-content/uploads/2021/05/2021052814514910.png" alt="" width="316" height="66" srcset="https://uzbox.com/wp-content/uploads/2021/05/2021052814514910.png 316w, https://uzbox.com/wp-content/uploads/2021/05/2021052814514910-300x63.png 300w" sizes="(max-width: 316px) 100vw, 316px" />
rpm -e bee-0.6.0-1.x86_64
rpm -e bee-clef-0.4.12-1.x86_64
或者
yum remove bee
yum remove bee-clef
数据存放位置
bee-clef
配置文件存储在 /etc/bee-clef/
关键材料和其他数据存储在 /var/lib/bee-clef/
bee
配置文件存储在 /etc/bee/
状态,块和其他数据存储在 /var/lib/bee/
关闭系统防火墙
关闭系统自带的防火墙服务,然后设置开机禁用防火墙服务。
systemctl stop firewalld
systemctl disable firewalld