# Chainflip:可能是最详细的validator节点搭建教程 **Published by:** [syskey](https://paragraph.com/@syskeys/) **Published on:** 2022-11-19 **URL:** https://paragraph.com/@syskeys/chainflip-validator ## Content 项目介绍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链接信息第二步:开始搭建正式开始之前,先说明下,我的教程和官方有些不太一样,主要是我没有创建验证器专用的账号,我是直接在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 生成验证器Keychainflip-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 开启rotatesudo 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中询问。 如果觉得教程还不错,请多多点赞关注转发哈。文章引用官方blog官方twitter官方discord官方节点运行文档 ## Publication Information - [syskey](https://paragraph.com/@syskeys/): Publication homepage - [All Posts](https://paragraph.com/@syskeys/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@syskeys): Subscribe to updates - [Twitter](https://twitter.com/skyMetaverse): Follow on Twitter