Chainflip:可能是最详细的validator节点搭建教程

项目介绍

Chainflip 是一种去中心化、无需信任的协议,可实现不同区块链之间的跨链交换。

我们消除了任何类型的用户障碍或繁重的权衡,因此无需以前的加密知识,只需点击几下即可交换您的代币。

项目融资

  • 600W美元 由 Framework Ventures 领投。

  • 1000W美元 由 Framework Ventures、Blockchain Capital 和 Pantera Capital 领投。

测试网节点介绍

详细的官方介绍可以查看官方推文线程,我这里简单说下:

1、这是个长期运行的测试网,如果要运行验证节点,要做好长期运行的准备,并且目前不是激励性测试网。

2、运行测试网验证器,最好是具备一些Linux系统的基础知识。

3、虽然说不是激励性测试网,但官方twitter说了,虽然不会立即受到激励,但我们会在未来为大家提供许多惊喜,以奖励大家的参与。

Validator(验证器)搭建教程

在教程开始之前非常感谢小师妹的提醒,要不我就可能错过了。

第一步:准备工作

1.1 服务器要求

  • 操作系统:Ubuntu 20.04 - 请仅使用此操作系统

  • CPU:4 GHz | 4+ 核心,专用更好

  • 内存:8GB

  • 磁盘:50 GB(这可能会随着时间的推移而增加)

  • 带宽:推荐 1GBps 连接,每月 100 GB 组合上行/下行带宽

该机器必须 24/7 全天候可用,因此建议您仅在具有稳定可靠的互联网连接的机器上尝试此操作,例如 VPS 或专用服务器。

1.2 服务器必须开放以下端口

  • 30333 (TCP)

  • 8078 (TCP)

1.3 必须准备两个以太坊钱包(请一定要用新的钱包地址,因为需要用到钱包私钥)

  • Stake wallet : 用来质押的钱包 (也需要测试网 Goerli ETH,数量够发起交易就行,需要用此钱包地址到官方discord中领水)

  • Validator wallet : 操作验证器的钱包 (钱包内请提前准备至少0.1 Goerli ETH的测试币)

1.4 Alchemy Goerli测试网的RPC链接

这一块就不详细的介绍了,网上有很多教程,这里附上申请RPC的官方教程。最终我们需要的是HTTPS和WEBSOCKETS的链接地址。注意:key别泄露了。

https和wss链接信息
https和wss链接信息

第二步:开始搭建

正式开始之前,先说明下,我的教程和官方有些不太一样,主要是我没有创建验证器专用的账号,我是直接在root用户下进行安装的。当然为了安全来说,创建专用账户会好些,但都是相对的。不啰嗦了,正式开始。

2.1 获取Validator软件

sudo mkdir -p /etc/apt/keyrings \
&& curl -fsSL repo.chainflip.io/keys/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/chainflip.gpg

2.2 添加源信息

echo "deb [signed-by=/etc/apt/keyrings/chainflip.gpg] https://repo.chainflip.io/perseverance/ focal main" | sudo tee /etc/apt/sources.list.d/chainflip.list

2.3 更新系统,并安装Validator软件

sudo apt-get update \
&& sudo apt-get install -y chainflip-cli chainflip-node chainflip-engine

这一步更新可能会慢些,耐心等待完成。

第三步:配置和生成验证器密钥

3.1 创建密钥保存的目录,并进入此目录

sudo mkdir /etc/chainflip/keys \
&& cd /etc/chainflip/keys

3.2 还记的在1.3步骤中提前准备的两个钱包地址吗?现在就需要用到Validator wallet的私钥了,将验证器钱包的私钥导出,并运行下面的命令(注意将“你的验证器钱包私钥”替换为自己的钱包私钥)。注意:如果私钥前面有0x,请删除0x。

YOUR_VALIDATOR_WALLET_PRIVATE_KEY=你的验证器钱包私钥 \
&& echo -n "YOUR_VALIDATOR_WALLET_PRIVATE_KEY" |  sudo tee /etc/chainflip/keys/ethereum_key_file

3.3 生成验证器Key

chainflip-node key generate
  • Secret phrase:验证器的助记词(不要泄露)

  • Secret seed:验证器私钥(不要泄露)

  • Public key (SS58):验证器公钥(stake时需要此地址)

3.3.1 将验证器私钥写入到文件,需要把下面命令中的YOUR_CHAINFLIP_SECRET_SEED替换为3.3步骤中Secret seed显示的内容(包含0x)。

SECRET_SEED=YOUR_CHAINFLIP_SECRET_SEED \
&& echo -n "${SECRET_SEED:2}" | sudo tee /etc/chainflip/keys/signing_key_file

3.4 生成节点密钥

sudo chainflip-node key generate-node-key --file /etc/chainflip/keys/node_key_file

已经过以上步骤后,你应该能在/etc/chainflip/keys目录中看到如下三个文件。(请不要向任何人共享这些文件,绝对私密文件。)

