本文档概述了部署您自己的验证者节点的步骤。
硬件要求
- Memory: 64 GB
- CPU: 8 cores
- Disk: 1 TB NVME SSD
- Bandwidth: 100 MBps for Download / Upload
服务器时区配置
确保您的服务器时区配置为 UTC。通过运行timedatectl
注意:使用不同的时区配置可能会导致不匹配错误并关闭您的节点!LastResultHash
通过 CLI 安装 0gchaind
如果您在没有快照的情况下从头开始运行节点,
git clone -b v0.2.3 https://github.com/0glabs/0g-chain.git
./0g-chain/networks/testnet/install.sh
source ~/.profile
如果您从最新的快照开始,则可以使用最新的二进制文件
git clone -b v0.3.2 https://github.com/0glabs/0g-chain.git
./0g-chain/networks/testnet/install.sh
source ~/.profile
设置链 ID
0gchaind config chain-id zgtendermint_16600-2
初始化节点
我们需要初始化节点以创建所有必要的验证器和节点配置文件:
0gchaind init <your_validator_name> --chain-id zgtendermint_16600-2
注意:验证器名称只能包含 ASCII 字符。
默认情况下,该命令在 (i.e.) 下创建 config 和 data 文件夹。在 config 目录中,最重要的配置文件是 和 。init
~/.0gchain
$HOME
app.toml
config.toml
注意:您可以指定覆盖默认工作目录。--home
创世纪与种子
复制 Genesis 文件
检查文件并将其复制到 config 目录 。这是一个带有 chain-id 和 genesis 账户余额的创世文件。genesis.json
$HOME/.0gchain/config/genesis.json
sudo apt install -y unzip wget
rm ~/.0gchain/config/genesis.json
wget -P ~/.0gchain/config https://github.com/0glabs/0g-chain/releases/download/v0.2.3/genesis.json
然后验证 genesis 配置文件的正确性:
0gchaind validate-genesis
添加种子节点
您的节点需要知道如何查找 Peer 节点。您需要将运行状况良好的种子节点添加到 。$HOME/.0gchain/config/config.toml
文件格式如下:config.toml
#######################################################
### P2P Configuration Options ###
#######################################################
[p2p]
# ...
# Comma separated list of seed nodes to connect to
seeds = "<node-id>@<ip>:<p2p port>"
我们在下面提供了四个种子节点。
476b715143007b1b9a2c3d7624e5a358d8365f70@8.149.239.101:26656,f620bc5ebe3903d3b655537e04a732125a034aa9@8.149.238.32:26656,fa7663339978094598556dc2cb89a9d976ec9c09@54.193.225.9:26656,21310b5428ac913e4d2d2ba68ad4a6c10e47d393@13.56.181.14:26656
添加持久对等体
您可以设置 in 字段以指定您的节点将与之保持持久连接的对等节点。persistent_peers
$HOME/.0gchain/config/config.toml
启动测试网
启动节点并同步到最新的区块高度。请注意,首次启动同步时,可能需要更长的时间才能运行。
垃圾回收优化
为了最大限度地提高运行修剪节点的验证者和其他网络提供商的同步速度,建议使用以下设置:
-
使用环境变量和值启动 0gchaind 进程;这指示 Golang 垃圾回收器等待堆增长到其初始分配大小的 9 倍,然后再运行垃圾回收GOGC=900
-
启动 0gchaind 进程,并将环境变量设置为 0gchaind 进程可用总内存的 66%(例如 对于具有 64 GB 内存的节点),以确保在使用总内存的 66% 时运行垃圾回收GOMEMLIMIT
GOMEMLIMIT=40GB
在运行以下步骤之前,请确保您已将节点同步到最新的数据块高度。
创建 Validator
您可以创建新账户或从现有密钥导入。要创建新帐户:
0gchaind keys add <key_name> --eth
在这里,如果您想获取以 开头的公有地址,您可以先运行以下命令来获取密钥的私有密钥。0x
0gchaind keys unsafe-export-eth-key <key_name>
然后将返回的私钥导入到钱包(例如 Metamask)中,获取公网地址。
下一步,在提交验证者账户地址之前,您必须通过钱包转账或在水龙头上请求来获取一些测试网代币。
0gchaind tx staking create-validator \
--amount=<staking_amount>ua0gi \
--pubkey=$(0gchaind tendermint show-validator) \
--moniker="<your_validator_name>" \
--chain-id=zgtendermint_16600-2 \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--from=<key_name> \
--gas=auto \
--gas-adjustment=1.4
检查它是否在 validator 集中:
0gchaind q staking validators -o json --limit=1000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '.tokens + " - " + .description.moniker' | sort -gr | nl
只有前 125 名质押验证者才会被选为活跃验证者。
如果您的验证者被关进监狱,请使用此命令将其解狱
0gchaind tx slashing unjail --from <key_name> --gas=500000 --gas-prices=99999neuron -y
升级您的节点
这些说明适用于已在先前版本上运行并希望升级到最新测试网版本的全节点。
重置数据
注意:如果要升级到的版本没有与前一个版本中断,则不应重置数据。如果是这种情况,您可以跳到 Restart 步骤。
首先,删除过时的文件并重置数据。
rm $HOME/.0gchain/config/addrbook.json $HOME/.0gchain/config/genesis.json
0gchaind tendermint unsafe-reset-all --home $HOME/.0gchain
您的节点现在处于原始状态,同时保留原始 和 .如果您之前设置了任何 sentry 节点或完整节点,您的节点仍将尝试连接到它们,但如果它们没有升级,则可能会失败。priv_validator.json
config.toml
重新启动
迁移您的节点
重要文件
如果您要将节点迁移到其他服务器,首先您需要在新服务器上恢复您的钱包账户。如果您已存储钱包助记词,您可以通过执行
0gchaind keys add <your_account_name> --eth --recover
并粘贴助记词以恢复帐户。
但是,如果您万一没有存储助记词,则需要确保将以下文件存储并移动到新服务器中的 .$HOME
另一个要存储的重要文件是 .此文件在 init 步骤中生成,是 onchian 签名的关键文件。$HOME/config/priv_validator_key.json
步
按照上述相同的设置过程开始将您的节点同步到最新的区块高度
重要: 如果您使用的是同一台计算机,请删除$HOME/config/addrbook.json
重要: 确保 genesis.json 已更新
重要说明: 确保种子已更新
警告: 在完成同步块之前,请勿迁移文件。这是为了避免双重签名。
警告:在完成同步块之前,请勿停止旧服务器。这是为了避免因长时间停机而入狱。
完成同步块后。
-
-
将 重要文件 中提到的文件复制并粘贴到新服务器上。$HOME
-
-