验证者节点配置

注意: YOUChain升级到协议YouV5版本后,议长/参议节点将实现无准入;众议节点保持原有方式不变。

本文只涉及议长/参议节点的配置说明,众议节点相关信息参见:众议节点安装运行说明

一 软硬件要求

议长/参议节点是YOUChain的核心参与者,要求能持续稳定运行,软硬件基本要求如下:

  • 系统平台建议采用Linux的服务器发行版(CENTOS 7+,Ubuntu server 16.04 等);
  • 固定IP地址;
  • 推荐硬件配置:CPU 8 核,内存 16G,带宽 20M, SSD 磁盘 500G
  • 最低硬件配置:CPU 4 核,内存 8G,带宽 10M, SSD 磁盘 500G

二 验证者账号及链上信息管理

要参与YOUChain共识,需要使用一套验证者账号。一个基本的流程为:

  1. 在节点本地创建验证者账号;
  2. 在节点本地做好配置,以便随时参与共识;
  3. 发送交易在链上注册验证者账号;完成抵押、变更状态为在线 等管理;
  4. 节点程序发现所使用的验证者账号为在线状态时,即可参与共识并获得区块奖励。
  5. 保持节点运行状态、验证者状态的监控及管理。

1. 验证者账号(共识密钥)管理

在节点程序本地,可通过交互式终端或RPC接口进行管理,相关的一组接口为:personal_###ValKey(如 personal_newValKey)

  • 通过personal_newValKey可创建一个验证者账号,接口返回的三个值在链上注册验证者账号时需要用到,请记录并保存起来
  • 可通过personal_exportValKey导出验证者账号(私钥)以供备份,对应的导入接口为personal_importValKey;或者也可以直接备份数据目录下 keystore子目录中的账号文件。

2. 验证者节点的启动参数配置

作为验证者节点,需要提供如下启动参数:

    --mine                    # 启动挖矿。
    --valaddr "mainAddress"   # 验证者账号地址
    --pwd "password"          # 验证者账号密码

若未提供上述启动参数,也可以在节点运行之后,通过交互接口来操作。即:

3. 链上验证者信息的注册与管理

链上验证者信息的注册与管理,都通过发送staking模块交易来完成。

该类型交易的特点:

  1. to地址固定为 0x00000056616C696461746f72734D616E61676572
  2. 业务信息通过交易的data字段提供,该数据可通过staking API的一组相关接口来完成组装:you_###Validator (如 you_createValidator)及 委托相关的 you_getDelegation###Data ;
  3. 对于验证者相关的交易,交易的from地址,必须是要管理的验证者的operatorAddress地址,只有该地址有权限管理该验证者;
  4. 交易所需的gas数量,“注册新节点”时需要约 101万gas,其他交易需要约 11万gas;
  5. 交易上链状态为成功(即0x1)时,只是表明交易暂存成功。staking模块的交易,将周期性生效(目前是在 n*128 - 1 区块时集中处理)。在一些特殊情况下,交易即使已在链上暂存成功,在生效时也不一定成功。(比如:一个用户将一定量的YOU委托给某个验证者,在委托交易生效前,该验证者被惩罚了,那么这笔委托交易将不会生效)。

配合YOUChain的去准入升级,YOUChain区块浏览器以DApp的形式提供了验证者信息管理及委托管理的相关功能,这些功能使用YOUWallet插件钱包完成交易签名及广播

验证者页面,提供了注册新节点功能,可以往链上注册一个新的验证者。

在某个验证者的详细信息页面,有更新节点信息的一组功能,包括变更信息、增加/减少抵押、变更在线状态等,以及普通用户对该验证者增加/减少委托金额等功能。

三 挖矿、运行监控

在做好上述配置,并且节点已同步到最新区块、验证者已在线的情况下,验证者即可正常参与共识。

之后,还需要做好相关运维监控工作。

需要特别注意:YOUChain的链上治理机制中,包含相关的惩罚功能(详情参见版本升级相关文档),如果因节点运维不当等原因,导致验证者较长时间未能成功提议区块,则其将被认定为怠工,从而会被处以怠工惩罚。