搭建和运行hyperledger fabric1.0alpha版本过程分析

2023-11-04

 搭建和运行hyperledger fabric1.0alpha版本过程分析

 

 

 

目录

 

1.     主要步骤

1.安装docker和docker-compose

2.下载相关镜像并tag重命名... 

3. 安装git 并git下载fabric源码... 

4.安装go环境... 

5. 安装ltdl包(可能需要执行的步骤)... 

6.测试过程... 

常见错误:... 

2.     过程分析说明... 

3.     CA说明... 

 

 

 

 

 

 

 

 

 

 

1. 主要步骤

本次测试过程是vmvare的centos7虚拟机上进行的。

1.安装docker和docker-compose

 去https://download.daocloud.io/可以很方便下载这两个东西

2.下载相关镜像并tag重命名

如果下载镜像很慢或者下不了,配置daocloud加速器命令

curl -sSLhttps://get.daocloud.io/daotools/set_mirror.sh | sh -s http://e523f129.m.daocloud.io

有些镜像可能没有缓存,要用dao pull工具来下载

curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s 7a6d83cbe808b4注意这里是私有的5fbcc77d451d82f

 

docker pullhyperledger/fabric-orderer:x86_64-1.0.0-alpha

docker pullhyperledger/fabric-peer:x86_64-1.0.0-alpha

docker pullhyperledger/fabric-zookeeper:x86_64-1.0.0-alpha

docker pullhyperledger/fabric-couchdb:x86_64-1.0.0-alpha

docker pullhyperledger/fabric-kafka:x86_64-1.0.0-alpha

docker pullhyperledger/fabric-ca:x86_64-1.0.0-alpha

docker pullhyperledger/fabric-ccenv:x86_64-1.0.0-alpha

docker pull hyperledger/fabric-javaenv:x86_64-1.0.0-alpha

dockerpull  hyperledger/fabric-baseos:x86_64-0.3.0#这个网上1.0教程的文章忘记写这个了

把以上镜像全部tag为latest

docker  tag  镜像id   hyperledger/fabric-****:latest

 

3. 安装git 并git下载fabric源码

安装git:

Yum install git

进入/usr/local/gopath/src/github.com/hyperledger/fabric目录

去github下载fabric-master源码到虚拟机,解压出来改名为fabric,放在目录/usr/local/gopath/src/github.com/hyperledger/

 

4.安装go环境

  主要配置的环境变量为:

Vi /etc/profile

增加以下内容,其中/usr/local/golang为go环境目录

export GOROOT=/usr/local/golang

export PATH=$PATH:$GOROOT/bin

export GOPATH=/usr/local/gopath

 

5.安装ltdl包(可能需要执行的步骤)

  yuminstall libtool-ltdl-devel-2.4.2-21.el7_2.i686

安装后默认链接的可能是/usr/lib/libltdl.so.7.3.0,这不是64位的,会导致版本不兼容的错误。所以需要手动执行软链接

ln -s /usr/lib64/libltdl.so.7 /usr/lib/libltdl.so

  测试执行makeconfigtxgen是否成功,如果报错要解决错误直到没有错误为止

 

6.测试过程

cd/usr/local/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli

./network_setup.sh up <channel-ID>

   如果整个过程执行完成,提示

===================== All GOOD, End-2-Endexecution completed =====================

 则表示整个过程测试成功。

或者分解成两步:

第一步:

cd examples/e2e_cli

./generateCfgTrx.sh<channel-ID>

 

第二步:

cd examples/e2e_cli

[CHANNEL_NAME=<channel-id>]docker-compose up -d

 

 

 

 

常见错误:

错误1:连接orderer07050 grpc超时的错误。

解决方法:

要正常运行,其实还要改docker-compose.yaml文件里的把凡是有CORE_PEER_COMMITTER_LEDGER_ORDERER的这行注释去掉,并且写上orderer0容器的ip地址。例如:

CORE_PEER_COMMITTER_LEDGER_ORDERER=172.18.0.2:7050

并且不能去掉cli里#-CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0这一行的注释,去掉之后也会出现连接orderer0:7050超时的错误。

彻底解决方法:把vmvare的网络模式由nat模式改成桥接模式可以解决。

 

 

错误2:部署chaincode时报错Illegal file modedetected for file

017-03-2213:29:48.699 UTC [msp] Sign -> DEBU 00a Sign: digest:C79CB7C198790F862134F9037DA1B64F1A95E534A745D393B64C214A3F1730C7

Error:Error endorsing chaincode: rpc error: code = 2 desc = Illegal file modedetected for filesrc/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/chaincode_example02.go:100766

 

解决方法:

因为源码里对chaincode的文件权限有严格控制,必须要求全部都是666,也就是rw权限,没有x的执行权限。(也对,不然太高权限是不安全的)源码里有说明



 所以要在examples的chaincode目录下执行:

