[项目实战]EOS多节点部署

news2024/11/25 2:50:07

文章总览: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.1,CDT版本是1.7。

  1. 主节点eosiomain:192.168.239.155
  2. 生产节点 producer1:192.168.239.156
  3. 生产节点 producer2:192.168.239.157
  4. 生产节点 producer3:192.168.239.158
  5. 虚拟机版本: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服务,然后查看区块信息,虽然四个节点确实可以连接,但是发现生产的区块信息独立的,并不是同步的。为了解决这个问题,进行了相关信息查阅,发现需要将创世区块信息同步到各个节点。于是通过以下几步来同步区块信息:

  1. 生成 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
	}
}
  1. 分发 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-address=0.0.0.0:8888 \
--contracts-console \
--http-validate-host=false \
--verbose-http-errors \
--genesis-json /home/zqy/eosio/genesis.json >> nodeos.log 2>&1 &

之后,可以看到四台虚拟机成功连接并实现区块信息同步。

区块信息同步(节点连接)
在这里插入图片描述
区块信息同步(接收区块)
在这里插入图片描述

EOS单节点的环境如何配置

  • 参考文章:EOS单节点部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2125188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

828华为云征文|华为云Flexus X搭建借贷管理系统、二次开发借贷小程序 前端源码uniapp

在华为云828 B2B企业节的盛宴中,Flexus X实例以其卓越的算力性能和灵活的资源配置脱颖而出。对于追求极致性能、渴望在借贷管理、电商交易等场景中脱颖而出的您来说,Flexus X无疑是最佳拍档。搭载创新加速引擎,让您的自建MySQL、Redis、Nginx…

MYTHOLOGICAL CREATURES PACK

这个包收集了5种神话生物:奇美拉、狮鹫、哈比、螳螂和狼人。型号注定是高端设备。支持PBR和LEGACY着色器。高分辨率4096*4096纹理,根运动动画以及到位。 下载:​​Unity资源商店链接资源下载链接 效果图:

C++里面的“百变怪”:模板

🌞0.前言 言C之言,聊C之识,以C会友,共向远方。各位博友的各位你们好啊,这里是持续分享C知识的小赵同学,今天要分享的C知识是模板 ,在这一章,小赵将会向大家聊聊C的模板知识 。✊ 相…

实时音视频之医疗手术示教技术方案探究

背景与重要性 医疗手术示教是现代医学教育中不可或缺的一环,它通过将手术室内医生的手术过程以及手术室内的各种医疗设备的视频资料真实呈现给实习医生或观摩人员,以达到教学或学术交流的目的。随着医疗技术的不断进步和医学教育的深入发展,…

各类软件在Linux上的安装

mysql安装 5.7版本 mysql的程序在centos官方的库中是没有的,需要切换到淘宝的镜像,这个前面有教程或者配置mysql的源 yum -y install rpm rpm --import https://repo.mysql.Com/RPM-GPG-KEY-mysqL-2022 rpm -Uvh http://repo.mysql.com//mysql57-commun…

自定义EPICS在LabVIEW中的测试

继续上一篇:LabVIEW中EPICS客户端/服务端的测试 变量定义 You can use CaLabSoftIOC.vi to create new EPICS variables and start them. CA Lab - LabVIEW (Realtime) EPICS INPUT: PV set Cluster-array of names, data types and field definitions to crea…

web前端-HTML常用标签(三)

一、表格标签 表格是实际开发中非常常用的标签: 1.表格的主要作用: 表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格…

多少岁转行网络安全不算晚?零基础想跳槽(转行)网络安全,看这篇就够了

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 奉劝所有零基础想入门(转行)网络安全的朋友,麻烦转行前,一定要对网络安全行业做一个大概了解,不要一点…

WriteUp - hackthebox-Labyrinth Linguist

题目靶场地址:https://ctf.hackthebox.com/ 先启动环境再下载项目文件: 项目文件压缩包解压密码:hackthebox 访问项目环境页面,是一个简单的web,输入什么就输出什么,直接看项目文件,是一个ja…

