Hyperledger Fabric 2.2版本环境搭建

news2024/11/24 19:58:35

前言

部署环境: CentOS7.9
提前安装好以下工具

  • git客户端
  • golang
  • docker
  • docker-compose
  • curl工具

以下是个人使用的版本

  • git: 2.39.2
  • golang: 1.18.6
  • docker: 23.0.3
  • dockkekr-compose: v2.17.2
  • curl: 7.29.0

官方文档参考链接:跳转链接,不同的版本对应的官方文档不太一样,参考的时候注意看对应版本的文档,docker版本不能过低,官方要求17.06.2-ce 或更高版本

环境搭建

  • 下载fabric源码
git clone https://github.com/hyperledger/fabric.git

在这里插入图片描述

  • 进入到源代码的根目录,查看当前所处的分支
cd fabric/
git branch
  • 刚下载的源码默认是在main分支

在这里插入图片描述

  • 切换到对应2.2版本的分支
git checkout -b release-2.2 origin/release-2.2
git branch

在这里插入图片描述

  • 进入到fabric源码的scripts文件夹中
cd scripts/
ls -l

可以看到有个bootstrap.sh文件
在这里插入图片描述

  • 执行脚本进行安装
sh bootstrap.sh 
  • 如果没有可执行权限使用以下命令修改权限
chmod +x bootstrap.sh 

执行脚本主要做了以下几件事情

  1. 下载fabric-samples的源码并切换到对应的版本
  2. 下载hyperledger-fabric-linux-amd64-2.2.10.tar.gz,解压后会生成bin和config目录
  3. 下载hyperledger-fabric-ca-linux-amd64-1.5.5.tar.gz,解压后生成bin目录
  4. 下载hyperledger fabric相关docker镜像,并修改镜像tag为latest
  • 脚本执行完成后主要生成以下内容
  1. fabric-samples源码
    在这里插入图片描述
  2. 切换到 fabric-samples会有两个目录:bin和config 在这里插入图片描述
  3. docker镜像
    在这里插入图片描述
  • 修改bin和config目录的可执行权限,进入到fabric-samples源码根目录,执行以下命令
chmod -R +x bin/
chmod -R +x config/
  • 进入到fabric-samples的test-network目录
cd test-network/
  • 使用以下命令启动
sh network.sh up

在这里插入图片描述

  • 使用docker命令可以看到启动了以下几个容器

在这里插入图片描述

  • 创建channel
./network.sh createChannel -c mychannel

出现以下内容代表创建channel成功,channel创建成功后加入到节点里面
在这里插入图片描述
在这里插入图片描述

  • 部署合约
./network.sh deployCC -ccn contract-name -ccv 1 -ccs 1 -ccp fabric-samples/asset-transfer-basic/chaincode-go -ccl go

以上命令几个参数的含义:
deployCC:这个脚本是源码里面自带的,在fabric-samples/test-network/scripts/下面
-ccn:合约名称
-ccv:合约版本
-ccl: 合约的语言,java,go等
-ccs:合约的序列,必须是整数
-ccp:合约所在的路径
其他参数可以在fabric-samples/test-network/scripts/utils.sh脚本里面,这个脚本对每个参数都有详细的说明。
对于部署的合约可以自己定义或者使用官方提供的示例,官方提供的示例在fabric-samples/asset-transfer-basic
在这里插入图片描述
以上命令执行成功后,最终会输出以下结果:
在这里插入图片描述

  • 如果要关闭网络,执行以下命令
./network.sh down

以上命令会将启动的docker镜像全部关闭并移除
在这里插入图片描述

问题解决

  • 部署合约过程出现:dial tcp 142.251.42.241:443: connect: connection refused
    在这里插入图片描述
    解决方案:更换代理地址,执行以下命令
    go env -w GOPROXY=https://goproxy.cn
    

结束

以上便是Hyperledger Fabric 2.2版本环境的搭建,如有问题欢迎随时交流。

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

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

相关文章

008:Mapbox GL添加比例尺scale功能

第008个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加比例尺scale功能 。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共66行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https…

Linux0.11 管道(十一)

