Jacky Gu

xxnetwork节点配置简明手册

05 Nov 2021 Share to

说明:本教程针对熟悉Linux服务器操作的技术人员,将官方发布的xxnetwrok节点的安装说明做了精简,去掉了大量的常识性操作说明。

非专业人员,或者对Linux服务器不熟悉的技术人员,请查看英文版的详细操作手册:https://xxnetwork.wiki/index.php/Operating_System_Installation_and_Configuration

第一部分:环境配置

1. 硬件要求

一个节点由两台服务器组成,其中一台称为cMix Node(简称Node),另一台称为网关Gateway

硬件要求详见:https://xxnetwork.wiki/index.php/Hardware_Requirements

2. 软件环境

2.1 操作系统

Ubuntu Server 20.04

2.2 网络要求

网络联通性要极佳,延迟极小。

同时需要有固定IP。

2.3 安装Python3和对应版本的pip

sudo apt install -y python3-pip
sudo pip3 install -U pip // 更新python库,可以省略

安装py支持包

pip3 install --user -U boto3 pyOpenSSL substrate-interface packaging requests

3. 配置端口

3.1 默认端口

  • cMix Node端口:11420
  • Gateway端口:22840
  • xx chain端口:15974

3.2 防火墙开启上述端口

sudo ufw disable
sudo ufw allow 15974/tcp comment "xx chain"
sudo ufw allow 11420/tcp comment "xx network cMix"
sudo ufw allow 22840/tcp comment "xx network Gateway"
sudo ufw enable

如果使用云主机,请在云控制台中设置防火墙。

如果NodeGateway分别在不同服务器上的话,开启对应的端口。

4. 配置用户上线

sudo nano /etc/security/limits.conf

在配置文件中添加以下内容:

*  soft    nofile   unlimited
*  hard    nofile   unlimited
*  soft    nproc    unlimited
*  hard    nproc    unlimited

# End of file

5. 配置GPU

注意,GPU仅限于cMix NodeGateway不需要。

执行一下指令:

sudo apt install -y nvidia-driver-470-server
sudo systemctl set-default multi-user.target
sudo shutdown -r now // 重启服务器,让配置生效
sudo lshw -c display // 验证GPU是否正常安装
nvidia-smi // 查看GPU参数

第二部分 cMix Node安装与配置

1. 下载xxnetworknode安装包

