1. 概述
通常来说,nodeos以两种模式运行:生产节点(Producing Node)和非生产节点(Non-Producing Node)。
生产节点可以生产新的区块。它们与p2p网络连接,积极生产新的区块。验证并转发交易。在主网上,生产节点如果处于生产节点的时间段,它仅仅产生新的区块。
非生产节点也和p2p网络连接,但不生产区块。它们用于代理节点,转发api调用,验证交易,广播其他信息给对等节点。
非生产节点也用于监控区块链状态。
2. 生产节点设置
本文所述的内容假定你想在一个已经加载了系统合约的网络中启动一个生产者节点。本文不关注使用原生功能,或者没有加载系统合约的默认开发节点。
2.1 目标
本章节描述如何在eosio网络中配置一个生产者节点。
这个功能需要通过producer_plugin和其他nodeos plugin。
2.2 准备工作
安装eosio软件
确保nodeos,cleos,keosd是可用的
知道如何传配置选项来开启或者禁用某个功能
2.3 步骤
按照以下步骤设置一个生产者节点:
将你的账号注册为一个生产者
设置生产者名字
设置生产者的签名提供者(sginature-provider)
定义对端节点列表
导入需要的插件
2.3.1 将你的账号注册为一个生产者
为了使你的账号具备一个合格的生产者,你需要将账号注册为一个生产者,这样其他节点才知道你想成为一个生产者啊:
cleos system regproducer accountname1 EOS1234534... http://producer.sit Antarctica
来个详细解释:
cleos system 是将eosio.system合约的操作发送至区块链,也就是执行该操作。例如cleos system regproducer就是执行eosio.system合约的regproducer操作。eosio.system.hpp中相关代码如下:
[[eosio::action]]
void regproducer( const name& producer, const public_key& producer_key, const std::string& url, uint16_t location );
从上面的操作生命,就可以知道上面命令的各个参数的含义。
其实这些只要执行cleos system就会有相应提示。
2.3.2 设置生产者的名字
在config.ini文件中设置生产者的名字,如下:
# config.ini:
# ID of producer controlled by this node (e.g. inita; may specify multiple times) (eosio::producer_plugin)
producer-name = youraccount
2.3.3 设置生产者的签名提供程序
需要为生产者设置私钥。公钥应该具有上面定义的生产者帐户的权限。
签名提供程序由三个字段定义:
1、公钥:有效的eosio公钥,字符串
2、提供程序:字符串,以下两种形式:
3、提供程序类型:KEY 或者 KEOSD
使用KEY:
# config.ini:
signature-provider = PUBLIC_SIGNING_KEY=KEY:PRIVATE_SIGNING_KEY
//Example
//signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
使用KEOSD:
# config.ini:
signature-provider = KEOSD:<data>
//Example
//EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEOSD:https://127.0.0.1:88888
2.3.4 定义对端节点列表
# config.ini:
# Default p2p port is 9876
p2p-peer-address = 123.255.78.9:9876
2.3.5 导入必须的插件
# config.ini:
plugin = eosio::chain_plugin
plugin = eosio::producer_plugin
总体来说,就是先注册,告诉其他节点你想成为生产者;然后设置账户信息,告诉别人你是谁,如名字,公钥等;最后进行必要的设置。
3 非生产节点设置
3.1 目标
本章节描述如何设置一个非生产节点。顾名思义,非生产节点是指不生产区块的节点,它和其他节点连接和同步信息,除了producer_plugin,可以enable其他插件。
3.2 准备工作
安装eosio软件
确保nodeos,cleos,keosd是可用的
知道如何传配置选项来开启或者禁用某个功能
3.3 步骤
配置非生产者节点是简单的。
设置对等节点
enable一个或者多个可用插件
3.3.1 设置对等节点
既可以通过ini配置:
# config.ini:
p2p-peer-address = 106.10.42.238:9876
也可以通过命令行方式:
nodeos ... --p2p-peer-address=106.10.42.238:9876
3.3.2 enable一个或者多个可用插件
当nodeos启动时,它会通过enable的插件暴露功能。
例如,将state_history_plugin插件enable,该非生产节点就会提供完整的区块链历史。
将http_plugin使能,该非生产节点会暴露eosio rpc api能力。
因此,可以enable各种插件来扩展基本功能。
另外,某些plugin可能会依赖其他一些plugins。因此,为了enable某个plugin,你需要满足所有该plugin的依赖。
综上,和生产节点的设置步骤相比,不需要注册,设置名字,设置签名等信息
网友评论