
CHAINX · PCX
0. 基础
1. 下载节点运行程序
2. 启动节点前准备
删除老旧测试网节点
准备节点启动配置文件
3. 启动节点
启动同步节点
启动验证者节点
a. 节点账户公钥生成与注册
b. 生成出块公钥
c. 修改启动配置文件启动验证者出块节点
d. 如何更新出块地址
4. 出块节点正常运行后其他工作
钱包: https://wallet.chainx.org,用户可以通过钱包创建账户,注册更新节点等各种操作。
节点浏览器: https://stats.chainx.org/#/ChainX 或 https://telemetry.polkadot.io/#/ChainX,节点浏览器可以看到当前 ChainX 网络所有节点的运行信息。
区块链浏览器: https://scan.chainx.org,可以看到 ChainX 网络的各种链上信息,包括查询验证人节点的漏块信息等。
在 ChainX 中,定义如下概念:
物理运行的节点
“validator”:true/false
决定
链上定义的节点
(即在 ChainX 钱包里显示的验证节点/同步节点/退选节点,注:这里的同步节点之前叫做候选节点,只是为了方便用户投票所以更名为同步节点)
“validator”
:true
且设置了
“validator-name”
:”xxx”
对应于链上定义的节点的节点名称,若成为具备出块能力的验证着,需要保证
keystore
中的公钥为链上配置的出块公钥(详情见后文)
iii.退选节点:当参选后,奖池被惩罚为0或因为其他惩罚会将节点转变为退选节点。退选节点无收益,不参与任何 staking 活动。若想重新参与 staking,则需要进行参选。
物理运行节点与链上定义节点的联系
validator-name
进行挂钩,而是否具备正常的出块权通过链上节点参选时注册的出块公钥与启动物理节点配置中的
keystore
相关信息进行挂钩
在 https://github.com/chainx-org/ChainX/releases 下载最新版本的 ChainX 二进制chainx,目前仅支持 Ubuntu 16.04+ 或 macOS。
如果是其他系统,可采用 Docker 运行 ChainX 节点。
删除老旧测试网节点
若启动时通过-d或–base-path指定了 DB 存放目录,则将这个目录完全删除即可。
若启动时没有指定路径,则删除默认的 DB 目录:
Linux(ubuntu):
macOS:
准备节点启动配置文件
chainx –help
:
<
SUBCOMMAND
>
help 中出现的所有命令均可在配置文件中进行配置,我们目前提供了json的配置文件格式。chainx程序可选参数分为[FLAGS]和[OPTIONS]两部分, 示例如下:
FLAGS。true表示启用该FLAG, false表示不启用该 FLAG, 如:
//
等价于在命令行传入
–validator,
`./chainx–validator`
“validator”
:
true
,
OPTIONS。如:
//
等价于在命令行传入
–base-path=<ChainX
数据路径
>, `./chainx –base-path=<ChainX
数据存放路径
>`
“base-path”
:
“<ChainX
数据存放路径
>”
,
不推荐使用命令行直接传参的方式启动节点,出于节点安全考虑,请使用json配置文件的方式启动节点。配置文件编写好后将该配置文件保存某处,请做好对应的安全策略。
config.json
,并将其放置到与 chainx 二进制程序的同级目录下。
json
配置文件的方式启动节点,下载配置文件模板,可通过以下方式下载:
自v1.0.2版本起,chainx默认并没有将输出信息在终端进行打印,而是存储在chainx同级目录下的log/chainx.log, 详情可通过chainx –help查看–log*等相关选项。
“log”
:
“info,runtime=info”
,
//
日志等级配置,若不需要
runtime
的打印可以配置为
“log”:”info,runtime=warn”,
“name”
:
“<Your-Node-Name>”
,
//
在监控台
https://stats.chainx.org
中显示的名称
“port”
:
20222
,
//
节点的
p2p
端口
“ws-port”
:
8087
,
//
节点的
Websocket
端口
“rpc-port”
:
8086
,
//
节点的
RPC
端口
“rpc-external”
:
true
,
// true
代表该
RPC
端口开放给外部访问,建议只能提供服务同步节点开启,验证节点及不提供服务的同步节点建议关闭
“ws-external”
:
true
,
// true
代表该
RPC
端口开放给外部访问,建议只能提供服务同步节点开启,验证节点及不提供服务的同步节点建议关闭
“base-path”
:
“<Your-DB-Path>”
,
// chainx
数据存放路径
“other-execution”
:
“NativeElseWasm”
,
“syncing-execution”
:
“NativeElseWasm”
,
“block-construction-execution”
:
“NativeElseWasm”
,
“importing-execution”
:
“NativeElseWasm”
,
“pruning”
:
“archive”
,
//
目前强烈建议加上该配置,以存档模式启动
“db-cache”
:
1024
,
//
设置节点数据库的缓存,单位
MB
,即这里为
1GB
,可根据自己机器配置情况调整
“state-cache-size”
:
2147483648
,
//
设置节点状态树缓存,单位
B
,即这里为
2GB (2GB = 2 *1024 * 1024)
,可根据自己机器配置情况调整
“no-mdns”
:
true
,
//
关闭
libp2p
自动在
local network
的自动发现
“bootnodes”
: [
//
填写引导节点,
ChainX
已经内置了一些种子节点,一般无需填写
name: 在 telemetry 显示的节点名
base-path: 数据存放路径,注意与启动节点步骤1中的相对应
json
文件件里加上
“pruning”
:
“archive”
, //
以存档模式启动
pruning
“: “
archive
“代表使用存档模式启动节点,会保存全量的状态树,否则,默认情况下将会裁剪256个块之前的状态树。
$(pwd)
/config.json
$(pwd)
/config.json
>
error.log
2>&1&
validator
,
validator-name
等参数,再次启动节点进入验证人模式。
如果还没有账户,请先到钱包 https:://wallet.chainx.org 点击创建账户,生成节点账户,账户地址形如 5HbT8…S9yg。
在钱包投票选举页(新版钱包在资产信托页),点击注册节点,设置节点名称,比如 NodeABC,注意:该节点名为即后面启动文件要用到的 validator-name 字段。
在投票选举页的候选节点里,可以看到你的节点处于退选状态。此时需要更新并重新参选。
chainx
执行文件通过以下命令生成
keystore
,即生成出块地址公钥(session_key):
输入密码后即可断开节点
<
keystore路径
>
-i –base-path=
<
数据存放路径
> —
default-log
下行打印即为节点生成的
keystore
信息,这串公钥即为出块地址公钥(
session_key
)
for
keystore:593a11d6d5930ab2e68fa5d07082ba0102fc7740eee38b79b2793d7d34a2442a (5E5hNNEi…)
INFO [runtime|xrml_xdex_spot] [add_trading_pair]currency_pair: CurrencyPair: SDOT/PCX, point_precision: 4, tick_precision: 2,price: 100000, online: true
看到下行打印后即可使用
<Ctrl-C>
断开节点
< keystore 存放路径>
下生成一个文件名为节点出块地址公钥的文件,形如:
d41bf5ce34ec4503e633ed0d003356e111186954ce6143d0cfeb6d0a3e51e66
2
,该文件名即为出块地址公钥(sessin_key)。
keystore 助记词体系为:助记词+密码 ==> 私钥
在线钱包中的助记词体系为:助记词 ==> 私钥
注意要保存好以下信息,启动节点时需要用到这些信息:
keystore-path
base-path
输入的 password
(可选)将该节点出块地址公钥(session_key)粘贴到浏览器 https://scan.chainx.org 搜索框获得该公钥对应的地址,该地址将用于更新出块地址。
“validator”
:
true
,
//
验证者节点必须为
true
“rpc-external”
:
false
,
//
验证者节点建议关闭对外的
rpc
端口
“ws-external”
:
false
,
//
验证者节点建议关闭对外的
ws
端口
“log”
:
“info,runtime=info”
,
“port”
:
20222
,
“ws-port”
:
8087
,
“rpc-port”
:
8086
,
“other-execution”
:
“NativeElseWasm”
,
“syncing-execution”
:
“NativeElseWasm”
,
“block-construction-execution”
:
“NativeElseWasm”
,
“pruning”
:
“archive”
,
//
目前强烈建议加上该配置,以存档模式启动
“db-cache”
:
1024
,
//
设置节点数据库的缓存,单位
MB
,即这里为
1GB
“state-cache-size”
:
2147483648
,
//
设置节点状态树缓存,单位
B
,即这里为
2GB (2GB = 2 *1024 * 1024)
“no-mdns”
:
true
,
“bootnodes”
: [],
“name”
:
“Your-Node-Name”
,
//
在节点浏览器中显示的节点名
“validator-name”
:
“Your-Validator-Name”
,
//
注册节点时使用的名称
“base-path”
:
“<
步骤
2
中指定的数据存放路径
>”
,
“keystore-path”
:
“<
步骤
2
中指定的
keystore
路径
>”
,
“keystore-password”
:
“<
步骤
2
中生成的
keystore
时使用的密码
>”
name: 在 telemetry 显示的节点名
validator-name: 注册节点时使用的名称,请注意一定要与“验证者公钥生成与注册”步骤中注册的节点名字相同
base-path: 数据存放路径,注意与启动节点步骤1中的相对应
keystore-path: 启动节点步骤1中指定的 keystore 路径
keystore-password: 启动节点步骤1中输入的 password
validator: 如果设置为 true, 则启动验证节点,否则为同步节点。
$(pwd)
/config.json
$(pwd)
/config.json
>
error.log
2>&1&
<
该公钥为
keystore
的公钥,也就是出块地址公钥(
session_key
)
>
<
该公钥为
keystore
的公钥,也就是出块地址公钥(
session_key
)
>
确认出块节点成功运行后,如果节点处于退选状态,则需要在投票选举页点击更新节点,使节点进入参选状态:
出块地址
网址
简介
选择“参选”
Prepared block for proposing at 6467
之类的,就代表在出块了。
,罚金从节点奖池扣除。如果奖池被惩罚至0,则会自动强制退选,节点需检查部署情况后,再次更新节点至参选状态,等待下一轮换届。
作者:PolkaX,来源:ChainX社区
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。