第四步:创建配置文件

4.1 创建配置文件目录及文件

sudo mkdir -p /etc/chainflip/config \
&& sudo touch /etc/chainflip/config/Default.toml

4.2 执行下面的命令,在执行之前,需要先将IP_ADDRESS_OF_YOUR_NODE字段修改为自己的服务器公网IP,将1.4步骤中申请的RPC链接分别替换WSS_ENDPOINT_FROM_ETHEREUM_CLIENT和HTTPS_ENDPOINT_FROM_ETHEREUM_CLIENT字段,其他内容不需要修改,然后执行即可。

cat>/etc/chainflip/config/Default.toml<<EOF
#Default configurations for the CFE
[node_p2p]
node_key_file = "/etc/chainflip/keys/node_key_file"
ip_address="IP_ADDRESS_OF_YOUR_NODE"
port = "8078"

[state_chain]
ws_endpoint = "ws://127.0.0.1:9944"
signing_key_file = "/etc/chainflip/keys/signing_key_file"

[eth]
#Ethereum RPC endpoints (websocket and http for redundancy).
ws_node_endpoint = "WSS_ENDPOINT_FROM_ETHEREUM_CLIENT"
http_node_endpoint = "HTTPS_ENDPOINT_FROM_ETHEREUM_CLIENT"

#Ethereum private key file path. This file should contain a hex-encoded private key.
private_key_file = "/etc/chainflip/keys/ethereum_key_file"

[signing]
db_file = "/etc/chainflip/data.db"
EOF

完成后的样子大概如下图所示

第五步:启动节点

5.1 启动验证节点

sudo systemctl start chainflip-node

5.1.1 查看验证节点状态(active (running) 代表运行正常)

sudo systemctl status chainflip-node

5.1.2 设置chainflip-node开机启动

sudo systemctl enable chainflip-node

5.1.3 查看同步日志,整个同步速度还是很快的基本上半个小时左右就能同步完成了。

tail -f /var/log/chainflip-node.log
  • Syncing:代表正在同步

  • target:当前网络高度

  • best:当前同步进度

  • finalized:当前已同步完成

  • Idle: 代表当前节点已经同步完成

退出查看日志按键盘ctrl/control + c即可。

5.2 启动chainflip-engine

重要说明:要运行此步骤必须要等待节点同步完成才可以,不然会报错。

重要说明:要运行此步骤必须要等待节点同步完成才可以,不然会报错。

重要说明:要运行此步骤必须要等待节点同步完成才可以,不然会报错。

sudo systemctl start chainflip-engine

5.2.1 查看chainflip-engine状态(active (running) 代表运行正常)

sudo systemctl status chainflip-engine

5.2.2 设置chainflip-engine开机启动

sudo systemctl enable chainflip-engine

5.2.3 查看chainflip-engine日志

tail -f /var/log/chainflip-engine.log

日志会显示我们当前还没有质押的警告,这个我们接下来操作质押。

第六步:质押

6.1 在质押之前,我们需要先到官方discord中领水,进入discord中后先在join-testnet频道点击按钮才能显示出来faucet频道。

6.2 在faucet频道,发送 !drip stake钱包地址即可领取官方发的测试币TFLIP。stake钱包就是我们在1.3步骤中提前准备的钱包。

6.3 打开官方stake网站,使用我们的stake钱包链接网站。然后点击Add node按钮,在弹出的输入框中填写我们的验证器公钥(就是3.3步骤中生成的SS58类型的公钥),填写质押的数量,最后点击下方按钮即可。这里需要两次操作approval和stakes因为我操作过了, 所以只显示了stakes。

6.4 当我们在网站上质押完成后,可以在My nodes页面查看验证器信息。你现在查看到的状态可能和我显示的不一样,这是因为在网站上质押之后,还需要到服务器上设置验证器的其他信息。

第七步:在服务器上上设置验证器的其他信息

7.1 注册验证器密钥

sudo chainflip-cli \
      --config-path /etc/chainflip/config/Default.toml \
      register-account-role Validator

7.2 激活验证器

sudo chainflip-cli \
    --config-path /etc/chainflip/config/Default.toml \
    activate

7.3 开启rotate

sudo chainflip-cli \
    --config-path /etc/chainflip/config/Default.toml rotate

7.4 可选,设置验证器的名字,将下面命令中的my-name修改为其他任何你想显示的名字

sudo chainflip-cli \
    --config-path /etc/chainflip/config/Default.toml \
    vanity-name my-name

7.5 当运行完上面的命令后,还需要重启下chainflip-engine,稍等片刻后,再到stake网站上查看验证器状态就会发生变化了。

sudo systemctl restart chainflip-engine

最后

整个教程基本到这里就结束了,如果你在运行过程中有什么问题,请到官方Discord中询问。

如果觉得教程还不错,请多多点赞关注转发哈。

文章引用

Subscribe to syskey
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.