已解决Hyperledger Fabric 2.3创建通道失败问题Channel creation failed

Posted licheng_god

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已解决Hyperledger Fabric 2.3创建通道失败问题Channel creation failed相关的知识,希望对你有一定的参考价值。

简介、问题描述

在按照readthedocs教程进行超级账本框架 fabric区块链的学习过程中,到通道创建这一步一直失败,即无法成功运行:

./network.sh up createChannel

出现的错误提示:

 直接去搜索这个segmentation fault无任何有效解决方案。以下是我的整个排查过程,仅供大家参考。

我的系统环境是win11、wsl2、docker desktop,在wsl2中安装的ubuntu18.04。

排查过程

以下是我的排查尝试过程记录,网友可直接跳到总结页进行所有步骤的自检。

尝试1、更换peer等二进制到新版

出现过敲osnadmin也会提示segmentation fault的问题,于是打算直接换掉二进制看看,切到2.2.6和旧版都不行。

附:仓库地址

fabric-samples 示例仓库 https://github.com/hyperledger/fabric-samples 

fabric 主仓库 https://github.com/hyperledger/fabric

github 加速 https://github.91chi.fun/ 

直接去fabric仓库地址release页面下载linux安装包,解压到samples仓库下。

cd fabric-samples

tar -zxvf /root/hyperledger-fabric-2.4.2.tar.gz

问题依旧。

尝试2、删除所有镜像,重新下载镜像

我在能运行成功的同事那里拷了一份docker镜像了,但那个版本更旧,怀疑应该不是docker镜像版本问题。但还是尝试一下。

直接去fabric仓库下的install-fabric.sh查看源码。可以复制内容下来,vi一个脚本再运行:

./install-fabric.sh docker

运行过程:

最终下载了最新版镜像:

 但问题依旧。

 尝试3、检查gopath并重新clone一份

最终只能怀疑是不是仓库下载不全,重新clone。

经检查go env正常、GOPATH变量也有设置

在重新创建路径给新文件夹起名时,突然就想到了go仓库的起名规范,即要github.com/xxx.com/xxxproject/这样子去组织一个工程,于是我创建了如下文件夹

/opt/gopath/src/github.com/hyperledger/ ,就是这个文件夹下的fabric-samples仓库,在/test-network中才正常创建通道!!以下是解决步骤

cd 到你的GOPATH具体路径,比如/opt/gopath/

mkdir -p src/github.com/hyperledger

cd src/github.com/hyperledger

 git clone https://github.com/hyperledger/fabric-samples.git     

##网络不行的话使用下面这个加速git

 git clone https://github.91chi.fun/https://github.com/hyperledger/fabric-samples.git

进行docker镜像清理:

docker stop `docker ps -a -q`

 docker rm $(docker images -aq)

我是直接在docker desktop删除所有镜像,然后进行最新版docker镜像的拉取。

到这一步,去test-network下,执行./test-network.sh up createChannel -c newchannel666

才发现终于可以成功创建自定义通道了!

 

 

总结、排查步骤

请网友按照以下步骤检查自己的环境,成功了记得回来点赞三连哦!

1.是否设置环境变量GOPATH,例如/opt/gopath

2.你的samples仓库要clone在$GOPATH/src/github.com/hyperledger/fabric-samples/,并且是main分支

3.你的二进制是最新版,并解压到fabric-samples/,同时将该bin路径配置PATH环境变量,例如export PATH=$PATH:/opt/gopath/src/github.com/hyperledger/fabric-samples/bin

4.你的docker镜像是最新版(例如 fabric 2.4、ca-1.5),若不是手动删除所有镜像并执行docker最新版的下载,使用BootStrap.sh -sb或者install-fabric.sh docker可以只进行docker镜像的安装。

5.检查docker、docker-compose、go的版本为新版。

以上是关于已解决Hyperledger Fabric 2.3创建通道失败问题Channel creation failed的主要内容,如果未能解决你的问题,请参考以下文章

《HyperLedger Fabric 2.3 联盟链搭建》 课程学习笔记

Hyperledger Fabric学习笔记2——超级账本介绍

Hyperledger Fabric/Fabric-samples 安装及使用(Mac)

Hyperledger Fabric 社区中文文档

Hyperledger Fabric 2.x 动态更新智能合约

Hyperledger Fabric概述