# 融资1600万美元 | ChainFlip 节点搭建教程

By [dapaopao](https://paragraph.com/@dapaopao) · 2022-11-27

---

背景介绍
----

Chainflip 是一个基于权益证明验证者网络的跨链去中心化交所，它使用高效的阈值签名方案和独特的 AMM 设计，为用户提供最高效和低摩擦的方式在一个完全去中心化系统中交易数字资产。

官方链接：

*   [推特](https://twitter.com/chainflip)
    
*   [Discord](https://discord.gg/8zbsqDsfyp)
    
*   [Telegram](https://t.me/chainflip_io_chat)
    

官方文档教程地址：

[https://docs.chainflip.io/perseverance-validator-documentation/](https://docs.chainflip.io/perseverance-validator-documentation/)

准备工作
----

**一台稳定的服务器**，带公网IP ,可以购买vps ，如何购买和配置可以看我之前的[文章](https://mirror.xyz/dapaopao.eth/JLrpPueVCXHrOkSC4VMWsKZKCaLln5c9ANilpK7L3nE)

服务器配置：

*   操作系统: Ubuntu 20.04 以上
    
*   CPU: 4核以上
    
*   内存: 8 GB
    
*   SSD: 50 GB (可能会随着时间增加)
    
*   带宽: 千兆带宽
    

这次需要开启的端口号是`30333 (TCP)` and `8078 (TCP)`

**一个RPC地址**

我这里用的是alchemy提供的节点，如何申请可以查看我之前的[文章](https://mirror.xyz/dapaopao.eth/li15PN8nTz-wfZgYzfdFY6Ne5M6MA3zo_Coih42n6j0)

**两个钱包**

一个作为节点验证者，一个作为质押钱包

两个钱包都需要测试代币GoerliETH，可以去提前领取

[https://goerlifaucet.com/](https://goerlifaucet.com/)

![](https://storage.googleapis.com/papyrus_images/b42d4730585b9f06298a7c24405a4096f15b3600657c388c3629742d93e9074d.png)

节点验证0.1E左右即可，质押钱包需要去DEX兑换对应的测试代币tflip

[https://tflip-dex.thunderhead.world/](https://tflip-dex.thunderhead.world/)

![](https://storage.googleapis.com/papyrus_images/ab6346b2c7bf166443505fef61b78b8f6a9a4636d84d4530e4ad1f9111d1c4ea.png)

兑换一定的量即可，准备工作完成。

开始搭建
----

先更新一下

    apt update 
    

    apt install git -y
    

![](https://storage.googleapis.com/papyrus_images/9d2533337ea685b75d7b9c218eedc47cc4419b5d126a448cea0b039f9b7d16df.png)

### 1.获取Validator软件

    sudo mkdir -p /etc/apt/keyrings
    

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

![](https://storage.googleapis.com/papyrus_images/1364ed48e6726742927bdca72877fcc74c3fda74cb27c01df6dd879122f95997.png)

执行完上两步后验证

    gpg --show-keys /etc/apt/keyrings/chainflip.gpg
    

出现一下就是成功

![](https://storage.googleapis.com/papyrus_images/e4a06ca3137bc01c09834b6f2236c4cfd8fc51de696d08aa112d266c8e837958.png)

添加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
    

![](https://storage.googleapis.com/papyrus_images/e0300d14e947a5c7e04d750fa4a3b2e8c3483ef3e9665a9de2256416b7164d6c.png)

接着更新刚才添加的

    sudo apt-get update
    

    sudo apt-get install -y chainflip-cli chainflip-node chainflip-engine
    

![](https://storage.googleapis.com/papyrus_images/a60dff17e66ac51e4e929f14af4d6243d6c0382558ad48cea6044280c60d3165.png)

如过出现红框中的提示执行以下步骤再重新安装，如果没有继续往下看

    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
    

成功安装后如下

![](https://storage.googleapis.com/papyrus_images/fb73a92efd09d4731689be3cd0bfaf6981cedbfc4814c2657ded21405941214d.png)

### 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
    

![](https://storage.googleapis.com/papyrus_images/3f622ce0c2b857eae67e5edc7e5e5a05e5d31750dc6f9a3f8e438769fb272822.png)

生成签名key，不要泄露你的助记词

    chainflip-node key generate
    

![](https://storage.googleapis.com/papyrus_images/7b0a72d3b483bd34426f54ed5d14037a83fcf611844636fcb969c71526b62c11.png)

请备份以上信息到一个安全的地方

Secret seed 是你的私钥

Public key (SS58)是你验证编号，后面的只要需要用到

设置你的私钥，保持到一个文件中

    SECRET_SEED=0x359bexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

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

![](https://storage.googleapis.com/papyrus_images/1d8e341872f70acd37c3b38c38f166b59753fb1ecfca6858db806b3b02c2ffda.png)

接着生成node key

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

查看生成的key ,可以看到打印出来的内容

    cat /etc/chainflip/keys/node_key_file
    

![](https://storage.googleapis.com/papyrus_images/d499d7a0257e97fb54f05ecb55373bedc7f9fa942ea3f14a11126378e83abb9d.png)

### 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"
    

替换后大概如下写入配置文件

![](https://storage.googleapis.com/papyrus_images/eed1155887e7028954628bd23c637f45417bef0ea2083325bf89bebadd6844d7.png)

保持后退出

### 4.启动验证节点

开启节点

    sudo systemctl start chainflip-node
    

查看节点状态

    sudo systemctl status chainflip-node
    

![](https://storage.googleapis.com/papyrus_images/9f96914bc8b17db58bb9fa68613629ff3717336eb752cda8ffae5075d68e73ab.png)

按ctrl+c退出，查看日志

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

可以查看到现在属于节点同步状态

![](https://storage.googleapis.com/papyrus_images/97f64a3e721a4082dbcc7117bbb9d88b6a02a13ef264ebc85bf9713c591b80a1.png)

需要等待同步，一直等待到同步完毕，这个过程比较长，需要耐心等待，成功同步后户显示如下

![](https://storage.googleapis.com/papyrus_images/7d93b656da361debdab5de579d3454006583ec6f96e3abc8fef94d29a99736af.png)

接着完成后开启引擎，一定要等待全部节点同步后再执行，不然会出错

    sudo systemctl start chainflip-engine
    

查看引擎状态

    sudo systemctl status chainflip-engine
    

![](https://storage.googleapis.com/papyrus_images/cca1b2aaa38f2aeadf892ac6d94f495d9f62af5a803b03d959f73bc79406eff1.png)

最后开启开机后自动启动

    sudo systemctl enable chainflip-node
    

    sudo systemctl enable chainflip-engine
    

查看引擎日志

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

竞标和质押
-----

确定你的质押钱包已经兑换了一定量的tflip，如果还没有，请查看之前的准备工作部分

来到竞标质押页面

[https://stake-perseverance.chainflip.io/](https://stake-perseverance.chainflip.io/)

连接你的钱包，点击添加节点

![](https://storage.googleapis.com/papyrus_images/4a5f87cb1a63cd46fd75d1651ad72f87d9b8cdde4ee217a2a821a1df58d44d4d.png)

公钥选择之前备份的信息里的验证ID，cF开头的

![](https://storage.googleapis.com/papyrus_images/ee60ef594c5c9906117f23b55f3af4431ecb864029bffb6c2f8045a8dd7c6237.png)

点击质押授权，这里可能会弹出两次提示授权和质押，允许即可

![](https://storage.googleapis.com/papyrus_images/2b524829ce7f9eea17b71d09964ffe7b95a05013f5dcccc4723ea17c7c64929c.png)

可以在我的节点里面查看

注意此时你可能还没有下面的显示，我这是已经完成的，需要继续操作，**运行前请确认你的节点已经完全同步**

注册验证密钥

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

如果正常，你会在终端看到一串transaction hash，复制到[区块浏览器](https://blocks-perseverance.chainflip.io/)中去查询

![](https://storage.googleapis.com/papyrus_images/47c309a093c2b7bb95b58a0379f5dbf4e66a06d3c2662884c1abd75e8fca52ce.png)

然后，激活帐户，同样有哈希可查询是否成功

    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，欢迎交流

[https://twitter.com/dapaopao\_eth](https://twitter.com/dapaopao_eth)

---

*Originally published on [dapaopao](https://paragraph.com/@dapaopao/1600-chainflip)*
