成为 DBC 验证节点

大约 5 分钟

成为 DBC 验证节点

0. 机器配置

  • 内存:8G
  • CPU:2 核
  • 硬盘:100G
  • 系统: Ubuntu22.04

1. 生成资金账户(已有资金账户可以略过)

参考: 如何生成账户

2. 获取 dbc-chain 二进制

方式 1: 使用预编译版本

如果不能正常运行,请使用方式 2 自行编译:

mkdir dbc-chain-mainnet && cd dbc-chain-mainnet
wget https://github.com/DeepBrainChain/DeepBrainChain-MainChain/releases/download/v2.6/dbc-daily-release.tar.gz -O dbc_chain_linux_x64.tar.gz

tar xf dbc_chain_linux_x64.tar.gz

方式 2:从源码进行编译

# 安装依赖
curl https://getsubstrate.io -sSf | bash -s -- --fast
source ~/.cargo/env

# 编译dbc-chain
git clone https://github.com/DeepBrainChain/DeepBrainChain-MainChain.git
cd DeepBrainChain-MainChain && git checkout v2.6
cargo build --release

3. 运行同步节点

./dbc-chain --base-path ./db_data --pruning archive
  • 如果你是从源码进行编译,可执行文件路径为:./target/release/dbc-chain

  • 同步完成后,Control + C关掉程序。你可以根据targetbest的比较来判断是否同步已经完成。当 target 与 best 相差不大(如 100 以内)时,可以认为已经完成同步。

  • 参数说明:
    • --base-path:指定该区块链存储数据的目录。如果不指定,将使用默认路径。如果目录不存在,将会为你自动创建。如果该目录已经有了区块链数据,将会报错,这时应该选择不同的目录或清除该目录内容
    • --pruning=archive:以归档的方式启动区块链
    • --bootnodes:指定引导节点地址。(如果遇到0 peers的同步状态,可以尝试指定--bootnodes /ip4/122.99.183.53/tcp/3308/p2p/12D3KooWDx4pgzT2RAPF12QkmiBZy6BUsTtPt7JgiYxgFm6Z5Hc5 或者其他已知同步节点)

4. 以验证人的方式运行节点

  • 当dbc主网升级到3.0版本时,会有很多的新特性,这与旧版本不兼容,为了稳定获得质押奖励,请升级到3.0版本
# 在第2步生成的文件夹下执行
wget https://github.com/DeepBrainChain/DeepBrainChain-MainChain/releases/download/v3.2/dbc-chain-v3.tar.gz -O dbc_chain_linux_x64.tar.gz

tar xf dbc_chain_linux_x64.tar.gz

#运行验证节点
# 查询并停止旧版本的同步节点
ps aux | grep dbc-chain

#结果类似于如下显示
root      761495  0.0  0.0   9584  2588 pts/0    S+   17:07   0:00 grep --color=auto -w dbc-chain
root      926101  2.0  5.1 4295592 1650640 ?     Sl    2023 5320:10 ./dbc-chain --base-path ./db_data --port 30337 --ws-port 9948 --rpc-port 9937 --pruning archive

# 停止旧节点
sudo kill -9 926101 (注意替换为实际查询到的PID)

#启动新版本节点
nohup ./dbc-chain --base-path ./db_data --chain dbcSpecRaw.json --validator --name YourNodeName 1>dbc_node.log 2>&1 &

#如果遇到启动报错
./dbc-chain: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by ./dbc-chain)
./dbc-chain: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./dbc-chain)
./dbc-chain: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./dbc-chain)
./dbc-chain: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./dbc-chain)
./dbc-chain: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./dbc-chain)

#解决方案:
#1.中国地区的设备:
echo "deb http://mirrors.aliyun.com/ubuntu/ jammy main" >> /etc/apt/sources.list
sudo apt update
sudo apt install libc6 libstdc++6 -y
#2. 非中国地区设备:
echo "deb http://archive.ubuntu.com/ubuntu/ jammy main" >> /etc/apt/sources.list
sudo apt update
sudo apt install libc6 libstdc++6 -y
  • 如果你是从源码进行编译,可执行文件路径为:./target/release/dbc-chain

  • 注意,这里 --name YourNodeName 是设置你的节点名称,你可以为你的节点起一个独一无二容易辨认的名称,别人将能在网络上看到它。

5. 生成rotateKey

在运行验证人节点命令的机器上运行下面命令

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933

6. 设置绑定(bond)金额

  • 导航到网络 >质押 > 账户操作 > 存储账户
  • 设置 bond 的金额(确保除了 bond 的数额,您的账户中还有余额以用来发送交易):

说明:

  • Stash account:你的资金账户,这里我们 bond 45 DBC,确保账户中余额至少有这么多

  • controller account:这个账户也应该有少量的 DBC 来发送开始和停止验证人的交易

  • value bonded:你想要 bond/stake 多少 DBC, 请注意,你不需要 bond 账户中所有的余额,另外你随后可以增加 bond 的数额。

  • payment destination:验证人获得的奖励将会被发给这个账户。这个账户可以设置成任何账户。其中,

  • Stash account(increase the amount at stake): 收益发放到 stash 账户,并质押

  • Stash account(do not increase the amount at stake):收益发放到 stash 账户,不进行质押

7. 设置rotateKey

  • 在执行了 bond 之后,您将能够在 Polkadot 上看到Session Key的按钮:
  • 点击它,并将步骤 5 生成的rotateKeys填入。

8. 设置参加验证人选举

  • 完成了上述步骤后,你将能看到Validate的按钮。点击Validate 按钮,
  • 这时你将需要设置验证人偏好:
  • reward commission percentage栏目中,你将需要输入你作为验证人的收益偏好。然后点击右下角Validate,并发送交易。在Waiting界面,你将能看到你的账户正在等待下个Era,来参加选举成为验证人节点。

9. 领取节点奖励

在浏览器插件 polkadot 中登陆你的 stash 账户,在 质押 > 支付 > 最大84 eras 中,你将能看到所有待领取的奖励:

点击右侧的支付所有,发送交易即可。

Loading...