# Quicksilver 节点部署教程-超过 50%的 Genesis 供应将被空投给社区

By [syskey](https://paragraph.com/@syskeys) · 2022-05-10

---

一、项目信息
------

**Web：**[**quicksilver.zone**](https://quicksilver.zone/)

**Twitter：**[**quicksilverzone**](https://twitter.com/quicksilverzone)

**Discord：**[**discord.gg**](https://discord.gg/2MnPK7Kecp)

二、硬件要求
------

与任何 Cosmos-SDK 链一样，硬件要求非常适中。

*   4 个 CPU；时钟速度越快越好
    
*   8GB 内存
    
*   40GB 磁盘（我们使用 statesync，所以磁盘要求很低）
    
*   永久的 Internet 连接（在测试网期间流量将最小化；10Mbps 就足够了 - 对于生产，预计至少 100Mbps）
    

三、操作系统（建议）
----------

*   Ubuntu 20.04（server版本）
    
*   [云服务器参考](https://app.cloudcone.com/?ref=3999)（商家已重新补货）
    
*   [云服务器使用参考之前的教程](https://mirror.xyz/0xE2027B05D620c0109e2d8e751A10A2aAda3e490A/YwniPE5RsuUC8MQgpA2b-U-rr8i1oZprYOQa_dRQYHU)
    
*   [2G2核80G3T/月$26/年](https://app.cloudcone.com.cn/vps/81/create?token=hashtag%202022%20vps%20-%203&ref=14)
    
*   [3G2核110G4T/月$33/年](https://app.cloudcone.com.cn/vps/82/create?token=hashtag%202022%20vps%20-%204&ref=14)
    
*   [4G4核180G5T/月$47.8/年](https://app.cloudcone.com.cn/vps/83/create?token=hashtag%202022%20vps%20-%205&ref=14)
    
*   [8G4核280G7T/月$89.6/年](https://app.cloudcone.com.cn/vps/84/create?token=hashtag%202022%20vps%20-%206&ref=14)
    
*   [16G8核570G16T/月$171/年](https://app.cloudcone.com.cn/vps/85/create?token=hashtag%202022%20vps%20-%207&ref=14)
    

四、手动部署步骤
--------

4.1-更新系统并安装必要的组件

    sudo apt update && sudo apt upgrade --yes
    sudo apt install make clang pkg-config libssl-dev build-essential git jq ncdu bsdmainutils -y < "/dev/null"
    

4.2-安装golang

    cd $HOME
    wget -O go1.18.1.linux-amd64.tar.gz https://golang.org/dl/go1.18.1.linux-amd64.tar.gz
    rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz && rm go1.18.1.linux-amd64.tar.gz
    echo 'export GOROOT=/usr/local/go' >> $HOME/.bash_profile
    echo 'export GOPATH=$HOME/go' >> $HOME/.bash_profile
    echo 'export GO111MODULE=on' >> $HOME/.bash_profile
    echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && . $HOME/.bash_profile
    go version
    

4.3-构建Quicksilver

    git clone https://github.com/ingenuity-build/quicksilver.git --branch v0.1.10
    cd quicksilver
    make build
    chmod +x ./build/quicksilverd && mv ./build/quicksilverd /usr/local/bin/quicksilverd
    

4.4-设置验证器配置

**记得将$NODENAME替换为自己的节点名字**

    cd $HOME
    quicksilverd init $NODENAME --chain-id=quicktest-3
    quicksilverd config chain-id quicktest-3
    quicksilverd config broadcast-mode block
    wget -qO $HOME/.quicksilverd/config/genesis.json "https://raw.githubusercontent.com/ingenuity-build/testnets/main/rhapsody/genesis.json"
    quicksilverd unsafe-reset-all
    

4.5-修改seeds和persistent\_peers配置

    SEEDS="dd3460ec11f78b4a7c4336f22a356fe00805ab64@seed.quicktest-1.quicksilver.zone:26656"
    sed -i -e "/seeds =/ s/= .*/= \"$SEEDS\"/"  $HOME/.quicksilverd/config/config.toml
    
    PEERS="8a6c7775df2a891133b994607b93eb92a4a00e2d@95.216.161.177:26656,f9a35b54f3e9e195ed109ac2ca29814b2deddcf9@164.92.212.102:26656,2b739b09350220485b7ecefd5b784307b3127f68@88.198.242.163:26656,259cd5234c4db46de71942ce21890bf25056ad27@65.21.1.224:26656,259cd5234c4db46de71942ce21890bf25056ad27@65.21.1.224:26656,2b739b09350220485b7ecefd5b784307b3127f68@88.198.242.163:26656,f9a35b54f3e9e195ed109ac2ca29814b2deddcf9@164.92.212.102:26656,3938a7bdaae1da2f88a5c0195534052b35e61bcf@49.12.74.226:26656,cf8dbe09fca0cba81ed3b3b46243fabd5c29c164@65.21.143.79:20556"
    sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.quicksilverd/config/config.toml
    

4.6-配置pruning

    pruning="custom"
    pruning_keep_recent="100"
    pruning_keep_every="0"
    pruning_interval="10"
    
    sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.quicksilverd/config/app.toml
    sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.quicksilverd/config/app.toml
    sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.quicksilverd/config/app.toml
    sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.quicksilverd/config/app.toml
    

4.7-修改addrbook

    rm $HOME/.quicksilverd/config/addrbook.json 
    wget -q -O $HOME/.quicksilverd/config/addrbook.json https://raw.githubusercontent.com/sourled/addrbook/main/addrbook.json
    

4.8-修改同步方式

    SNAP_RPC1="http://node02.quicktest-1.quicksilver.zone:26657" \
    && SNAP_RPC2="http://node04.quicktest-1.quicksilver.zone:26657"
    
    LATEST_HEIGHT=$(curl -s $SNAP_RPC2/block | jq -r .result.block.header.height) \
    && BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)) \
    && TRUST_HASH=$(curl -s "$SNAP_RPC2/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
    
    sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
    s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC1,$SNAP_RPC2\"| ; \
    s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
    s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.quicksilverd/config/config.toml
    

4.9-将quicksilverd安装为服务

    sudo tee /etc/systemd/system/quicksilverd.service > /dev/null <<EOF
    [Unit]
    Description=Quicksilver
    After=network.target
    [Service]
    Type=simple
    User=$USER
    ExecStart=$(which quicksilverd) start
    Restart=on-failure
    RestartSec=10
    LimitNOFILE=65535
    [Install]
    WantedBy=multi-user.target
    EOF
    

4.10-重载并启动quicksilverd

    sudo systemctl daemon-reload
    sudo systemctl enable quicksilverd
    sudo systemctl start quicksilverd 
    

4.10-查看同步日志

    journalctl -u quicksilverd -f
    

到此节点同步设置就完成了，观察下日志看同步是否有错。

4.11-查看同步是否完成

    quicksilverd status 2>&1 | jq .SyncInfo
    

**运行上面的命令后如果输出的是下面的内容就代表同步完成。主要看“catching\_up”字段false代表同步完成，true代表正在同步。**

    root@quicks:~# quicksilverd status 2>&1 | jq .SyncInfo
    {
      "latest_block_hash": "5C6995D73B7DE49DB95D009B2564DA33ECC18B3AAA7800A9A431057D9B53B45C",
      "latest_app_hash": "08DB2173469F11E5EF7CB0C00C68A9062117E98721CCBF35D0FDB57A9FD2035E",
      "latest_block_height": "107746",
      "latest_block_time": "2022-05-10T02:56:55.681790966Z",
      "earliest_block_hash": "3800851F8170E3570DCFC7A0E56E72DA12FB2625B401CA74AEB1A3E6B5BADB15",
      "earliest_app_hash": "EA7027069F3E40904A53C0BC6A2BF1EE54FF70E93D84C74DD62D6940387A85EB",
      "earliest_block_height": "100501",
      "earliest_block_time": "2022-05-09T14:28:04.60522285Z",
      "catching_up": false
    }
    

4.12-创建QCK钱包并领水

将\*\*$walletName**替换为自己想要的名字**（不要直接复制运行）\*\*

    quicksilverd keys add $walletName
    

输入两次密码，钱包创建完成后会直接显示**钱包地址还有助记词，记得保存下来。**

到[Discord](https://discord.gg/2MnPK7Kecp)中#qck-tap频道发送下面的指令领取uqck测试币\*\*（将钱包地址替换为自己的）\*\*

    $request quick1fssluasvna560a7djm3rzeht7k7x66w4j6yu8h rhapsody
    

#atom-tap频道发送下面的指令领取uatom测试币\*\*（直接用主网的钱包地址就可以的）\*\*

    $request cosmos1eu2szhmms0dc07ufe5z7926eqhaksw8r32umhe rhapsody
    

**4.13-创建验证器（这一步必须要在同步完成，并且钱包有余额的情况下才可以操作）**

将\*\*$walletName\*\*修改为自己的钱包名字或者钱包地址

将\*\*$monikername\*\*修改为自己设置的节点名字

    quicksilverd tx staking create-validator \
      --from=$walletName \
      --amount=4900000uqck \
      --moniker=$monikername \
      --chain-id=quicktest-3 \
      --commission-rate=0.1 \
      --commission-max-rate=0.5 \
      --commission-max-change-rate=0.1 \
      --min-self-delegation=1 \
      --fees=200uqck \
      --pubkey=$(quicksilverd tendermint show-validator)
    

完成之后可以到[区块链浏览器](https://quicksilver.explorers.guru/validators)中查看运行的情况

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

.

五、可能有用的命令
---------

5.1-检查日志

    journalctl -fu quicksilverd -o cat
    

5.2-启动服务

    systemctl start quicksilverd
    

5.3-停止服务

    systemctl stop quicksilverd
    

5.4-重启服务

5.5-节点同步状态

    quicksilverd status 2>&1 | jq .SyncInfo
    

更多命令请查看[官方文档](https://github.com/kj89/testnet_manuals/tree/main/quicksilver)。

到此教程完结，有不懂的可以到官方[Dis社区](https://discord.gg/Hvkh9WcuWt)提问。

更多精彩内容欢迎关注我的twitter：

---

*Originally published on [syskey](https://paragraph.com/@syskeys/quicksilver-50-genesis)*
