利用mtool docker镜像远程操作节点

前言

本篇介绍如何利用 docker 快速在本地部署 mtool,远程连接 PlatON 进程来进行转账,质押,委托以及治理等相关的操作,参照官方原本的安装方式,改成利用 docker 部署有几个优势:

  • mtool 工具可以在大部分系统下快速安装部署,如 Windows,Ubuntu,mac 等,且简单易用。
  • 节点和 mtool 工具分离,质押地址私钥文件不必存在节点服务器上,增加安全性。
  • 只需要更改 conf 下的节点信息和连接地址就可以操作不同的节点,更加方便管理。

docker 安装

首先我们需要在操作机上安装 docker 安装地址,选择系统,然后按照步骤安装。

注:以下步骤在 macOS 系统环境下演示,本次安装是版本 mtool-client.0.15.0
注:git 安装地址

下载关于安装 MTOOL 的 dockerfile

mkdir -pv mtool
cd mtool
git clone https://github.com/zonzpoo/dockerfile-mtool.git

build mtool 工具镜像,镜像名称/版本(mtool:0.15.0)

cd 0.15.0
docker build -t mtool:0.15.0 .

构建完成后检查是否能本地运行 mtool 工具

cd ..
docker run --rm -ti mtool:0.15.0 mtool-client -v

执行结果:

version: alaya_0.15.0.0
timestamp: 2020-12-29 11:54:10
revision: f222e60ccae27b1488ae8be2b8cffee6d3757409
sdk version: 0.15.0.0-SNAPSHOT

本地创建 conf 目录,拷贝 ca.crt, validator_config.json, staking.json 到 conf 目录下

  • ca.crt 是节点安装 nginx 时生成的证书文件,mtool 默认通过 ssl 方式连接 nginx 代理到 platon 时需要该证书
  • validator_config.json 是 mtool 配置文件,参考 validator_config.json.example
  • staking.json 质押地址私钥文件

validator_config.json 参数说明:

  • nodePublicKey:节点公钥/ID
  • blsPubKey:节点 bls 公钥
  • nodeAddress:mtool 请求地址,格式:https://<用户名>:<密码>@<域名>
  • nodePort:节点通信端口
  • nodeRpcPort:节点 rpc 端口
  • certificate:证书文件(ca.crt)路径,此处替换为:/root/ca/ca.crt

参考官方文档执行相应的 mtool 命令,注意把替换成 conf 目录真正的路径,如/root/conf

更新节点信息

docker run --rm -ti --add-host=<域名>:<IP> -v <conf path>:/root/ca mtool:0.15.0 mtool-client update_validator --config /root/ca/validator_config.json --keystore /root/ca/staking.json --details "超元立方社区,提供更多获取ATP/LAT的正确姿势.VX:Kidd1997"

执行结果:

please input keystore password:
.....
operation finished
transaction hash: xxxxx
SUCCESS

升级提案投票操作:

docker run --rm -ti --add-host=<域名>:<IP> -v <conf path>:/root/ca mtool:0.15.0 mtool-client vote_versionproposal --config /root/ca/validator_config.json --keystore /root/ca/staking.json --proposalid 0x444c3df404bc1ce4d869166623514b370046cd37cdfa6e932971bc2f98afd1a6
2 Likes

看的一脸懵逼阿。看来还得多学习。 :joy:

1 Like

多多向柯总学习 Respect!