Fabric多机kafka部署(docker方式)

2020年8月28日21:41:58
评论
323
摘要

Fabric基于docker方式、多机kafka配置部署详细过程。

更多区块链技术与应用分类:

区块链应用    区块链开发

以太坊 | Fabric | BCOS | 密码技术 | 共识算法 | 比特币其他链

通证经济传统金融场景 | 去中心化金融 | 防伪溯源 | 数据共享 | 可信存证

 

Fabric多机kafka部署(docker方式)

 

基于docker方式的多机kafka的Fabric网络搭建步骤如下。

分布式节点规划:

每台节点网络ip配置(vim /etc/hosts)

 

环境需求

fabric v1.1

docker(17.06.2-ce或更高)

docker-compose(1.14.0或更高)

go( 1.9.x或更高)

docker安装

删除之前安装的

安装一些依赖

下载安装rpm包

go更新:

docker镜像下载

改标签:

删除相同的:

保存镜像并发送到其他节点:

=>node1:

在node2,node3,node4:

node1:

操作在/traceabilityProject下

下载二进制文件(v1.1版本):

https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/

一.配置文件设置:


生成节点所需配置文件:

二.生成创始区块:

变更部分(集群地址):

Fabric多机kafka部署(docker方式)

将该文件放入/traceabilityProject内,然后运行在该目录下:

(必须改名为configtx.yaml文件)

三.生成通道配置文件:

四.启动环境与文件配置

说明:由于每次容器销毁后,网络和数据就都不存在了,这对于生产环境来说是无法接受的,因此,所以考虑数据持久化。

需要持久化数据的组件:Orderer、Peer、Kafka、zookeeper

在启动文件中加入:

详细配置如下面yaml文档所示

node1:

再创建kafka、orderer、zookeeper三个文件夹来持久存储数据

Fabric多机kafka部署(docker方式)

停止容器则使用 :

注:

在配置文件中volume中目录中,复制生成的相应配置文件(这些目录不能为空!)

创世区块目录要挂载文件而非文件夹,但docker-compose每次生成的都是文件夹,手动更改为创世区块文件:

将工作目录/traceabilityProject复制到其他节点:

node2:

创建kafka、orderer、zookeeper、peer四个文件夹,来持久存储数据

Fabric多机kafka部署(docker方式)

node3:

创建kafka、orderer、peer三个文件夹,来持久存储数据

Fabric多机kafka部署(docker方式)

node4:

创建kafka、peer两个文件夹,来持久存储数据

Fabric多机kafka部署(docker方式)

注意:

只有所有的zookeeper和kafka都启动后(四份文件同时启动,会有一些延时等待时间),orderer节点才不会宕掉。

(否则报错:

Cannot post CONNECT message = circuit breaker is open)

五.Peer节点操作(交易、通道、链码)

peer1(node2)

(1)进入容器

查看容器工作目录下是否有文件,若没有则手动从主机拷贝到docker 容器中:

Fabric多机kafka部署(docker方式)

(2)创建通道

容器中

(3)发送tracechannel.block给其他节点:

由于/traceabilityProject/peer/channel-artifacts是容器的挂载目录,所以物理机中已有该文件。

向两个peer节点拷贝:

退出容器,进入主机目录:/traceabilityProject/channel-artifacts

由于/traceabilityProject/channel-artifacts是cli容器中的volumes挂载点,在容器中。

(4)加入通道

再次进入容器目录/traceabilityProject/peer/channel-artifacts:

(

完全重启指令:

(即使没有设置锚节点的情况下,整个Fabric网络仍然是能正常运行的)

(5)安装链码

(6)初始化

pee2(node3):

peer3(node4):

(每次重启容器,需再走一遍流程,加入通道、安装、,retailer上安装三个链码,但只初始化cc_retailer)

完全重启指令:

并删除持久化的数据

关机前关闭容器时:

 


原文链接:Fabric多机kafka部署(docker方式)

Fabric最后更新:2020-11-6
  • 本文由 发表于 2020年8月28日21:41:58
  • 转载请注明:https://www.wanghaoyi.com/fabric-install-kafka-docker.html
以太坊之数据存储详解 以太坊

以太坊之数据存储详解

本文整理分析以太坊网络中的区块、交易以及合约数据是如何存储的。 区块结构 区块由两部分组成,分别是区块头(header)和区块体(body)两部分,详细结构图如下。 区块头(header) 区块头存储...
golang创建web监听在tcp6而非tcp4的解决 Golang

golang创建web监听在tcp6而非tcp4的解决

在用golang建立web时,不管是用原生库还是使用gin框架,发现服务器起来后最终都会监听到tcp6。查stackoverflow得知,如果想要默认监听tcp4/tcp6需要修改下源码。 修改$GO...
golang格式化占位符 Golang

golang格式化占位符

golang使用fmt包来实现格式化输出,各类占位符汇总如下: 结构体 # 定义示例类型和变量 type Human struct { Name string } var people = Human...
BCOS链docker化部署 BCOS

BCOS链docker化部署

使用脚本一键部署 安装依赖openssl依赖 yum install -y openssl openssl-devel 创建目录下载脚本 mkdir -p fisco && cd fi...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: