[toc]
1、条件
- 说明,这次安装是根据platon0.8.0(即现在拉力赛的版本安装的),节点加入的是公有网络(我们单个节点通常都是加入公有网络,除非自己有许多的节点才考虑自己搭私有网络)。
1.1、硬件要求
- Ubuntu18.04(据说官方也是ubuntu18.04,我们也用,安装成功率会大大提高)
- 磁盘至少100G
- CPU:4核
- 内存:8G
1.2、时间同步
tom@localhost:~$sudo apt -y install ntp
tom@localhost:~$sudo systemctl start ntp && sudo systemctl enable ntp
1.3、创建一个用户tom用户
tom@localhost:~$useradd -r -m -s /bin/bash tom
tom@localhost:~$passwd tom #设置tom用户密码,输入两次
1.4、配置/etc/hosts
vim /etc/hosts
10.10.8.4 localhost #前者是你的ip,后者是hostname命令的执行结果输入
2、 安装platon
- 安装platon0.8.0版本
# 1、添加platon的ppa源
tom@localhost:~$ sudo add-apt-repository ppa:ppatwo/platon
# 2、查看是否添加源成功
tom@localhost:~$ cat /etc/apt/sources.list.d/ppatwo-ubuntu-platon-bionic.list
deb http://ppa.launchpad.net/ppatwo/platon/ubuntu bionic main
# 3、更新
tom@localhost:~$ sudo apt update -y
# 4、查看是否有platon0.8.0版本
tom@localhost:~$ sudo apt search platon0.8.0
platon0.8.0/bionic 0.8.0.3 amd64
PlatON client
# 5、安装platon0.8.0版本
tom@localhost:~$ sudo apt install platon0.8.0
# 6、验证版本是否和链的一致,检查Commit一致就可以,链的Commit为:6b4a2cd340e87b82f7ffa008126113d350cde5a8
tom@localhost:~$ sudo platon version
.....
Git Commit: 6b4a2cd340e87b82f7ffa008126113d350cde5a8
.....省略
# 7、查看是否有keytool和platon
tom@localhost:~$ which keytool platon
/usr/bin/keytool
/usr/bin/
3、启动
- 使用的是tom用户,进入/home/tom目录
3.1、生成两对key
# 1、创建data目录,节点公私钥和节点bls公私钥,节点的运行数据就放在platon-node目录下
tom@localhost:~$mkdir -p /home/tom/platon-node/data
tom@localhost:~$keytool genkeypair | tee >(grep "PrivateKey" | awk '{print $2}' > ./data/nodekey) >(grep "PublicKey" | awk '{print $3}' > ./data/nodeid) #节点公私钥
tom@localhost:~$ keytool genblskeypair | tee >(grep "PrivateKey" | awk '{print $2}' > ./data/blskey) >(grep "PublicKey" | awk '{print $3}' > ./data/blspub) #节点bls公私钥
# 2、查看两对key
tom@localhost:~$ ls /home/tom/platon-node/data/
blskey blspub nodeid nodekey
公钥用于标识节点身份,可以被公开出去,私钥不能公开并且需要做好备份
- nodeid 节点公钥(ID)文件,保存节点的公钥。
- nodekey 节点私钥文件,保存节点的私钥。
PlatON节点除了需要节点公私钥外还需要一种被称为BLS公私钥的密钥对,这个密钥对在共识协议中将被使用。
3.2、启动platon
# 1、启动
tom@localhost:~$cd platon-node
tom@localhost:~$nohup platon --identity platon --datadir ./data --port 16789 --testnet --rpcport 6789 --rpcapi "db,platon,net,web3,admin,personal" --rpc --nodekey ./data/nodekey --cbft.blskey ./data/blskey --verbosity 3 --rpcaddr 0.0.0.0 --syncmode "full" > platon.log &
# 2、查看同步块高情况
tom@localhost:~$tail -f platon.log |grep num
4、配置nginx和mtool-client
4.1、配置nginx
- 官方说是安全考虑,不建议节点 rpc 端口对外直接开放。可以考虑使用 Nginx 进行反向代理,并通过用户鉴权和 HTTPS 加强 Nginx 端口的安全性。
# 1、运行nginx脚本
tom@localhost:~$wget http://47.91.153.183/opensource/scripts/nginx_conf.sh
tom@localhost:~$chmod +x nginx_conf.sh && ./nginx_conf.sh #记录好用户和密码,MTool 配置验证节点信息时需要填写
Enter your name:peiqi
Enter your password:123456
# 2、验证nginx脚本是否成功,在脚本运行完的时候,看到以下这句话即成功了
ngnix conf succeed
4.2、安装mtool-client,生成质押钱包和收益钱包
- 质押钱包用于质押 token(就是我们的LAT),质押成功后才能成为备选节点候选人
- 收益钱包 用于收取区块奖励和Staking奖励,Staking奖励统一发放给验证节点,由验证节点自行分配
# 1、下载mtool-client压缩包
tom@localhost:~$ wget http://47.91.153.183/mtool/0.8.0.0/mtool-client.zip
tom@localhost:~$ apt -y install unzip && unzip mtool-client.zip
# 2、下载mtool_install.sh的安装脚本,安装mtool-client所需环境
tom@localhost:~/$ wget http://47.91.153.183/opensource/scripts/mtool_install.sh -P ~/mtool-client-0.8.0.0
# 3、授权脚本执行的权限,并执行mtool_install.sh
tom@localhost:~/$ chmod +x mtool-client-0.8.0.0/mtool_install.sh && mtool-client-0.8.0.0/mtool_install.sh
#忽略下面这个报错
sed: can't read /home/tom/mtool-client-0.8.0.0/application.yml: No such file or directory
# 4、使脚本配置的环境变量生效
tom@localhost:~$ source ~/.bashrc
# 5、验证环境变量是否生效
tom@localhost:~$ which mtool-client java
/usr/bin/mtool-client
/home/tom/jdk1.8.0_221/bin/java
# 6、生成钱包
tom@localhost:~$ mtool-client account new staking #生成质押钱包
要求输入两次密码,请记住,记录密码:123456
tom@localhost:~$ mtool-client account new reward #生成收益钱包
要求输入两次密码,请记住,记录密码:123456
# 7、验证钱包是否生成
tom@node02:~$ ls -l /home/tom/mtool-client-0.8.0.0/keystore
-rw-r--r-- 1 tom tom 8 Feb 11 15:33 IGNORE.me
-rw-rw-r-- 1 tom tom 490 Feb 20 08:55 reward.json #质押钱包文件
-rw-rw-r-- 1 tom tom 490 Feb 20 08:53 staking.json #收益钱包文件
5、准备节点信息
# 1、通过脚本validator_conf.sh生成节点信息
tom@localhost:~$ wget http://47.91.153.183/opensource/scripts/validator_conf.sh
tom@localhost:~$ chmod +x validator_conf.sh
tom@localhost:~$ ip a #记录ip地址,为下一步,填写内容准备
10.10.8.4
tom@localhost:~$ ./validator_conf.sh
Please enter the platon node IP address:10.10.8.4 #自身机器的ip
Please enter the platon chain id:101 #现在的链id为101
Please enter the delegatedRewardRate(0~10000):100 #个人推荐1000-5000,即(10%-50%)
Enter your name:peiqi #nginx_conf.sh执行输入的用户
Enter your password:123456 #nginx_conf.sh执行输入的密码
Enter your platon node name:hornor #自己命名
Enter your platon node description:hahaha #自己命名
6、质押成为验证节点
如果共识节点部署完成,并且已经同步区块成功,公链的块高通过下面的连接查看,就可以质押了,质押最低门槛为100万LAT。
PlatScan官网浏览器:https://platscan.test.platon.network/
- 质押操作
# 查询钱包地址
tom@localhost:~$mtool-client account list
reward:0x0ad445afb9e.....dc181719a7ce095ad;
staking:0xf9f7196093......a960318cc5b141a0;
tom@localhost:~$cd cd mtool-client-0.8.0.0/
# 查看余额
tom@localhost:~$mtool-client account balance -a 0ad445afb9e.....dc181719a7ce095ad --config ./validator/validator_config.json
Balanceof: 0x0ad445afb9ed973bf2cf30edc181719a7ce095ad
LAT:200
#质押操作 ,100000为质押的数量
tom@localhost:~$mtool-client staking --amount 100000 --keystore ./keystore/staking.json --config ./validator/validator_config.json
please input keystore password: #生成质押输入密码
Insufficient wallet balance(Total payment: 100000.009687104000000000 LAT) # (余额不足,有没有大佬有余额充足的,可怜的我只有200LAT)
#增加质押操作
tom@localhost:~$$mtool-client increasestaking --amount 5000000 ./keystore/staking.json --config ./validator/validator_config.json
#解质押操作(解质押扣手续费)
tom@localhost:~$ mtool-client unstaking --keystore ./keystore/staking.json --config ./validator/validator_config.json