树莓派做的网站,大学网站建设排名,机加工外贸网站,wordpress 支付宝赞助文章总览#xff1a;YuanDaiMa2048博客文章总览 EOS多节点部署 #xff08;一#xff09;环境设计#xff08;二#xff09;节点配置#xff08;三#xff09;区块信息同步#xff08;四#xff09;启动节点并验证同步EOS单节点的环境如何配置 #xff08;一#xf…文章总览YuanDaiMa2048博客文章总览 EOS多节点部署 一环境设计二节点配置三区块信息同步四启动节点并验证同步EOS单节点的环境如何配置 一环境设计
在搭建EOS区块链网络时设置了包括一个主节点eosiomain和三个生产节点producer1、producer2、producer3。主节点的IP地址为192.168.239.155而生产节点的IP地址分别为192.168.239.156、192.168.239.157和192.168.239.158。我们使用的虚拟机版本是Ubuntu20.04每个虚拟机上的EOS开发环境版本为2.1CDT版本是1.7。
主节点eosiomain192.168.239.155生产节点 producer1:192.168.239.156生产节点 producer2:192.168.239.157生产节点 producer3:192.168.239.158虚拟机版本Ubuntu20.04
二节点配置
在搭建EOS网络的过程中首先需要在每个虚拟机上配置EOS环境。这包括创建钱包、生成密钥对、导入私钥以及启动keosd和nodeos服务。通过这些步骤确保每个节点都具备了必要的工具和环境以便顺利地参与到EOS网络中。
随后在已经配置了EOS环境的四台机子上开始设置节点。首先设置了主节点eosiomain确保其配置文件config.ini中正确设置了节点名称和网络参数并添加了其他生产节点和主节点的对等地址以建立网络连接。
eosiomain主节点配置文件
# 主节点eosiomain配置文件 config.ini
# Network configurations
p2p-listen-endpoint 0.0.0.0:9876
http-server-address 0.0.0.0:8888
# 添加其他生产节点和主节点的对等地址
# 主节点 producer1 的地址
p2p-peer-address 192.168.239.156:9876
# 生产节点 producer2 的地址
p2p-peer-address 192.168.239.157:9876
# 生产节点 producer3 的地址
p2p-peer-address 192.168.239.158:9876 接着分别设置了三个生产节点producer1、producer2和producer3。在每个生产节点的配置文件中我们设置了节点名称、签名密钥等信息并添加了其他节点的对等地址以确保节点之间能够互相通信和同步。这里以producer1的配置文件为例展示其他两个节点类似需要修改生产者名称以及密钥还有连接的节点IP地址。
其他节点配置文件
# 生产节点 producer1 配置文件 config.ini
# 设置生产者名称为 producer1
producer-name producer1
# 指定签名提供者为 producer1 的签名密钥
signature-provider [换成自己给producer1创建的公私钥对中的私钥]
# 允许生成过期区块确保不会跳过 producer1 的轮次
enable-stale-production true
# 设置生产区块的线程数量
producer-threads 1
# Network configurations
p2p-listen-endpoint 0.0.0.0:9876
http-server-address 0.0.0.0:8888
# 添加其他生产节点和主节点的对等地址
# 主节点 eosiomain 的地址
p2p-peer-address 192.168.239.155:9876
# 生产节点 producer2 的地址
p2p-peer-address 192.168.239.157:9876
# 生产节点 producer3 的地址
p2p-peer-address 192.168.239.158:9876 三区块信息同步
在进行了上面两个步骤之后开启了Nodes和Keosd服务然后查看区块信息虽然四个节点确实可以连接但是发现生产的区块信息独立的并不是同步的。为了解决这个问题进行了相关信息查阅发现需要将创世区块信息同步到各个节点。于是通过以下几步来同步区块信息
生成 genesis.json 文件 在主节点192.168.239.155上生成 genesis.json 文件 genesis.json 文件实例
nodeos --extract-genesis-json /home/eosio/genesis.json
# 内容
{
initial_timestamp: 2018-06-01T12:00:00.000,
initial_key: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV,
initial_configuration: {max_block_net_usage: 1048576,target_block_net_usage_pct: 1000,max_transaction_net_usage: 524288,base_per_transaction_net_usage: 12,net_usage_leeway: 500,context_free_discount_net_usage_num: 20,context_free_discount_net_usage_den: 100,max_block_cpu_usage: 200000,target_block_cpu_usage_pct: 1000,max_transaction_cpu_usage: 150000,min_transaction_cpu_usage: 100,max_transaction_lifetime: 3600,deferred_trx_expiration_window: 600,max_transaction_delay: 3888000,max_inline_action_size: 524288,max_inline_action_depth: 4,max_authority_depth: 6}
}分发 genesis.json 文件 将生成的 genesis.json 文件从主节点分发到其他节点将在主节点生成的gensis.json文件复制到其余三台虚拟机上路径为/home/eosio/genesis.json(可自定义设置不同位置)。在后续启动Nodeos时候利用参数设置确保每个节点启动时都使用相同的 genesis.json 文件路径。
四启动节点并验证同步
在进行了上述三个步骤之后重新启动四个节点的EOS服务其中启动Nodeos命令如下所示其中需要指明genesis.json文件的位置从而同步创世区块信息。 启动Nodeos命令
nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::producer_api_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::http_plugin \
--plugin eosio::history_plugin \
--plugin eosio::history_api_plugin \
--filter-on* \
--access-control-allow-origin* \
--http-server-address0.0.0.0:8888 \
--contracts-console \
--http-validate-hostfalse \
--verbose-http-errors \
--genesis-json /home/zqy/eosio/genesis.json nodeos.log 21 之后可以看到四台虚拟机成功连接并实现区块信息同步。
区块信息同步(节点连接) 区块信息同步(接收区块)
EOS单节点的环境如何配置
参考文章:EOS单节点部署