cd /opt/
sudo curl -L -O https://xx.network/protonet-node.tar.gz
sudo tar -xvf protonet-node.tar.gz
cd xxnetwork
sudo chmod +x /opt/xxnetwork/bin/*

2. 配置证书

python3 generate-certs.py

执行上述指令后,在目录cred目录下,会生成证书文件和.IDF文件。

cred目录以及目录下所有文件传到本地电脑,这些证书将用于Gateway的配置。

注:可以使用scp在服务器和本地电脑之间进行文件传输,如使用:

scp -r [Node username]@[Node public IP]:/opt/xxnetwork/cred/ cred/

可以将服务器上文件下载到本地电脑。

最后,为确保安全,将服务器上的cred/gateway-key.key私钥文件删除。

注:cred目录下的所有文件请务必妥善保管

3. 配置./config/cmix.yaml

如果使用默认配置,并且使用GPU,则一般不用更改该配置文件。

如果不用GPU,则将配置文件中的useGPU改为false

如果证书文件不在默认安装位置,也请调整相应目录。

4. 配置xxnetwork-cmix.service

打开配置文件,将User改为服务器的用户帐号。

5. 配置xxnetwork-chain.service

打开配置文件,将User改为用户帐号。

另外,在ExecStart执行命令的参数--validator后面,加上--name 节点名称,如:

ExecStart=/bin/bash -c "/opt/xxnetwork/bin/xxnetwork-chain --validator --name 自己定一个节点名称 --telemetry-url 'wss://telemetr
y.polkadot.io/submit/ 0' --base-path /opt/xxnetwork/db --port 15974 --ws-port 63007  >> /opt/xxnetwork/log/chain.log 
2>&1"    

6. 配置数据库

6.1 安装并运行PostgreSQL

sudo apt install -y postgresql-client postgresql postgresql-contrib
sudo update-rc.d postgresql enable
sudo service postgresql start

6.2 创建名为cmix的数据库用户

sudo -u postgres createuser --createdb --pwprompt cmix

创建时需要输入该用户的密码。

6.3 创建名为cmix_node的数据库

sudo -u postgres createdb -O cmix cmix_node

6.4 再次编辑./config/cmix.yaml

databasepassword一项改为5.2步设定的密码。如果上述步骤中改了数据库用户名或数据库名,也在相应配置中调整。

6.5 验证数据库是否正确配置

sudo su postgres
psql            // 进入postgreSQL
\l              // 显示数据表,看看是否有cmix_node表
\q              // 推出postgreSQL
exit

7. 启动xxnetwork的cMix Node服务

注意,启动服务前,需要确保工作目录的own为当前服务器用户名,执行:

sudo chown [user]:[user] -Rv /opt/xxnetwork

7.1 给cmixxxchain建立软链接

sudo ln -s /opt/xxnetwork/xxnetwork-cmix.service /etc/systemd/system
sudo ln -s /opt/xxnetwork/xxnetwork-chain.service /etc/systemd/system
sudo systemctl daemon-reexec

7.2 激活cmixxxchain服务

sudo systemctl enable xxnetwork-cmix.service
sudo systemctl enable xxnetwork-chain.service

7.3 启动cmixxxchain服务

sudo systemctl start xxnetwork-chain.service
sudo systemctl start xxnetwork-cmix.service

以上命令执行后,两个程序将在后台运行。

7.4 查看服务运行状态

sudo systemctl status xxnetwork-cmix.service
sudo systemctl status xxnetwork-chain.service

7.5 查看进程

ps -A | grep xxnetwork

如果显示进程

 ?        00:00:12 xxnetwork-chain     

则说明cMix Node已经正常运行

第三部分 Gateway安装与配置

1. 下载xxnetworkGateway软件包

cd /opt/
sudo curl -L -O https://xx.network/protonet-gateway.tar.gz
sudo tar -xvf protonet-gateway.tar.gz
cd xxnetwork
sudo chmod +x /opt/xxnetwork/bin/*

2. 将安装node时生成的证书和私钥复制到Gateway节点

需要复制的有以下三个文件到Gatewaycred目录下:

gateway-cert.crt
gateway-cert.key
cmix-cert.crt

同样的,使用scp工具,命令如下:

scp cred/gateway-cert.crt cred/gateway-key.key cred/cmix-cert.crt [Gateway username]@[Gateway public IP]:/opt/xxnetwork/cred/

3. 配置gateway.yaml

编辑config/gateway.yaml,在cmixAddress: "[Node IP]:11420"中配置Node IP地址。其他保持默认。

4. 配置xxnetwork-gateway.servicexxnetwork-chain.service

同配置cMix Node相同,即将两个文件中的User都设置为服务器用户名。

另外,在xxnetwork-chain.service中,将ExecStart的参数中添加--name,参考如下:

ExecStart=/bin/bash -c "/opt/xxnetwork/bin/xxnetwork-chain --light --name [自定义一个名字] --telemetry-url 'wss://tele
metry.polkadot.io/submit/ 0' --base-path /opt/xxnetwork/db --port 15974 --ws-port 63007  >> /opt/xxnetwork/log/chain.
log 2>&1" 

5. 配置数据库

5.1 安装并运行PostgreSQL

sudo apt install -y postgresql-client postgresql postgresql-contrib
sudo update-rc.d postgresql enable
sudo service postgresql start

5.2 创建名为cmix的用户

sudo -u postgres createuser --createdb --pwprompt cmix

创建时需要输入该用户的密码。

5.3 创建名为cmix_gateway的数据库

sudo -u postgres createdb -O cmix cmix_gateway

5.4 再次编辑./config/gateway.yaml,将databasepassword一项改为设定的密码。如果上述步骤中改了数据库用户名或数据库名,也在相应配置中调整。

5.5 验证数据库是否正确配置

sudo su postgres
psql            // 进入postgreSQL
\l              // 显示数据表,看看是否有cmix_node表
\q              // 推出postgreSQL
exit

6. 启动xxnetwork服务

与配置Node一样,启动服务前,需要确保工作目录的own为当前服务器用户名,执行:

sudo chown [user]:[user] -Rv /opt/xxnetwork

6.1 给gatewayxxchain建立软链接

sudo ln -s /opt/xxnetwork/xxnetwork-gateway.service /etc/systemd/system
sudo ln -s /opt/xxnetwork/xxnetwork-chain.service /etc/systemd/system
sudo systemctl daemon-reexec

6.2 激活gatewayxxchain服务

sudo systemctl enable xxnetwork-gateway.service
sudo systemctl enable xxnetwork-chain.service

6.3 启动gatewayxxchain服务

sudo systemctl start xxnetwork-gateway.service
sudo systemctl start xxnetwork-chain.service

以上命令执行后,两个程序将在后台运行。

6.4 查看服务运行状态

sudo systemctl status xxnetwork-gateway.service
sudo systemctl status xxnetwork-chain.service

6.5 查看进程

ps -A | grep xxnetwork

应该可以看到两个相关进程

~~~~~ ?        00:00:12 xxnetwork-chain
~~~~~ ?        00:00:18 xxnetwork-gatew

如果看不到xxnetwork-gatew,说明gateway还没启动,稍等。

第四部分 质押节点

节点要有质押收益,必须成为验证人节点。

1. 确认节点运行状态良好

进入cMix Node节点,执行cat /opt/xxnetwork/log/chain.log | grep Syncing,查看并确认链是否正常运行。

执行tail -2 /opt/xxnetwork/log/cmix-wrapper.log,查看节点同步与共识情况,如果显示:

[INFO] 09-Jul-21 16:25:07: Waiting on IDF for consensus...
[INFO] 09-Jul-21 16:25:07: Waiting on consensus ready state...

可以继续下一步,否则继续等待。

2. 获得session key

执行以下curl指令:

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933 -o /opt/xxnetwork/cred/session-keys.json

这时,会在cred目录下生成一个新的文件session-keys.json

打开该文件,result就是需要绑定的session key

获得cmix ID

打开cred目录下的cmix-IDF.jsonhexNodeID就是cmix ID

第五部分 绑定节点账户

至此,您已经获得了session keycmix ID。接下去,需要在浏览器中打开xx network浏览器网页版,将节点与账户绑定。

本教程为节点配置过程中的技术相关操作,接下去绑定节点账户属于运营相关操作,由另外文章介绍。