0. 前言

现需要搭建一个基于PBFT共识机制的区块链网络,将使用fabric0.6实现。

0.1 环境介绍

ubuntu-desktop 16.04 amd64
Docker version 20.10.6
docker-compose version 1.27.0

1. 网络搭建

本文是基于yeasy/docker-hyperledger-fabric-peer项目搭建的网络。使用的链码为docker-compose-files/hyperledger_fabric/v0.6.0/。
除了参考上述两个项目中的readme,还参考了赵志明的博客。

1.1 下载docker镜像

docker pull yeasy/hyperledger-fabric-base:0.6-dp \&& docker pull yeasy/hyperledger-fabric-peer:0.6-dp \&& docker pull yeasy/hyperledger-fabric-membersrvc:0.6-dp \&& docker pull yeasy/blockchain-explorer:latest \&& docker tag yeasy/hyperledger-fabric-peer:0.6-dp hyperledger/fabric-peer \&& docker tag yeasy/hyperledger-fabric-base:0.6-dp hyperledger/fabric-baseimage \&& docker tag yeasy/hyperledger-fabric-membersrvc:0.6-dp hyperledger/fabric-membersrvc

这里不能吧&&丢了,赵的博客中把这个丢了,会报错。pull是下载镜像,tag是上传镜像,我的tag会报错,如下(权限不够),不过不影响后续部署。

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=yeasy%2Fhyperledger-fabric-peer&tag=0.6-dp: dial unix /var/run/docker.sock: connect: permission denied

使用

docker images

查看已经安装的docker镜像。

1.2 下载源码

这里下载pbft示例网络的源码。
下载后进入hyperledger_fabric/v0.6.0/pbft目录。

1.3 修改配置文件

使用4-peers.yml文件启动fabric网络,查看源码。可以看到peer.yml文件是它的配置文件。
再查看peer.yml。

 12 services:13   vp:  # vp node no needing membersrvc14     image: hyperledger/fabric-peer:latest15    #image: yeasy/hyperledger-fabric-peer:0.6-dp16    #image: hyperledger/fabric-peer:x86_64-0.6.1-preview17    #image: ibmblockchain/fabric-peer:x86_64-0.6.1-preview18     restart: unless-stopped

可以看到image默认的是hyperledger/fabric-peer:latest,这里我们要使用yeasy/hyperledger-fabric-peer:0.6-dp。将其修改为

 12 services:13   vp:  # vp node no needing membersrvc14    #image: hyperledger/fabric-peer:latest15     image: yeasy/hyperledger-fabric-peer:0.6-dp16    #image: hyperledger/fabric-peer:x86_64-0.6.1-preview17    #image: ibmblockchain/fabric-peer:x86_64-0.6.1-preview18     restart: unless-stopped

这里要注意缩进问题,image和restart是对齐的。

1.4 启动网络

启动有四个peer节点的以pbft为共识机制的fabric网络。

docker-compose -f 4-peer.yml up

打开另一个Teminal,使用

docker ps

查看正在运行的docker镜像。

1.5 部署链码并进行交易

本小节除了设置zzm的位置和赵志明的博客不同,其他均相同。
进入pbft_vp0_1节点

docker exec -it pbft_vp0_1  bash
#部署链码:
peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
#设置zzm变量为链码返回的唯一标识:
zzm="ee5b24a1f17c356dd5f6e37307922e39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3ab1812590cd0f78539"
#查询a账户的余额:
peer chaincode query -n ${zzm} -c '{"Function": "query", "Args": ["a"]}'
#a转账给b20元:
peer chaincode invoke -n ${zzm} -c '{"Function": "invoke", "Args": ["a", "b", "20"]}'
#查询a的余额为80元:
peer chaincode query -n ${zzm} -c '{"Function": "query", "Args": ["a"]}'
#查询b的余额为220元:
peer chaincode query -n ${zzm} -c '{"Function": "query", "Args": ["b"]}'

输出如下、

2. 其他

在第一次部署网络时并没有出现什么错误,而第二次出现了

Error handling message: Peer FSM cannot handle message (DISC_GET_PEERS)

这种错误,对交易的处理并没有什么影响,暂时搁置。