Chmod–R 666 go 把所有的智能合约文件权限改为666

错误3:找不到镜像


 

解决方法:

下载docker pull  hyperledger/fabric-baseos:x86_64-0.3.0镜像

下载docker pull hyperledger/fabric-ccenv:x86_64-1.0.0-alpha 镜像,
并tag为latest

Docker logs cli

成功运行的结果截图:


Docker ps –a截图:


Docker images截图:


2. 过程分析说明

执行全过程分析

(1)network_setup.sh


  由这个文件可以看出主要步骤为:

1.      执行GenerateCfgTrx.sh

2.      Docker-composeup 目录下的docker-compose.yaml文件

(2)GenerateCfgTrx.sh

 


GenerateCfgTrx.sh的内容分析

configtxgen工具用于生成两个要素: 1)orderer 的创始区块 2)配置fabric通道的配置文件

orderer block是用于order排序服务的创始区块,在创建通道的时候被广播到order排序服务。

configtx.yaml包含示例区块链网络内角色的定义;/crypto目录包含管理员证书,CA证书,每个角色的私钥和用于签名的证书

 

(3)docker-compose.yaml


此配置文件主要在单节点上初始启动了order0,peer0,peer1, peer2,peer3和cli。测试fabric1.0版本的命令是在启动cli容器时,执行script.sh实现的。

 

 

(4)script.sh(重点分析)

 


分解步骤:

1.创建管道channel,产生创始区块

2.把4个节点加入通道。

  发送创始区块给四个Peer节点并执行joinChannel命令.

  创建了一个由四个Peer节点和两个组织(Org0、Org1)组成的通道.

3.把智能合约 -chaincode_example02 被部署到 PEER0 和 PEER2,并调用智能合约接口测试运行

   0.6的deploy步骤只有一步,1.0的alpha版会分两个步骤,一个是peerchaincode install,一个是peer chaincode instantiate

(1)      installchaincode

 

 

 配置:

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peer/peer0/localMspConfig

 

CORE_PEER_ADDRESS=peer0:7051 peer chaincodeinstall -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02>&log.txt

 

(2)      instantiateChaincode

 

 

这里面标识了1.0初始化chaincode和0.6的区别。

其中红色部分是0.6版本没有的参数

-C 代表channel 代表管道名字,

-n 代表name 代表chaincode的名字

-p 代表path  代表chaincode代码的路径

-v 代表version 代表版本信息

-o 代表orderer  这个orderer可以是一个节点,也可以是多个orderer组成的kafka集群(集群里会用到zookeeper)。    

-P 代表principle 背书策略

这里需要宿主机有hyperledger/fabric-baseos:x86_64-0.3.0和hyperledger/fabric-ccenv:x86_64-1.0.0-alpha这两个镜像,并且把镜像tag为latest。不然会报no such image的错误而启动chaincode容器不成功。

3. CA说明

0.7版本用fabric-ca命令,1.0-alpha版本用fabric-ca-server,fabric-ca-client。

1.0的例子程序暂时没用到ca,从官网可知,ca已经独立成单独的项目,通过sdk去把CA和fabric区块链节点这两部分组合起来。

 


 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搭建和运行hyperledger fabric1.0alpha版本过程分析 的相关文章

