Ubuntu上搭建HyperLedger Fabric过程中,执行 ./byfn.sh generate一直报错?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu上搭建HyperLedger Fabric过程中,执行 ./byfn.sh generate一直报错?相关的知识,希望对你有一定的参考价值。
在参考两份环境搭建的博客:https://blog.csdn.net/qq_32044245/article/details/81143945#%E6%80%BB%E7%BB%93https://www.jianshu.com/p/4f58e0fcb9f9都在执行 ./byfn.sh generate 命令生成相应的文件时报错。报错内容如下:Generating certs and genesis block for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' secondsContinue? [Y/n] yproceeding .../home/bigpie/hyperledger-fabric/fabric-samples/first-network/../bin/cryptogen############################################################### Generate certificates using cryptogen tool ###################################################################+ cryptogen generate --config=./crypto-config.yamlorg1.example.companic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x7e5d20]goroutine 1 [running]:github.com/hyperledger/fabric/common/tools/cryptogen/msp.GenerateVerifyingMSP(0xc420018600, 0x34, 0x0, 0x0, 0xc420014c01, 0x16, 0x0) /w/workspace/fabric-nightly-release-job-release-1.2-x86_64/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/msp/generator.go:179 +0x2a0main.generatePeerOrg(0x8f393d, 0xd, 0xc420016620, 0x4, 0xc420016640, 0x10, 0x1, 0x8f1407, 0x2, 0xc420014c20, ...) /w/workspace/fabric-nightly-release-job-release-1.2-x86_64/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/main.go:529 +0x8cemain.generate() /w/workspace/fabric-nightly-release-job-release-1.2-x86_64/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/main.go:387 +0x139main.main() /w/workspace/fabric-nightly-release-job-release-1.2-x86_64/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/main.go:221 +0x256+ res=2+ set +xFailed to generate certificates...该如何解决?
参考技术A 这是我找到的一个解决方法,你看看有没有用:在启动fabric中first-network网络时,需要执行一个自动化脚本:
./byfn.sh -m generate
该脚本需要自动生成相关证书信息,fabric官方提供了两款工具:configtxgen、cryptogen。在脚本执行中会从fabric-simple/bin中取查找并调用两者。初次启动时没有这个工具的。
解决方法:
进入fabric目录,看见make* 文件,使用make configtxgen、make cryptogen两个指令生成工具(如果之前搭建过fabric-1.0环境,直接进fabric/build将bin文件夹直接移动到fabric-sample目录即可)。生成后的文件在fabric/build/bin里面,移动到相关位置即可。
楼主如果对Linux系统感兴趣,想学习更多Linux系统操作知识,可以百度《Linux就该这么学》,不错的一本Linux入门学习教程。 参考技术B 报错内容可以告诉我吗?aqui te amo。
Hyperledger Fabric 1.1安装部署-基础环境搭建
在学习和开发hyperledger fabric的时候遇到了一些坑,现将自己的一些总结和心得整理如下,以期对大家有所帮助。
本次使用的宿主机环境:ubuntu,版本:Ubuntu 16.04.3 LTS。
运行hyperledger fabric,建议至少4GB的内存。
更改aptget源:
初装ubuntu的Aptget源很慢,国内提供的源有很多,可以找一个适合自己的,我采用的是阿里的源。
更改aptget阿里源的方法:
1 复制原文件备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2 编辑源列表文件
sudo vim /etc/apt/sources.list
3 将原来的列表删除,添加如下内容(也可以替换成其他源)
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb-src http://archive.canonical.com/ubuntu xenial partner
4 运行sudo apt-get update
5 运行sudo apt-get upgrade
环境准备:
Docker: v18.03.0-ce
Docker-Compose: v1.20.1
Go: v1.9
以下非必须,可选择安装。
Node: v8.11.1
npm: v5.8.0
git: v2.16.2
Python: v2.7.x
环境安装:
下面介绍手动安装过程(Go,Docker,Docker-Compose)。其他工具如果需要请自行安装。
Go安装:
1下载go安装包
wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
2解压安装包
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
3设置环境变量
vim ~/.profile
4 添加以下内容:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
5 保存退出,载入环境:
source ~/.profile
6 根据环境变量设置,创建go文件夹
cd ~
mkdir go
7 使用go version查看go的版本信息。
Docker安装:
1如果已经安装旧版本docker,先将其卸载,如果没有可跳过此步。
sudo apt-get remove docker docker-engine docker.io
2 设置Docker存储库。之后就可以从存储库安装和更新Docker。
sudo apt-get -y install apt-transport-https ca-certificates
3 添加Docker的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4 更新apt软件包
sudo apt-get update
5 安装
sudo apt-get install docker-ce
6 将用户添加到用户组($USER替换成自己的用户)
sudo usermod -aG docker $USER
7 查看docker版本信息
docker version
8 常用docker命令
删除一个容器:docker rm
强制删除一个容器:docker rm -f
强制删除全部容器:docker rm -f $(docker ps -aq)
杀死所有正在运行的容器:docker kill $(docker ps -a -q)
删除所有已经停止的容器:docker rm $(docker ps -a -q)
删除所有镜像:docker rmi $(docker images -q)
强制删除所有镜像:docker rmi -f $(docker images -q)
docker镜像加速有人喜欢阿里云,有人喜欢DaoClound,具体按自己的情况进行设置,这里就不再赘述。
Docker-Compose的安装:
Docker-Compose的安装相对比较简单
1 安装python-pip
sudo apt-get install python-pip
2 安装Docker-Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3 查看Docker-Compose版本
docker-compose version
至此基础环境搭建完毕。
以上是关于Ubuntu上搭建HyperLedger Fabric过程中,执行 ./byfn.sh generate一直报错?的主要内容,如果未能解决你的问题,请参考以下文章
基于docker的 Hyperledger Fabric 多机环境搭建(上)
Ubuntu环境下搭建hyperledger fabric超级无敌详细教程