之前在搭建blockchian network 时遇到./byfn.sh up的错误,第一次开启之后,后面再次开启遇到错误:
ERRO 001 Cannot run peer because cannot init crypto, missing /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp folder
!!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!
================== ERROR !!! FAILED to execute End-2-End Scenario ==================
出错原因分析:
1、很有可能是 网络开启之后未关闭 ./byfn.sh down
2、或者未将二进制文件添加进PATH
路径
You may want to add that to your PATH environment variable so that these can be picked up without fully qualifying the path to each binary. e.g.:export PATH=<path to download location>/bin:$PATH
我的解决方法是:
删除docker,重新安装docker;删除fabric-samples案例,重新下载,下载命令
cd 到源码安装文件夹,下载fabric-samples代码
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.2.0 1.2.0 0.4.10 之后,你就会看到你当前处于fabric-samples
文件夹内。 输入docker images
之后,会看到多个docker 镜像。 在fabric-samples
目录的/bin
文件夹下,会看到多个二进制文件。
将二进制文件添加进PATH路径
进入fabric-samples/bin文件夹内,输入pwd命令,来获取当前的路径
复制上面的路径。打开~/.bashrc文件。将上面的路径添加到PATH路径下。
vim ~/.bashrc
举例:我将下面的内容添加进了我的~/.bashrc文件的最下面。请根据自己的实际路径来配置该变量。
# set fabric-samples bin
export PATH=$GOPATH/src/fabric-samples/bin:$PATH
之后,保存并退出。执行source ~/.bashrc命令
检查二进制文件是否生效
在任意目录下输入: cryptogen version
root@JDu4e00u53f7:~/gowork/src# cryptogen version
cryptogen:
Version: 1.2.0
Commit SHA: cae2ad4
Go version: go1.10
OS/Arch: linux/amd64
总结
如果你发现每次重新登录的时候,都需要执行source ~/.bashrc命令生效二进制文件。你可以参考如下链接来解决该问题:https://www.jianshu.com/p/c4946024b946