成为验证者
本指南将帮助您了解如何成为 MUD 链的验证者,包括技术要求和节点设置步骤。
技术要求
在开始运行节点之前,请确保您满足以下技术要求。
节点规格
以下是 MUD 节点的推荐配置。
| 节点类型 | CPU | 内存 | 数据磁盘 |
|---|---|---|---|
| 验证者 | 8 核 CPU | 32 GB 内存 | 512 GB 数据磁盘 |
| 全节点 | 8 核 CPU | 32 GB 内存 | 512 GB 数据磁盘 |
| 归档节点 | 8 核 CPU | 64 GB 内存 | 2 TB 数据磁盘 |
建议在支持高 IOPS(12K 或更高)的 NVMe SSD 机器上运行验证者,以避免落后并被验证者监禁。如果您使用 AWS 的 EC2 实例,建议使用 t2.2xlarge 实例类型(每月费用约 300$ ~ 400$)
网络要求
公共端口
MUD 节点通过以下端口进行通信。确保这些端口对公共互联网开放。
| 节点类型 | 端口 | 协议 |
|---|---|---|
| 全节点和验证者 | 26656 | TCP |
RPC/API
如果您想在节点上访问 RPC/API 服务,需要确保以下端口开放。
| RPC 类型 | 端口 | 协议 |
|---|---|---|
| Tendermint | 26657 | TCP |
| EVM RPC - HTTP | 8545 | TCP |
| EVM RPC - WSS | 8546 | TCP |
| Cosmos RPC | 1317 | TCP |
操作系统
MUD 节点已在 x86_64 架构上开发和测试。我们的二进制文件已在 Ubuntu 22.04 LTS x86_64 上编译。本指南假设您使用的是 Ubuntu 22.04 LTS x86_64。如果您使用不同的操作系统,可能需要自行编译相关二进制文件。代码链接:https://github.com/mud-chain/mud
设置节点
在本指南中,我们将设置 MUD 主网节点。
安装 MUD 节点二进制文件
首先,下载二进制文件并给予可执行权限。
sudo wget https://res.mud.network/mudd-1.0.0-linux-amd64 -O /usr/local/bin/mudd && sudo chmod a+x /usr/local/bin/mudd
检查您是否安装了正确版本的 mudd
mudd version
如果显示 12.1.6-86-gfdf51cee 则表示安装成功。
下载配置文件以及创世块
假设你用root账号登录
首先先初始化链相关数据,然后下载配置文件以及创世文件
mkdir -p /root/chain-data && \
mudd init NODE_NAME --home /root/chain-data --chain-id mud_168169-1 && \
wget https://res.mud.network/genesis.json -O /root/chain-data/config/genesis.json && \
wget https://res.mud.network/client.toml -O /root/chain-data/config/client.toml && \
wget https://res.mud.network/config.toml -O /root/chain-data/config/config.toml && \
wget https://res.mud.network/app.toml -O /root/chain-data/config/app.toml
然后修改配置文件/root/chain-data/config/config.toml,修改文件的大约第18行,将NODE_NAME替换为你的节点名称。节点名称只能用字母和数字组成,不能使用中文。
或者你也可以使用sed命令进行修改,记得将命令中的YOUR_NODE_NAME替换为你的节点名称。
sed -i 's/moniker = "NODE_NAME"/moniker = "YOUR_NODE_NAME"/g' /root/chain-data/config/config.toml
启动节点
我们可以使用nohup命令启动节点,也可以使用systemd服务启动节点。下面两种方法任选一种即可。
方法一:使用nohup启动节点
nohup mudd start --home /root/chain-data --log_level warn > /root/chain-data/mudd.log 2>&1 &
方法二:配置 mudd systemd 服务
创建文件 vim /etc/systemd/system/mudd.service,并粘贴以下内容。
[Unit]
Description=mud node
After=network.target
[Service]
User=root
Environment="HOME=/root"
ExecStart=mudd start --home /root/chain-data --log_level warn
WorkingDirectory=/root/chain-data
StandardOutput=file:/root/chain-data/mudd.log
StandardError=file:/root/chain-data/mudd.log
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
依次运行如下命令启动服务:
- 运行
systemctl daemon-reload加载服务 - 运行
systemctl enable mudd开机自动启动服务 - 运行
systemctl start mudd启动服务
其他命令:
- 运行
systemctl status mudd查看服务状态 - 运行
systemctl stop mudd停止服务 - 运行
systemctl restart mudd重启服务 - 运行
systemctl reload mudd重新加载服务 - 运行
systemctl disable mudd禁用服务
验证节点是否启动成功
使用上面的方法启动节点后,等待大约30s左右,可以使用以下命令验证节点是否启动成功。
curl http://localhost:26657/status | jq
如果返回的数据如下,则表示节点启动成功。
{
"jsonrpc": "2.0",
"id": -1,
"result": {
"node_info": {
"protocol_version": {
"p2p": "8",
"block": "11",
"app": "0"
},
"id": "c94d8a7ea1f417e592e4c2e5a289cd4b139724bb",
"listen_addr": "tcp://0.0.0.0:26656",
"network": "mud_168169-1",
"version": "0.34.29",
"channels": "40202122233038606100",
"moniker": "join node",
"other": {
"tx_index": "on",
"rpc_address": "tcp://127.0.0.1:26657"
}
},
"sync_info": {
"latest_block_hash": "6976B9F2248EC04ACC69A9DB7DA6A1A55AC2E5B144AFC2C5D97CC38DC9ED35B4",
"latest_app_hash": "BC09C2893A8E4723B7FDC4B1431BABA980FEAB02119EF73ACA3D63846558994F",
"latest_block_height": "8226",
"latest_block_time": "2025-02-23T11:57:31.565427093Z",
"earliest_block_hash": "4F1F3A12AD3F4272352CF382C0126CA763590C98A5F462494B6424F4B3096CDC",
"earliest_app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"earliest_block_height": "1",
"earliest_block_time": "2025-02-23T08:12:44.789691634Z",
"catching_up": true
},
"validator_info": {
"address": "D56623060F708B9C996A9ACACF340F0D1F62C526",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "RmpAEvvUwRuBzlxewhOzd+vdsl+MIMj+xmvMFw947y4="
},
"voting_power": "0"
}
}
}
如果看到 latest_block_height 一直增加,则表示节点启动成功,且正在同步区块。
创建验证者账户
准备工作
大概需要经过2天左右,节点能够将区块同步到最新状态。检查方法是使用curl http://localhost:26657/status | jq命令,如果看到 latest_block_height 如果已经跟最新区块高度一致,则表示节点已经同步到最新状态。或者 catching_up 已经为 false,也表示节点已经同步到最新状态。只有当节点同步到最新状态后,才能创建验证者账户。然后将需要创建验证人的私钥导入到Realm钱包。后续领取佣金奖励,对提案投票以及修改验证人信息都是通过该私钥发起交易。注意导入的钱包至少需要有超过10MUD的资产用于初始质押。
详细步骤
- 在Realm钱包中浏览器功能下面点击 MUD Portal 进入DAPP,点击左边的菜单栏,进入验证人列表页面。
- 点击创建验证人,在弹出对话框中填入对应的信息,输入框中有必填提示的,则该输入不能为空。确认信息无误之后,点击创建按钮完成验证人的创建。相关信息说明如下:
- 验证人名称:你的验证人名称,将展示在列表中。通过名字,别人能够方便地找到验证人进行委托。(必填)
- 身份标识:类似于身份证,可用于标识验证人身份。(可选)
- 网站:一般为宣传网站,用于吸引用户质押。(可选)
- 联系方式:一般填写邮箱或其他联系方式,便于联系。(可选)
- 最大佣金:默认为20%。你能对用户奖励抽取的最大佣金比例。建议使用默认值不修改。(必填)
- 初始佣金率:默认为10%。验证人创建后,对用户奖励抽取的佣金比例。建议使用默认值不修改。(必填)
- 佣金变更率:默认为10%。初始佣金率每次最大可变更的比例。建议使用默认值不修改。(必填)
- 质押金额:创建验证人时,自己质押的MUD数量。系统会自动扣除对应数量。为防止信息填错导致锁定MUD 21天,请先质押少量MUD(如10MUD,必须≥1MUD,建议10MUD)。如需质押更多,可在创建成功后通过委托操作追加。(必填)
- 共识公钥:使用
curl http://localhost:26657/status | jq命令中获取的validator_info.pub_key.value的值。请务必一字不漏地完整复制。例如:RmpAEvvUwRuBzlxewhOzd+vdsl+MIMj+xmvMFw947y4=(必填) - 详情:可填写验证节点的相关信息,如“我们是Web 3.0领域值得信赖的验证节点参与者和投资者,专注于安全的权益质押”。(可选)
下面是一个符合要求的输入示例(为了方便演示,截图用的是电脑版的,跟手机版稍微有些出入):
如果创建成功之后,刷新验证人列表,可以看到你创建的验证人。
领取佣金
奖励每天下午3点半左右发放一次。在验证人的列表里面点击你的验证人名字即可进入验证人详情页面。在详情页面的最后你可以领取你自己质押的奖励以及佣金奖励。