系列文章目录 Linux 0.11启动过程分析(一) Linux 0.11 fork 函数(二) Linux0.11 缺页处理(三) Linux0.11 根文件系统挂载(四) Linux0.11 文件打开open函数(五&#xff09…

fMRI研究 | 社交情境下的混合情绪

导读 背景:神经科学通常都是单独研究各种情绪,而混合的情绪状态(例如愉悦和厌恶、悲伤和快乐的共存)在日常生活中很常见。心理生理学和行为学证据表明,混合情绪可能具有不同于其组成情绪的反应特征。然而,…

什么是JWT?

起源 需要了解一门技术,首先从为什么产生开始说起是最好的。JWT 主要用于用户登录鉴权,所以我们从最传统的 session 认证开始说起。 session认证 众所周知,http 协议本身是无状态的协议,那就意味着当有用户向系统使用账户名称和…

RocketMQ源码分析之监控指标分析

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 Rocketmq版本 version: 5.1.0 背景 继续上次的高可用topic二开已经有了一段时间,现在我们需要对我们的限流数据进行监控,所以现在我们来…

Qt中英文切换(涉及多种场景)

qt中英文切换涉及到一个软件两个文件,分别是QtLinguist、.ts文件和.qm文件。 1、在Pro中添加 TRANSLATIONS en.ts \ch.ts添加这个文件后qmake,然后如下操作点击更新: 这个时候会生成2两个文件en.ts和ch.ts。 2、将这两个文件添加到项目中…

C++ : 构造函数 析构函数

🔵前提引入 : 1如果一个类中什么成员都没有,称为空类,但空类并非什么都没有,在我们没有写任何东西时,编译器会自动生成6个默认成员函数。 2.默认成员函数 : 用户没有显式实现,编译器…

Redis快速上手

Redis快速上手 OVERVIEWRedis快速上手1.redis数据类型2.redis常用命令StringListSetSortedSetHashKey相关3.redis配置文件4.redis数据持久化5.hiredis使用连接数据库执行redis命令函数释放资源程序实例1.redis数据类型 key: 必须是字符串 - “hello” value: 可选的 String类型…

核心业务5:充值业务实现

核心业务5:我要充值 1.充值业务流程图 2.充值业务流程逻辑 3.数据库表 4.前端逻辑代码 5.汇付宝代码逻辑 6.尚融宝代码逻辑 7.幂等性判断原理和解决方案 8.代码规范和原理了解 核心业务5:我要充值 1.充值业务流程图

基于springboot的在线考试系统源码数据库论文

目 录 目 录 第一章 概述 1.1研究背景 1.2 开发意义 1.3 研究现状 1.4 研究内容 1.5论文结构 第二章 开发技术介绍 2.1 系统开发平台 2.2 平台开发相关技术 2.2.1 Java技术 2.2.2 mysql数据库介绍 2.2.3 MySQL环境配置 2.2.4 B/S架构 2.2.5 Spr…

如何在Linux系统中使用 envsubst 命令替换环境变量?

在Linux系统中,环境变量是非常常见的一种机制,它们被用于存储重要的系统信息,比如用户的登录名、路径等等。当在脚本中需要使用这些变量时,可以使用envsubst命令,该命令可以将环境变量的值替换到文本文件中。 本文将介…

低静态电流-汽车电池反向保护系统的方法

低静态电流-汽车电池反向保护系统的方法 背景 车辆中电子电路数量不断增加,使得需要消耗的电池电量也随之大幅增长。为了支持遥控免钥进入和安全等功能,即使在汽车停车或熄火时,电池也要持续供电。 由于所有车辆都使用有限的电池供电&…

三轴XYZ平台生成gcode文件

1. 生成gcode坐标文件 gcode文件中保存的是需要绘制图形的路径信息,这里我们采用开源矢量图形编辑软件 Inkscape并通过Unicorn G-Code插件来生成 gcode坐标文件。 将软件资料包\Inkscape.rar 压缩文件解压到电脑上任意磁盘,软件内已安装 Unicorn G-Code插…

【花雕学AI】深度挖掘ChatGPT角色扮演的一个案例—CHARACTER play : 莎士比亚

CHARACTER play : 莎士比亚 : 52岁,男性,剧作家,诗人,喜欢文学,戏剧,爱情 : 1、问他为什么写《罗密欧与朱丽叶》 AI: 你好,我是莎士比亚,一位英国的剧作家和诗人。我很高兴你对我的…

【论文速览】图像分割领域的通用大模型SegGPT - Segmenting Everything in Context

文章目录研究背景解决思路PainterSegGPT实验效果(部分)思考参考资料代码地址:https://github.com/baaivision/Painter Demo地址:https://huggingface.co/spaces/BAAI/SegGPT 研究背景 图像分割一直是计算机视觉领域的一项基础研究…

Free container identify , CIMCAI container detect cloud service

集装箱箱号识别API免费,中国上海人工智能企业CIMCAI飞瞳引擎™集装箱人工智能平台全球近4千企业用户,全球领先的飞瞳引擎™AI集装箱识别云服务,集装箱残损识别箱况检测缺陷检验,小程序拍照检测或支持API接口二次开发,应…

数据结构初阶(算法的复杂度 + 包装类 + 泛型)

文章目录一、算法复杂度1. 算法效率2. 时间复杂度(1) O的渐进表示法3. 空间复杂度二、包装2.1 为什么会出现包装2.2 分类2.3 装箱和拆箱(1)装箱/装包(2)拆箱/拆箱三、泛型3.1 泛型的基本概念3.2 泛型的使用…

2023 年 3 月 GameFi 月度报告

作者:danielfootprint.network 数据来源:Monthly GameFi Report 三月的 GameFi 世界相对沉寂,没有重大的消息公开,没有亮眼的游戏出现,也没有死亡螺旋的发生。 GameFi 领域的重要名字 Splinterlands 和 Hive 开始面…

Redis一主二从搭建

Redis一主二从环境搭建 一主二从 准备工作 安装VMWare 下载镜像 创建下面的目录 Redis-Cluster master mastervmdk slave00 slave00vmdk slave01 slave00vmdk VMWare中安装CentOS7 自定义(高级) 默认 安装程序光盘映像文件 命名虚拟机,选择我们刚才创建的…

ASEMI代理ADAU1961WBCPZ-R7原装ADI车规级ADAU1961WBCPZ-R7

编辑:ll ASEMI代理ADAU1961WBCPZ-R7原装ADI车规级ADAU1961WBCPZ-R7 型号:ADAU1961WBCPZ-R7 品牌:ADI/亚德诺 封装:LFCSP-32 批号:2023 引脚数量:32 安装类型:表面贴装型 ADAU1961WBCPZ-…