背景介绍
Chainflip 是一个基于权益证明验证者网络的跨链去中心化交所,它使用高效的阈值签名方案和独特的 AMM 设计,为用户提供最高效和低摩擦的方式在一个完全去中心化系统中交易数字资产。
官方链接:
官方文档教程地址:
https://docs.chainflip.io/perseverance-validator-documentation/
准备工作
一台稳定的服务器,带公网IP ,可以购买vps ,如何购买和配置可以看我之前的文章
服务器配置:
-
操作系统: Ubuntu 20.04 以上
-
CPU: 4核以上
-
内存: 8 GB
-
SSD: 50 GB (可能会随着时间增加)
-
带宽: 千兆带宽
这次需要开启的端口号是30333 (TCP)
and 8078 (TCP)
一个RPC地址
我这里用的是alchemy提供的节点,如何申请可以查看我之前的文章
两个钱包
一个作为节点验证者,一个作为质押钱包
两个钱包都需要测试代币GoerliETH,可以去提前领取
节点验证0.1E左右即可,质押钱包需要去DEX兑换对应的测试代币tflip
https://tflip-dex.thunderhead.world/
兑换一定的量即可,准备工作完成。
开始搭建
先更新一下
apt update
apt install git -y
1.获取Validator软件
sudo mkdir -p /etc/apt/keyrings
curl -fsSL repo.chainflip.io/keys/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/chainflip.gpg
执行完上两步后验证
gpg --show-keys /etc/apt/keyrings/chainflip.gpg
出现一下就是成功
添加Chainflip到apt
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
接着更新刚才添加的
sudo apt-get update
sudo apt-get install -y chainflip-cli chainflip-node chainflip-engine
如过出现红框中的提示执行以下步骤再重新安装,如果没有继续往下看
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
sudo apt-get update
sudo apt-get install libssl1.1
sudo apt-get install -y chainflip-cli chainflip-node chainflip-engine
成功安装后如下
2.生成验证器密钥
创建目录
sudo mkdir -p /etc/chainflip/keys
cd /etc/chainflip/keys
生成key, YOUR_VALIDATOR_WALLET_PRIVATE_KEY的地方替换成你的node节点验证的钱包私钥,确保你的这个钱包已经有测试网的eth
echo -n "YOUR_VALIDATOR_WALLET_PRIVATE_KEY" | sudo tee /etc/chainflip/keys/ethereum_key_file
生成签名key,不要泄露你的助记词
chainflip-node key generate
请备份以上信息到一个安全的地方
Secret seed 是你的私钥
Public key (SS58)是你验证编号,后面的只要需要用到
设置你的私钥,保持到一个文件中
SECRET_SEED=0x359bexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
echo -n "${SECRET_SEED:2}" | sudo tee /etc/chainflip/keys/signing_key_file
接着生成node key
sudo chainflip-node key generate-node-key --file /etc/chainflip/keys/node_key_file
查看生成的key ,可以看到打印出来的内容
cat /etc/chainflip/keys/node_key_file
3.创建配置文件
创建目录
sudo mkdir -p /etc/chainflip/config
编辑配置文件
sudo nano /etc/chainflip/config/Default.toml
复制一下内容同时替换三个地方
IP_ADDRESS_OF_YOUR_NODE 替换为你公网的ip地址
WSS_ENDPOINT_FROM_ETHEREUM_CLIENT 替换为之前准备工作中的RPC对应的WSS地址
HTTPS_ENDPOINT_FROM_ETHEREUM_CLIENT替换为之前准备工作中的RPC对应的HTTPS地址
# 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"
替换后大概如下写入配置文件
保持后退出
4.启动验证节点
开启节点
sudo systemctl start chainflip-node
查看节点状态
sudo systemctl status chainflip-node
按ctrl+c退出,查看日志
tail -f /var/log/chainflip-node.log
可以查看到现在属于节点同步状态
需要等待同步,一直等待到同步完毕,这个过程比较长,需要耐心等待,成功同步后户显示如下
接着完成后开启引擎,一定要等待全部节点同步后再执行,不然会出错
sudo systemctl start chainflip-engine
查看引擎状态
sudo systemctl status chainflip-engine
最后开启开机后自动启动
sudo systemctl enable chainflip-node
sudo systemctl enable chainflip-engine
查看引擎日志
tail -f /var/log/chainflip-engine.log
竞标和质押
确定你的质押钱包已经兑换了一定量的tflip,如果还没有,请查看之前的准备工作部分
来到竞标质押页面
https://stake-perseverance.chainflip.io/
连接你的钱包,点击添加节点
公钥选择之前备份的信息里的验证ID,cF开头的
点击质押授权,这里可能会弹出两次提示授权和质押,允许即可
可以在我的节点里面查看
注意此时你可能还没有下面的显示,我这是已经完成的,需要继续操作,运行前请确认你的节点已经完全同步
注册验证密钥
sudo chainflip-cli \
--config-path /etc/chainflip/config/Default.toml \
register-account-role Validator
如果正常,你会在终端看到一串transaction hash,复制到区块浏览器中去查询
然后,激活帐户,同样有哈希可查询是否成功
sudo chainflip-cli \
--config-path /etc/chainflip/config/Default.toml \
activate
最后运行轮转密钥,也有哈希可查询是否成功
,sudo chainflip-cli \
--config-path /etc/chainflip/config/Default.toml rotate
可选项目:修改你的验证名称
my-discord-username 可替换为你想要的名字
sudo chainflip-cli \
--config-path /etc/chainflip/config/Default.toml \
vanity-name my-discord-username
最后等待质押界面出现你的节点即可
总结
总体流程比较长,但是都不难,只要仔细每步确认就没什么问题
如果对本文章有什么意见和建议可以联系我推特@dapaopao_eth,欢迎交流