美文网首页
[eos26]nodeos-设置生产者/非生产者节点

[eos26]nodeos-设置生产者/非生产者节点

作者: FriendOfTime | 来源:发表于2020-04-04 13:32 被阅读0次

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的依赖。

综上,和生产节点的设置步骤相比,不需要注册,设置名字,设置签名等信息

相关文章

  • [eos26]nodeos-设置生产者/非生产者节点

    1. 概述 通常来说,nodeos以两种模式运行:生产节点(Producing Node)和非生产节点(Non-P...

  • Kafka系列 - 生产者详解

    前言 一个消息队列,必然存在着生产者和消费者,而生产者(Producer)负责向Kafka服务节点(Broker)...

  • mq如何保证消息的幂等性

    一、出现非幂等性的情况 1、生产者已把消息发送到mq,在mq给生产者返回ack的时候网络中断,故生产者未收到确定信...

  • 生产者消费者模式详解

    生产者消费者模式说明: 生产者只在仓库未满时进行生产,仓库满时生产者进程被阻塞; 消费者只在仓库非空时进行消费,仓...

  • Kafka的消息格式及offset是如何设置的

    Kafka的offset是如何设置的? 答:是生产者设置的,生产者在发送消息的时候,为每条消息生成一个唯一的off...

  • 3:RocketMQ 核心概念(渐进了解 单节点 主从节点 集群

    一个完整的RocketMQ集群中,有如下几个角色: 1:生产者 消费者 生产者组 消费者组 主题 2:单节点 3:...

  • Dubbo起步

    目录 定义接口 生产者生产者依赖生产者实现 消费者消费者依赖消费者实现 初步印象 定义接口 生产者 生产者依赖 生...

  • 「人类图」五种不同类型

    能量类型:显示者、生产者、显示生产者 非能量类型:投射者、反映者 四个动力中心:意志力、荐骨、情绪、根部 001 ...

  • k3s 安装kafka集群

    安装kafka 启动3个节点 安装测试程序 使用生产者 使用消费者

  • KAFKA生产者

    生产者生产消息过程 生产者生产(多线程) 生产者常用配置(producer.properties) acksack...

网友评论

      本文标题:[eos26]nodeos-设置生产者/非生产者节点

      本文链接:https://www.haomeiwen.com/subject/bsmxyhtx.html