| 描述 | 指令 |
---|
1 | 安装certbot的Universe存储库和软件包,并确保从官方指南安装其他软件包,并保持最新版 |
Code Block |
---|
sudo apt install software-properties-common -y |
跳过在Debian系统上添加Universe存储库,请勿跳过此步骤中的其他条目 Code Block |
---|
sudo add-apt-repository universe -y |
请务必复制整个命令,尤其是对于长命令字符串 Code Block |
---|
sudo apt-get install build-essential software-properties-common apt-transport-https lsb-release dirmngr pwgen git jq ufw curl aria2 -y |
|
2 | 更新包缓存 |
Code Block |
---|
sudo apt-get update |
|
3 | 安装curl并添加nodejs存储库并更新包缓存 注意:Ubuntu跳过此步骤 | 只限Debian 9 Code Block |
---|
sudo apt-get install curl -y
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get update |
|
4 | 安装npm,将其升级到10.12.0 |
Code Block |
---|
sudo apt-get install npm -y && sudo npm install -g n && sudo n 10.12.0 |
|
5 | 停止节点跟踪器 注意:如果由于某种原因您在pm2中运行了多个跟踪器,则可能必须将“0”更改为与您的跟踪器对应的数字,并停止这些跟踪器。 您可以从运行中获取数字列表:pm2 list | |
6 | 将目录更改为克隆节点跟踪器的位置,这将是官方指南的〜/ nodetracker,通常是旧文档或其他指南的〜/ zencash / secnodetracker |
Code Block |
---|
cd ~/nodetracker |
如果由于目录不存在而导致上述命令失败,请执行以下命令 Code Block |
---|
mv ~/zencash/secnodetracker ~/nodetracker && cd ~/nodetracker |
|
7 | 使用新的存储库URL更新git,并检索最新的源代码 |
Code Block |
---|
git checkout -- package.json
git remote set-url origin https://github.com/ZencashOfficial/nodetracker.git
git fetch origin
git checkout master
git pull |
注意:如果git返回有关任何文件的错误,请运行以下命令(将'filename替换为错误消息中返回的文件)并重复上述命令 Code Block |
---|
git checkout -- filename |
|
8 | 安装跟踪器所需的最新节点模块集 |
|
| 仅在尚未运行时执行步骤9和10。 如果您已经升级到nodetracker 0.3.1,那么这已经完成了。 |
---|
9 | 找到节点的IPv4和/或IPv6公共地址,并将它们作为通过端口9033连接的外部IP地址附加到zen.conf文件(默认) 只有超级节点需要执行此步骤中的每个命令 安全节点需要至少一个外部地址和端口附加到ZEN.CONF 注意:安全节点只需要一种类型的IP,超级节点需要两种类型 注意:将<IPv4>替换为节点的公共IPv4,删除<bracket> 注意:使用压缩表示法中的节点的公共IPv6替换<IPv6>,而不使用前导零,删除<bracket> 使用以下链接确保您的IPv6地址采用压缩符号: https://www.ultratools.com/tools/ipv6Compress | 为IPv4创建环境变量 将外部IPv4附加到zen.conf中 Code Block |
---|
echo "externalip=$IPV4" >> ~/.zen/zen.conf |
为IPv6创建环境变量 将外部IPv6附加到zen.conf中 Code Block |
---|
echo "externalip=$IPV6" >> ~/.zen/zen.conf |
将端口附加到zen.conf - 安全+超级节点 Code Block |
---|
echo "port=9033" >> ~/.zen/zen.conf |
|
10 | 再次运行节点设置以刷新跟踪器服务器列表,并初始化新跟踪器,按Enter键以通过每个值保留当前设置 |
|
11 | 用monit停止zend,然后停止monit。 两个命令都显示为通过systemctl和sysinit停止(只需要一个,但两者都是为了完整性) |
Code Block |
---|
sudo monit stop zend && sleep 8
sudo systemctl stop monit
sudo service monit stop |
|
12 | 为zend创建一个systemd单元文件,复制并粘贴整个文本块 |
Code Block |
---|
echo \
"[Unit]
Description=Zen daemon
[Service]
User=$USER
Type=forking
ExecStart=/usr/bin/zend -daemon -pid=$HOME/.zen/zend.pid
PIDFile=$HOME/.zen/zend.pid
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target" | sudo tee /lib/systemd/system/zend.service |
|
13 | 测试zend单元文件 |
Code Block |
---|
sudo systemctl start zend && sleep 30 |
|
14 | 为Node Tracker创建systemd单元文件,复制并粘贴整个文本块 |
Code Block |
---|
echo \
"[Unit]
Description=Zen node daemon installed on ~/nodetracker/
[Service]
User=$USER
Type=simple
WorkingDirectory=$HOME/nodetracker/
ExecStart=$(which node) $HOME/nodetracker/app.js
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target" | sudo tee /lib/systemd/system/zentracker.service |
|
15 | 测试跟踪器单元文件 |
Code Block |
---|
sudo systemctl start zentracker |
|
16 | 检查所有节点跟踪器输出日志的内容是否正常,如果一切正常,请使用CTRL + c退出 |
Code Block |
---|
sudo journalctl -fu zentracker |
Panel |
---|
borderColor | grey |
---|
bgColor | black |
---|
titleColor | white |
---|
borderWidth | 2 |
---|
titleBGColor | black |
---|
borderStyle | solid |
---|
title | Example Output |
---|
| zenops@node01~$ sudo journalctl -fu zentracker -- Logs begin at Tue 2018-05-22 12:54:41 EDT. -- May 24 21:34:28 node01 node[42000]: 2018-05-25 01:34:28 GMT -- Connected to server ts1.na. Initializing... May 24 21:34:28 node01 node[42000]: Secure Node t_address (not for stake)=znXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX May 24 21:34:28 node01 node[42000]: Balance for challenge transactions is 0.0247 May 24 21:34:28 node01 node[42000]: Using the following address for challenges May 24 21:34:28 node01 node[42000]: zcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Authenticated May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Updated server list May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Stats: send initial stats. May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Stats received by ts1.na May 24 21:34:29 node01 node[42000]: 2018-05-25 01:34:29 GMT -- Cert check: valid=true. Hostname node01.zentest.win matches CN node01.zentest.win |
|
17 | 检查zend和跟踪器的状态,两者都应该返回active (running)。 如果状态未将您返回到命令提示符,请按CTRL + c退出状态详细信息 |
Code Block |
---|
sudo systemctl status zend zentracker |
Panel |
---|
borderColor | grey |
---|
bgColor | black |
---|
titleColor | white |
---|
borderWidth | 2 |
---|
titleBGColor | black |
---|
borderStyle | solid |
---|
title | Example Output |
---|
| zenops@node01:~$ sudo systemctl status -n 0 zend zentracker ● zend.service - Zen daemon Loaded: loaded (/lib/systemd/system/zend.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-24 22:31:30 EDT; 34s ago Process: 21612 ExecStart=/usr/bin/zend -daemon -pid=/home/zenops/.zen/zend.pid (code=exited, status=0/SUCCESS) Main PID: 21615 (zend) Tasks: 16 Memory: 810.0M CPU: 18.963s CGroup: /system.slice/zend.service └─21615 /usr/bin/zend -daemon -pid=/home/zenops/.zen/zend.pid May 24 22:31:30 node01 systemd[1]: Starting Zen daemon... May 24 22:31:30 node01 zend[21612]: Zen server starting May 24 22:31:30 node01 systemd[1]: zend.service: PID file /home/zenops/.zen/zend.pid not readable (yet?) after start: No such file or directory May 24 22:31:30 node01 systemd[1]: Started Zen daemon. ● zentracker.service - Zen node daemon installed on ~/nodetracker/ Loaded: loaded (/lib/systemd/system/zentracker.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-24 21:34:27 EDT; 1h 1min ago Main PID: 19648 (node) Tasks: 10 Memory: 38.9M CPU: 4.110s CGroup: /system.slice/zentracker.service └─19648 /usr/local/bin/node /home/zenops/nodetracker/app.js |
|
18 | 如果两者都正常工作,请在boot时启用它们 |
Code Block |
---|
sudo systemctl enable zend zentracker |
|
19 | 使用systemctl启用防火墙 注意:许多指南缺乏在systemctl下启用此功能 如果未安装防火墙,请参阅: 第5部分保护-Host |
Code Block |
---|
sudo ufw -f enable
sudo systemctl start ufw
sudo systemctl enable ufw
sudo systemctl status ufw |
Panel |
---|
borderColor | grey |
---|
bgColor | black |
---|
titleColor | white |
---|
borderWidth | 2 |
---|
titleBGColor | black |
---|
borderStyle | solid |
---|
title | Example Output |
---|
| zenops@node01:~$ sudo systemctl status ufw [sudo] password for zenops: ● ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled) Active: active (exited) since Sat 2018-05-26 16:03:39 EDT; 23min ago Process: 603 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS) Main PID: 603 (code=exited, status=0/SUCCESS) Tasks: 0 Memory: 0B CPU: 0 CGroup: /system.slice/ufw.service May 26 16:03:39 node01 systemd[1]: Started Uncomplicated firewall. |
|
20 | 从startup中删除pm2 |
Code Block |
---|
sudo rm /etc/systemd/system/pm2*
sudo rm /etc/systemd/system/multi-user.target.wants/pm2* |
|
21 | 杀死并删除PM2(如果上述所有操作都没有错误执行) 您可能会看到有关更新npm的消息,您可以忽略它 |
Code Block |
---|
pm2 kill
sudo npm remove pm2 -g
sudo rm -r ~/.pm2 |
Panel |
---|
borderColor | grey |
---|
bgColor | black |
---|
titleColor | white |
---|
borderWidth | 2 |
---|
titleBGColor | black |
---|
borderStyle | solid |
---|
title | Example Output |
---|
| zenops@node01:~$ pm2 kill [PM2] Stopping PM2... [PM2] Applying action deleteProcessId on app [all](ids: 0) [PM2] [securenodetracker](0) ✓ [PM2] All processes have been stopped and deleted [PM2] PM2 stopped |
Panel |
---|
borderColor | grey |
---|
bgColor | black |
---|
titleColor | white |
---|
borderWidth | 2 |
---|
titleBGColor | black |
---|
borderStyle | solid |
---|
title | Example Output |
---|
| zenops@node01:~$ sudo npm remove pm2 -g removed 135 packages in 2.873s |
|
22 | 从启动中删除monit(您可能不需要这两个命令,两者都存在以适应systemd或init脚本) 如果您不确定monit的配置方式,请运行这两个命令
注意:如果执行的命令与monit的设置方式不符,预计会出现错误。 您可以安全地从这里提供的两个命令的一个命令中解除错误。 |
Code Block |
---|
sudo systemctl disable monit
sudo update-rc.d monit remove |
|
23 | 从系统中删除并清除monit并删除旧存储库(如果以上所有执行都没有错误) |
Code Block |
---|
sudo apt-get remove monit -y
sudo apt-get purge monit -y
sudo apt-get -y autoremove
rm -rf ~/zen_node.sh |
|
24 | acme.sh-迁移到certbot |
|