Mina Protocol: 如何为节点添加守护进程

首先,防止你的机器出现crash,你必须要使用满足配置要求的服务器或者VPS。另外由于网络的问题尽量使用国外的主机。经过测试Hetzner的8C16G是满足配置的,也是目前已知性价比最高的,使用此链接购买可以获得10欧元减免。

使用Hetzner需注册资源滥用问题,区块链程序使用P2P网络,开通主机后先禁用本主机到所有内网的请求,否则会被Hetzner当成攻击。

在运行Coda节点的过程当中有时会因为某些网络或者程序原因造成节点退进(Crash),此时需要重新启动进程,那么可以使用守护进程,当节点意外停止时可以自动再次启动。本文介绍使用systemd的方法来实现。

Coda Validator 节点

创建coda-validator.service文件

sudo vim /etc/systemd/system/coda-validator.service
[Unit]
Description=coda validator daemon
After=network-online.target

[Service]
User=<User>
Environment=CODA_PRIVKEY_PASS="<password>"
ExecStart=/usr/local/bin/coda daemon \
     -peer-list-file /root/peers.txt \
     -block-producer-key /root/keys/<my-wallet> \
     -generate-genesis-proof true \
     -file-log-level Info
Restart=always
RestartSec=10
LimitNOFILE=65536
LimitNPROC=65536

[Install]
WantedBy=multi-user.target

#<User>可以使用root,注意peer-list-file和block-producer-key路径也是使用root下的文件
#<password>是你钱包的密码
#<my-wallet>是你钱包的私钥文件

启动Coda validator 节点
systemctl start coda-validator
之后可以通过上边的日志查看运行状态

Coda Snark 节点

创建coda-snark.service文件

sudo vim /etc/systemd/system/coda-snark.service
[Unit]
Description=coda snark daemon
After=network-online.target

[Service]
User=<User>
ExecStart= /usr/local/bin/coda daemon \
    -peer-list /root/peers.txt \
    -run-snark-worker <$MINA_PUBLIC_KEY> \
    -snark-worker-fee <fee>  
Restart=always
RestartSec=10
LimitNOFILE=65536
LimitNPROC=65536

[Install]
WantedBy=multi-user.target

#<User>可以使用root,注意peer-list-file和block-producer-key路径也是使用root下的文件
#<$MINA_PUBLIC_KEY>是你的公钥地址
#<fee>设置你想要的fee

启动Coda Snark 节点
systemctl start coda-snark
之后可以通过上边的日志查看运行状态