# 常见问题
# 如何成为 Plug Chain Hub 验证人
参考 加入主网
同时也推荐您运行主网验证人之前,在测试网上面测试验证人相关操作。
提示
想要获取更多的委托,您可以:
- 进行安全审计,并公开审计结果
- 开源一些 Plug Chain Hub 相关的开发工具和工作流程
- 建立自己的网站,以建立良好的品牌形象
# 最低硬件要求是什么
最低硬件要求请参考:硬件要求
# 验证人节点的状态有哪些
通过create-validator
交易创建验证人后,它们可能会处于以下三种状态:
bonded
:验证人在活跃验证人集合中,可参与共识并获得奖励,若行为不当会导致抵押的部分通证被罚没。unbonding
:- 验证人节点行为异常且已被监禁(Jail),即被移出活跃验证人集合。监禁时长是确定的,超过监禁时长后,验证人可以发送
unjail
交易以解除监禁。 - 验证人抵押的plug数量(包括受委托)脱离了前100名,因此而成为候选人。可以通过抵押或委托更多的plug使自己进入前100名,他将即时重新获得验证人身份。
- 验证人节点行为异常且已被监禁(Jail),即被移出活跃验证人集合。监禁时长是确定的,超过监禁时长后,验证人可以发送
unbonded
:验证人不在活跃验证人集合中,因此不能参与共识。此类验证人不会受到惩罚,也不会获得任何奖励。但仍然可以接受委托。
# Plug Chain Hub 有哪些不同类型的密钥
简而言之,有两种类型的密钥:
# Tendermint 密钥
这是用于共识投票签名的唯一密钥。
由
plugchaind init
创建节点时生成查询bech32前缀为
gxvalconspub
的共识公钥plugchaind tendermint show-validator
查询bech32前缀为
gxvalcons
的节点地址plugchaind tendermint show-address
查询对应的节点Hex地址
plugchaind status 2>&1 | jq -r .ValidatorInfo.Address
它也存储在config/priv_validator.json
中。
# 应用程序密钥
该密钥可以通过plugchaind
创建,用于签名交易。应用程序密钥与以gxpub
为前缀的公钥和以gx
为前缀的地址相关联。两者都是由plugchaind keys add
生成的帐户密钥派生出来的。
注意:验证人操作员的密钥直接与应用程序密钥绑定,地址和公钥分别使用保留的前缀:gxvaloper
和gxvaloperpub
。
# 如何备份验证人节点
安全备份验证人节点私钥非常重要,这是恢复验证人节点的唯一方法。请注意,这里指的是Tendermint密钥。
如果您使用的是软件签名(tendermint的默认签名方法),则您的Tendermint密钥位于<plugchaind-home>/config/priv_validator.json
中。最简单的方法是备份整个config文件夹。
或者,您可以使用硬件更安全地管理Tendermint密钥,例如YubiHSM2 (opens new window)。
# 如何迁移/恢复验证人节点
迁移验证人的方法有很多,最推荐的方法是:
1.在新服务器上运行运行全节点
2.追赶上最新区块之后,停止验证人节点和全节点
3.将全节点的 config
文件夹替换为验证人的
4.启动新的验证人节点
# 什么是"自抵押"?我如何增加"自抵押"
自抵押就是给自己验证人节点的委托。可以通过从用于创建验证人的操作员帐户发送"委托"交易来增加此金额。
# 想要成为活跃的验证人最少要抵押多少plug
最低抵押 1pc
,链上为 1*10^6 uplugcn
即可创建验证人,但能否成为活跃的验证人取决于您的抵押(包括受委托)数量是否超过第100名验证人。
# 验证人可以卷走委托人的资金吗
通过委托plug给一个验证人节点,用户同时委托了对应的投票权。验证人的投票权越高,他们在共识和治理流程中的权重就越大。但这并不意味着验证人可以托管其委托人的资金。 验证人绝不可能动用其委托人的资金。
即使验证人无法窃取委托资金,但如果验证人行为不当,委托人仍会被动承担责任和惩罚。
# 多久选择一次验证人来提议下一个区块?它是否与抵押的plug数量有关
被选择来提议下一个区块的验证人称为提议者。验证人被选为提议者的概率是确定的,与验证人的投票权(即绑定的plug数量)成正比。例如,如果所有验证人的投票权总额为 100 pc,而其中一个验证人的投票权为10,则此验证人将提议出约10%的区块。
# 激励计划是什么
请参考Staking 收益
# 运行验证人节点有哪些收益
除了自抵押收益,验证人还可以从受委托的收益中赚取佣金。
验证人在治理中也起着重要作用。如果委托人未投票,则他们将从其验证人那里继承投票。这使验证人在生态系统中负有主要责任。
# 什么是验证人佣金
验证人收益池中的收益会在验证人及其委托人之间分配,验证人可以对委托人获取的收益收取一定比例的佣金。每个验证人可以自由设置其初始佣金,每日修改佣金幅度上限和佣金比例上限。Plug Chain Hub强制每个验证人设置该参数,创建验证人后,只有佣金比例和别称可以更改。
# 如何查询我的验证人地址
验证人地址有2种:
- 验证人操作员地址,即用来创建验证人节点的应用程序密钥
查询验证人的操作员地址(gxvaloper...)和pubkey(gxvaloperpub...):
plugchaind keys show MyKey --bech=val
- 验证人节点地址,即Tendermint密钥
查询关联的地址(gxvalcons...)和共识pubkey(gxvalconspub...),请参考Tendermint密钥
# 常见错误
# 验证者四种状态
状态(status) | 状态码 | 描述 | 状况 |
---|---|---|---|
BOND_STATUS_UNSPECIFIED | 0 | 定义了无效的验证器状态 | 无效 |
BOND_STATUS_UNBONDED | 1 | 定义了一个未绑定的验证器 | 离线 |
BOND_STATUS_UNBONDING | 2 | 定义了一个解除绑定的验证器 | 监禁 |
BOND_STATUS_BONDED | 3 | 定义了一个绑定的验证器 | 正常 |
# 验证者信息类似如下:
commission:
commission_rates:
max_change_rate: "0.010000000000000000"
max_rate: "0.200000000000000000"
rate: "0.100000000000000000"
update_time: "2021-07-27T13:19:37.983601182Z"
consensus_pubkey:
'@type': /cosmos.crypto.ed25519.PubKey
key: 5TTh7vhc3RvibPttF29r2iC6qSNfGbJdY9sVsQHBT8w=
delegator_shares: "8813835048395.526196202816719238"
description:
details: ""
identity: ""
moniker: My Validator
security_contact: ""
website: ""
jailed: true
min_self_delegation: "1000000"
operator_address: gxvaloper19quyxaq87dpsxt9w2q23c4d8x3fck4fzh4u8es
status: BOND_STATUS_UNBONDING
tokens: "8466534803455"
unbonding_height: "831092"
unbonding_time: "2021-09-02T18:02:44.032627007Z"
# 验证人的投票权为0
可能是您的验证人被监禁或由于抵押(包括受委托)的plug数量排到了前100名以外。
如果您的验证人被监禁,可以按以下步骤操作来恢复:
如果
plugchaind
没有运行,请重新启动:plugchaind start --minimum-gas-prices 0.0001uplugcn
等待节点赶上最新的区块,检查验证人会被监禁到什么时间(了解监禁时长):
# 查询验证人节点共识公钥 plugchaind tendermint show-validator --home=<plugchaind-home> # 使用共识公钥查询节点状态 plugchaind query slashing signing-info [validator-conspub]
您将可以看到
Jailed Until
的时间,只有在该时间之后,您才可以执行接下来的步骤。如果当前时间已经超过了
Jailed Until
,即可执行解禁操作:plugchaind tx slashing unjail --from mykey --fees 20uplugcn --chain-id plugchain_520-1
再次检查您的验证人,看看您的投票权是否恢复。
plugchaind status
您可能会注意到您的投票权比以前低,那是因为你被惩罚了(了解罚款金额)。
# plugchaind
异常退出:too many open files
Linux可以打开(每个进程)的默认文件数是 1024
,而 plugchaind
进程会打开超过1024个文件,进而导致进程崩溃。一个快速的解决方法是执行 ulimit -n 4096
(增加允许的打开文件数量,仅对当前会话有效),然后使用 plugchaind start
重新启动。如果您使用的是systemd或其他进程管理器来启动 plugchaind
,则最好在该级别进行一些配置。
示例
systemd
配置:# /etc/systemd/system/plugchaind.service [Unit] Description=Plug Chain Hub Node After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu ExecStart=/home/ubuntu/go/bin/plugchaind start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target
在Ubuntu系统中修改全局ulimit示例:
# Edit limits.conf vim /etc/security/limits.conf # Append the following lines at the bottom * hard nofile 65535 * soft nofile 65535 root hard nofile 65535 root soft nofile 65535 # Reboot the system reboot # Re-login & Check whether ulimit is updated to 65535 ulimit -n
# 最好的情况是,自己已经备份了Tendermint 密钥
那么您可以执行以下操作:
- 停止节点
- 用您的备份替换当前的
<plugchaind-home>/config/priv_validator.json
- 通过
plugchaind tendermint show-validator --home=<plugchaind-home>
确认Consensus Pubkey
是正确的 - 启动节点
- 完成同步后,检查
voting_power
现在应该大于0:plugchaind status
# 如果我丢失了Tendermint密钥怎么办
这意味着您 **永远失去了您的验证人!**您只能创建一个新的验证人,并将所有通证转委托给新的验证人。