ADA池搭建教程 part. 3 / 7 配置中继节点(relay node)
TY地址: https://youtu.be/z9JKxUinjlE
核心、中继、本地节点
首先我们来理清楚 核心节点
, 中继节点
, 本地节点
三者的用途和区别,看下图
核心节点:绑定了权益池证书的特殊配置节点可以产生新块并获得奖励;
中继节点:负责作为核心节点与shelley网络之间的通信桥梁,隔离保护核心节点,尽可能强化区块同步能力保证新块创建后能快速广播到网络上;
本地节点:应运行在安全本地网络内,用于存放敏感的钱包,管理核心节点的权益池注册、证书的生成与更新。
快速复制节点
上一节准备好了一个普通的ada节点,已经编译安装且同步好了区块。此时我们利用谷歌云的主机映像功能快速实现节点的克隆复制。
复制节点可以大量节省重新部署和同步的时间,同时也节省因为编译和同步产生的运算力和网络带宽费用(谷歌云算力与网络分别计费)。
进入 Compute Engine
- 机器映像
创建
, 输入任意名称,选择来源虚拟机实例
为就绪的节点主机,其余可以保持默认,点创建
创建后,到 虚拟主机实例
- 创建
, 左侧选择 通过机器映像新建虚拟机实例
,选择上一步创建的镜像,即可复制出一个节点主机
(记得也要做保留外网IP操作)
这样就可以快速的复制出多个节点,用于部署核心或更多中继。
如果不是谷歌云,服务商也没有提供主机完整镜像备份/克隆的功能。也可以把节点的 /opt/cardano/cnode
路径 除 logs 目录外的内容全部打包。在新主机上编译后启动节点前,解压恢复到相同路径。达到节省同步区块数据时间和流量的目的。
配置中继节点
开始配置前,先运行 /opt/cardano/cnode/scripts/cntools.sh
检查当前版本是否 6.x.x 如果是 5.x 的版本,需要先手动升级到 6
升级方法参考:
https://youtu.be/bGT9HqCc3Kc
或文档
https://cardano-community.github.io/guild-operators/#/upgrade
*变更节点的默认端口(非必须)
如过想修改节点运行的默认端口,不在默认的6000上,可以修改 /opt/cardano/cnode/scripts/env 文件,在头部配置变量里把端口号最前面的注释 # 号去掉,设置为自己指定的端口。然后保存。
没有更多特殊的配置,中继节点便配置好了。我们按上一节的方法启动节点,并等待区块再次同步
接下来我们运行一下 /opt/cardano/cnode/scripts/topologyupdater.sh
root@adalocal:/# cd /opt/cardano/cnode/scripts
root@adalocal:/opt/cardano/cnode/scripts# ./topologyUpdater.sh
{ "resultcode": "200", "datetime":"2020-10-31 00:45:39", "clientIp": "113.109.241.120", "iptype": 4, "msg": "nice to meet you" }
得到响应一个json里面带有信息 nice to meet you ,代表你向网络宣告自己的中继节点上线,别人的节点知道你的存在,你也下载了别的在线节点。这时候查看节点的监控面板,应该可以看到有很多节点(peers) 与你连接上了,在监控面板上按P键,可以查看节点的详细信息
在进一步,我们要让这个脚本每小时自动运行一次(接口的上报频率要求是不高于每小时1次,否则会返回错误提示“one request per hour please”)
输入编辑cron的命令
crontab -e
在编辑界面最底部添加以下一行内容
45 * * * * /opt/cardano/cnode/scripts/topologyUpdater.sh > /dev/null 2>&1 &
表示在每小时的45分执行一次 topologyUpdater.sh
按esc, 输入 :wq
回车后,保存crontab并生效
至此,中继节点的配置部分完毕。
下一节我们继续介绍核心节点注册和配置。
