【已解决】Hyperledger Fabric 2.3创建通道失败问题Channel creation failed
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
简介、问题描述
在按照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的版本为新版。