八叉树,分裂空间的魔法师【Unity】

八叉树,分裂空间的魔法师 前往我的博客阅读,享受免费无广告的体验 诞生 当我们要做物理碰撞检测的时候,例如一枚子弹射了出去,我们或许会选择遍历所有的物体,通过运算判断是否相交,是否发生碰撞,但这不理想,尤其是面对成千上万物体的时候,计算量极其恐怖。 同样的,…

在近一年内获得过新融资的中国独角兽企业

独角兽公司的概念源于 2013 年美国著名的 Cowboy venture 的投资人 Aileen Lee她将“成立时间较短、由投资人或者估值机构估值超过10 亿美元的未上市公司”定义为独角兽公司。独角兽也就是那些创业公司中的佼佼者。21 世纪至今,人类多个领域取得了显著的技术进步和突…

FreeRTOS(速记版)

第一章 初识 FreeRTOS 1.1 FreeRTOS简介 FreeRTOS 采用了 MIT 开源许可,这允许将 FreeRTOS 操作系统用于商业应用,并且不需要公开源代码。此外,FreeRTOS 还衍生出了另外两个操作系统:OpenRTOS 和 SafeRTOS,其中 OpenR…

探究文本完全对齐技术:从理论到代码

文本完全对齐算法解析与实现 引言 在编辑文档、设计书籍版面或网页时,通常需要将文本进行格式化对齐,以提升视觉吸引力和易读性。 一种广泛采用的对齐技术是所谓的“完全对齐”,这意味着文本的每一行的起始和结束位置都要对齐整齐。 虽然许多…

暴雨液冷服务器硬刚液冷放量元年

AI(人工智能)不断向前,作为AI三驾马车之一,算力需求始终如影随形。 近日,财经记者走访了河南郑州多家服务器厂商、大模型公司和算力中心。在走访中,记者发现,液冷技术正被算力行业青睐&#xf…

3GPP How to manage a project?

有人问:"3GPP 每个release都做了哪些方面的增强?应该有专门的文档介绍吧?"那肯定是有的,其实按照 https://t.zsxq.com/zbSox 中的方法就能找到那个文档。这篇我们整体浏览看下3GPP是如何handle project,这其中就会具体涉及哪些内…

ctfshow-web入门-sql注入(web244-web247)error 报错注入

目录 1、web244 2、web245 3、web246 4、web247 1、web244 在它查询框这里随便输什么都没有回显 还是在 api 接口下传参,输入存在 id: /api/?id1 查询成功 输入不存在的 id: /api/?id0 查询失败 追加单引号后,报 sql 语法…

从零到一,数字文创IP是如何在基地中孵化成长的?

在数字时代的浪潮下,数字文创IP孵化基地正成为培育创新的肥沃土壤,见证着一个个数字文创 IP 从无到有、茁壮成长。 数字文创IP孵化基地首先为创意的萌发提供了空间。这里汇聚了各路富有创造力的人才,他们的思想在这里碰撞,灵感的火…

网络原理(3)—— 应用层、传输层(TCP)

1. 应用层 日常开发中最常用到的一层,主要涉及到两种情况: 1) 使用现成的应用层协议 2) 自己定义应用层协议 1.1 自定义应用层协议的流程 1. 明确前后端交互过程中需要传递哪些信息 实例:开发一个外卖软件 打开软件,首先需要展…

Win11安装mysql5.7.24

Win11安装mysql5.7.24 资源文件mysql安装过程 资源文件 mysql5.7.24免安装压缩包 下载链接: https://download.csdn.net/download/weixin_44174685/89738053 DirectX(用来修复缺失dll) 下载链接:https://download.csdn.net/downl…

App弱网测试是怎么测试的

一、网络测试的一般流程 step1:首先要考虑网络正常的情况 ① 各个模块的功能正常可用 ② 页面元素/数据显示正常 step2:其次要考虑无网络的情况 ① APP各个功能在无网络情况下是否可用 ② APP各个页面之间切换是否正常 ③ 发送网络请求时是否…