随机推荐

  • 华为OD机试真题- 字符串解密【2023Q1】【JAVA、Python、C++】

    题目描述 给定两个字符串string1和string2 string1是一个被加扰的字符串 string1由小写英文字母 a z 和数字字符 0 9 组成 而加扰字符串由 0 9 a f 组成 string1里面可能包含0个或多个加扰子串
  • 如何使用策略模式处理多种类型请求

    1 需求简述 现在有一个活动 活动场景包含布置书籍作业 布置短文作业 布置一课一练作业 以后还可能会新增其它类型的活动 每一种活动场景有自己对应的完成逻辑和奖励 现在定义对应的场景值如下 活动名称 活动场景值 布置书籍作业 11 布置短文作
  • PaxosLease:实现租约的无盘Paxos算法

    PaxosLease 实现租约的无盘Paxos算法 英文 PaxosLease Diskless Paxos for Leases 中文 http dsdoc net paxoslease index html
  • JavaScript 解决计算误差

    JavaScript 解决计算误差 在 JavaScript 中执行计算时 精度误差是一个常见的问题 这是因为 JavaScript 使用二进制表示浮点数 因此不能精确表示所有十进制数 这会导致在 JavaScript 中执行精确的计算时出
  • springboot切换使用log4j

    修改pom xml
  • 计算两个时间之间的进度百分比

    获取两个时间之间的日期
  • Mask-RCNN应用 - 批量生成训练所需文件并训练自己的数据集(技巧与防坑)

    MaskRCNN入门路径 gt Mask RCNN应用研究方法 持续更新中 如有问题或需要指导 请私聊留下联系方式用手机打开https m tb cn h fINaraE tk PCzA2jPp4V0进行咨询 本文介绍标注数据和训练过程并提
  • XMPP客户端库Smack 4.1.4版官方开发文档之三

    本文转载自 博客主页 http blog csdn net chszs 三 XMPPConnection管理 1 创建连接 org jivesoftware smack XMPPConnection类可管理到XMPP服务器的连接 它默认的连
  • 主流Java静态bug分析工具

    1 CheckStyle 2 FindBugs 3 PMD 4 idea中相关代码检查的插件及其使用方式 1 CheckStyle CheckStyle 是SourceForge的开源项目 通过检查 对代码的编码格式 命名约定 JavaDo
  • 【第62篇】ConvNeXt V2论文翻译:ConvNeXt V2与MAE碰撞

    文章目录 摘要 1 简介 2 相关工作 3 全卷积掩码自编码器 4 全局响应归一化 5 ImageNet实验 6 迁移学习实验 7 结论 摘要 论文链接 ConvNeXt V2 在改进的架构和更好的表示学习框架的推动下 视觉识别领域在21世
  • emi滤波matlab,【原创】EMI 滤波器设计从入门到精通(三)

    原标题 原创 EMI 滤波器设计从入门到精通 三 07 一些重要的基本概念 1 电磁场 电场和磁场总是联系在一起的 电场和磁场的混合就是电磁场 英文也专门创建了这么一个单词 Electromagnetic Field 电磁场 以下图为例 图
  • 基于RISC-V架构的45条指令单周期CPU设计——第1章

    完整目录 完整代码和论文 指令选取 前言 本次设计选取 RV32I 和 RV32M 大部分可实现的指令 其中囊括 R 型 I 型 U 型 S 型 B 型 J 型指令 R 型指令 R 型指令格式 I 型指令 I 型指令格式 U 型指令 U 型
  • qt平台插件问题(Ubuntu 16.04)

    问题描述 在运行python的可视化库的时候 报错提示 Qt平台插件异常 可以尝试重新安装qt库 度娘之后发现解决方法是将PyQt加入环境变量 但是尝试之后是没有效果的 所以卡了很久 最后分析了一下 应该是Ubuntu基于Python的GU
  • 微信小程序开发搜索功能(前端+后端+数据库)

    2019年5月7日更新 这是写的最新的一篇文章 大家看这篇 https blog csdn net weixin 39927850 article details 87990384 界面比较丑 主要实现逻辑 超级简单的界面 表单 提交按钮
  • 刷脸支付现已引领了新一轮科技开展浪潮

    人脸验证前 平台需要采集目标对象的人像数据 经过算法提取图画中的人脸特征值 树立个人独特的生物数据库 假定您的特征值存储在数据库中 在您的付出过程中 系统将您的人脸信息放入数据库进行云比较 从而到达辨认和付出的目的 刷脸支付有多重好处 将会
  • mysql中groupby用法_详解SQL中GroupBy的用法

    GROUP BY 语句用于结合合计函数 根据一个或多个列对结果集进行分组 1 概述 Group By 从字面意义上理解就是根据 By 指定的规则对数据进行分组 所谓的分组就是将一个 数据集 划分成若干个 小区域 然后针对若干个 小区域 进行
  • Unity 简单的虚拟摇杆

    需求 点击创建一个虚拟摇杆底盘 鼠标拖拽时候上方摇杆会跟随鼠标方向移动 并且不会超出摇杆盘范围 摇杆功能另外实现 UI显示 using System Collections using System Collections Generic
  • C语言---malloc函数详解

    引言 为什么使用动态内存分配 当你声明数组时 你必须用一个编译时常量指定数组的长度 但是 数组的长度常常在运行时才知道 这是由于它所需要的内存空间取决于输入数据 例如 一个用于计算学生等级和平均分的程序可能需要存储一个班级所有学生的数据 但
  • 新版支付宝开放平台 手机网页支付 整个流程

    新版支付宝开放平台 手机网页支付 整个流程 在支付宝签约如下产品 然后 使用支付宝最新的签名工具生成商户的私钥和公钥 值得注意的是 如果是 net c 请选择PKCS1 我只采用1024密钥长度 然后来到支付宝的账号管理中心 在如图的开放平
  • 搭建和运行hyperledger fabric1.0alpha版本过程分析

    搭建和运行hyperledger fabric1 0alpha版本过程分析 目录 1 主要步骤 1 安装docker和docker compose 2 下载相关镜像并tag重命名 3 安装git 并git下载fabric源码 4 安装go环