使用fabric搭建PBFT网络教程
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网络教程相关推荐
- vpc自建服务器,虚拟私有云VPC搭建IPv6网络教程
本教程将指引您搭建一个IPv6网段的VPC,并在VPC中创建一个带有IPv6地址的ECS,使ECS可以访问Internet上的IPv6服务.配置流程如图1所示. 图1 搭建IPv6网络 说明: 若您已 ...
- Fabric 搭建测试网络并部署智能合约
1.搭建网络: 详见博客 2.对Test Network的创建和关闭 cd ${HOME}/fabric-samples/test-network 创建网络: ./network.sh up关闭网络: ...
- 在树莓派上搭建ad-hoc网络教程
最近实验室做的一些工作需要使用树莓派并且使用其无线网卡的ad-hoc模式,于是笔者上网搜了一下相关教程.发现大部分的教程都是直接介绍在ubuntu或者windows下的设置,对于树莓派介绍的比较少,因 ...
- fabric多节点网络环境搭建(v2.2)
fabric多节点网络环境搭建(v2.2) 文章目录 fabric多节点网络环境搭建(v2.2) 一.机器准备与基础环境搭建 二.创建服务部署目录 三.准备证书文件 四.通道配置文件 五.配置dock ...
- ubuntu下搭建ad-hoc网络实现多台设备进行网络通信(通过图形界面+超级详细教程)
通过配置文件详情请看博客:https://blog.csdn.net/weixin_44038165/article/details/88386051 最近实验室做的一些工作需要使用lattepand ...
- Hyperledger Fabric Java SDK最新教程
Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK ...
- 容器中运行Fabric区块链网络
2019独角兽企业重金招聘Python工程师标准>>> 容器中运行Fabric区块链网络 Fabric是区块链项目Hyperleger的主要工程,可以在容器中运行,快速建立实验区块链 ...
- 虚拟vpc服务器搭建,虚拟私有云VPC搭建IPv6网络
虚拟私有云VPC搭建IPv6网络 内容精选 换一换 虚拟私有云(Virtual Private Cloud)是用户在华为云上申请的隔离的.私密的虚拟网络环境.用户可以自由配置VPC内的IP地址段.子网 ...
- 照片生成3D虚拟数字人,虚拟形象主播搭建(软件+教程)
1.一张照片快速生成3D虚拟数字人,无需建模和动画基础 2.真人驱动数字人,数字人代替真人出镜,真人无需露脸也能轻松做直播 3.形象丰富,角色自定义,场景自定义,可以每天都换着花样的直播 5.操作简单 ...
最新文章
- 老齐学python的django 源代码_《跟老齐学Python:Django实战》真正的手把手“带”您学习...
- 经典高斯算法,一起学习数据结构和算法吧!
- Kubernetes — Calico CNI
- 淘宝npm镜像使用方法(转)
- 1192 约瑟夫问题(1)
- kettle连接mysql教程_kettle 连接 mysql8
- python云计算服务_阿里云python 云计算
- Qt4_IconEditor窗口部件
- [Java] 蓝桥杯ADV-182 算法提高 前10名
- mysql------事务
- jQuery框架学习
- C++走向远洋——52(十三周阅读程序)
- Oracle 客户端安装 + pl/sql工具安装配置
- Netty 核心组件 Pipeline 源码分析(二)一个请求的 pipeline 之旅
- C/S系统实现两数求和(非阻塞+epoll+心跳包检测用户在线状况+滚动日志+配置文件.)...
- 始于CSDN,归于CSDN【一个七年老码农的心声】
- wincc控件之FlexGrid系列(注册安装)
- 离线语音识别与语音转写初探
- 区块链入门导航-磨链社区
- 基于VNPY实现网格策略实盘(币圈)