使用fabric搭建PBFT网络教程相关推荐

  1. vpc自建服务器,虚拟私有云VPC搭建IPv6网络教程

    本教程将指引您搭建一个IPv6网段的VPC,并在VPC中创建一个带有IPv6地址的ECS,使ECS可以访问Internet上的IPv6服务.配置流程如图1所示. 图1 搭建IPv6网络 说明: 若您已 ...

  2. Fabric 搭建测试网络并部署智能合约

    1.搭建网络: 详见博客 2.对Test Network的创建和关闭 cd ${HOME}/fabric-samples/test-network 创建网络: ./network.sh up关闭网络: ...

  3. 在树莓派上搭建ad-hoc网络教程

    最近实验室做的一些工作需要使用树莓派并且使用其无线网卡的ad-hoc模式,于是笔者上网搜了一下相关教程.发现大部分的教程都是直接介绍在ubuntu或者windows下的设置,对于树莓派介绍的比较少,因 ...

  4. fabric多节点网络环境搭建(v2.2)

    fabric多节点网络环境搭建(v2.2) 文章目录 fabric多节点网络环境搭建(v2.2) 一.机器准备与基础环境搭建 二.创建服务部署目录 三.准备证书文件 四.通道配置文件 五.配置dock ...

  5. ubuntu下搭建ad-hoc网络实现多台设备进行网络通信(通过图形界面+超级详细教程)

    通过配置文件详情请看博客:https://blog.csdn.net/weixin_44038165/article/details/88386051 最近实验室做的一些工作需要使用lattepand ...

  6. Hyperledger Fabric Java SDK最新教程

    Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK ...

  7. 容器中运行Fabric区块链网络

    2019独角兽企业重金招聘Python工程师标准>>> 容器中运行Fabric区块链网络 Fabric是区块链项目Hyperleger的主要工程,可以在容器中运行,快速建立实验区块链 ...

  8. 虚拟vpc服务器搭建,虚拟私有云VPC搭建IPv6网络

    虚拟私有云VPC搭建IPv6网络 内容精选 换一换 虚拟私有云(Virtual Private Cloud)是用户在华为云上申请的隔离的.私密的虚拟网络环境.用户可以自由配置VPC内的IP地址段.子网 ...

  9. 照片生成3D虚拟数字人,虚拟形象主播搭建(软件+教程)

    1.一张照片快速生成3D虚拟数字人,无需建模和动画基础 2.真人驱动数字人,数字人代替真人出镜,真人无需露脸也能轻松做直播 3.形象丰富,角色自定义,场景自定义,可以每天都换着花样的直播 5.操作简单 ...

最新文章

  1. 老齐学python的django 源代码_《跟老齐学Python:Django实战》真正的手把手“带”您学习...
  2. 经典高斯算法,一起学习数据结构和算法吧!
  3. Kubernetes — Calico CNI
  4. 淘宝npm镜像使用方法(转)
  5. 1192 约瑟夫问题(1)
  6. kettle连接mysql教程_kettle 连接 mysql8
  7. python云计算服务_阿里云python 云计算
  8. Qt4_IconEditor窗口部件
  9. [Java] 蓝桥杯ADV-182 算法提高 前10名
  10. mysql------事务
  11. jQuery框架学习
  12. C++走向远洋——52(十三周阅读程序)
  13. Oracle 客户端安装 + pl/sql工具安装配置
  14. Netty 核心组件 Pipeline 源码分析(二)一个请求的 pipeline 之旅
  15. C/S系统实现两数求和(非阻塞+epoll+心跳包检测用户在线状况+滚动日志+配置文件.)...
  16. 始于CSDN,归于CSDN【一个七年老码农的心声】
  17. wincc控件之FlexGrid系列(注册安装)
  18. 离线语音识别与语音转写初探
  19. 区块链入门导航-磨链社区
  20. 基于VNPY实现网格策略实盘(币圈)

热门文章

  1. 流形学习的四种降维方法
  2. 淡淡的话1(转自小木虫)
  3. Linux下EAGAIN宏的含义
  4. mysql全文索引含义_什么是全文索引,为什么要使用全文索引
  5. windows下用vs2019编译fltk 1.3.5
  6. ajax设的全局配置没有生效,ajaxSetup设置全局请求
  7. Fluke Ti480红外热像仪主要特性介绍
  8. Mac 上使用android 投屏
  9. 【高德地图WEB开发】 入门篇(地图/搜索/经纬度/缩放层级)
  10. 股票数据爬虫进阶:免费、开源的股票爬虫Python库,实测真香