hyperledger fabric 1.0 mac环境搭建并运行示例e2c_cli

简要:hyperledger fabric感觉还存在很多问题,在安装过程中,各式各样的问题,亲测成功运行e2e_cli示例,特来记录一下,或许可以帮助大家少走几步弯路。

环境安装:

GOlang

Docker(mac下已包含docker-compose无需额外安装)

Node(8.9.0)

下载后进行默认安装即可。

环境配置:

环境变量配置(需注意处)

进入当前用户目录,查看目录文件是否含有.bash_profile,如果没有自行创建一个。

cd ~
ls -a
[sudo mkdir .bash_profile]创建文件,非必执行
vi .bash_profile //编辑文件

录入所需配置信息

export GOROOT=/usr/local/go
export GOPATH=/opt/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

GOROOT为安装位置,确保和自身GOLang的目录一致

GOPATH为自定义位置

创建目录,下载fabric,并进入:

mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
cd fabric
git tag
git checkout v1.0.0

 

注意:这里选用v1.0.0版本,因为docker所需镜像文件版本1.0.0版本都有。1.1.0版本不全,大部分有稳定版(其中hyperledger/fabric-couchdb、hyperledger/fabric-kafka、hyperledger/fabric-zookeeper为preview版本),愿意尝试最新版本,可以checkout v1.1.0版本。

docker 镜像地址

接下来下载平台二进制编译文件和docker镜像:

cd fabric/scripts
chmod +x bootstrap-1.0.0.sh(非必执行,无法执行时,进行提权)
./bootstrap-1.0.0.sh

注意:如果无法下载,需翻墙。

这里下载两部分:

第一部分为二进制编译文件,文件保存在当前目录,如果没有此查看上线目录是否多了一个bin目录,将bin目录移至fabric/release/darwin-amd64目录下。最终结果为:

第二部分为docker镜像:

运行命令查看结果:

docker images


如果全部存在表示镜像文件下载成功。

 

如果镜像文件缺少某个,或只想下载某个可执行以下命令:

 

如下载fabric-zookeeper:

docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0

x86_64-1.0.0可修改为对应下载版本号。

如果手动pull成功后发现没有latest版本号,执行以下操作:

docker tag hyperledger/fabric-zookeeper:x86_64-1.0.0 hyperledger/fabric-zookeeper

 

至此环境配置完成。

下面运行e2c_cli示例:

cd fabric/examples/e2e_cli

初始化网络配置文件:

./generateArtifacts.sh

运行成功后将生成crypto-config目录及channel-artifacts目录中的文件:
crypto-config目录中包含peer节点和orderer节点MSP证书。

channel-artifacts目录包含orderer服务创世块、通道配置创世块、org锚节点配置文件。

接下来启动网络:

./network_setup.sh up
#关闭网络
./network_setup.sh down
#重启网络
./network_setup.sh restart

如果能看到下图,则表示启动成功。

反正我是没有一次就看到过这里。。。。哭晕好几天。

以下记录错误处理:

1、提示networker网络未找到,尝试修改e2e_cli/base/peer-base.yaml

大概15行:保持与e2e_cli目录名一致

CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2ecli_default
改为
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default

2、提示docker相关文件未找到,则进入容器,查看对应目录下映射是否正常。

docker ps -a
docker attach 容器ID
或
docker exec -it 容器name bash

3、如果有一小段时间未操作,启动网络时提示初始化网络配置文件错误,尝试清除所有容器,并删除crypto-config目录及channel-artifacts目录下相关文件。

#执行命令结束所有容器和镜像
network_setup.sh down
#手动结束容器和镜像
#查看所有容器
docker ps -a
#强制删除所有容器
docker rm -f $(docker ps -aq)
#强制删除某个或多个容器
docker rm -f 容器ID 容器ID
#查看docker镜像
docker images
#删除某个或多个镜像
docker rmi 镜像ID 镜像ID

4、如果出现错误,Error: Error endorsing chaincode: rpc error: code = Unknown desc = Timeout expired while starting chaincode mycc:1.0(networkid:dev,peerid:peer0.org2.example.com

可以尝试如下操作,查看镜像中是否这些相关记录。如果有,删除掉重新执行一次。

#删除命令:
docker rmi db87e1bbac52 634d99d515b5 71756a681107
#rmi 后面为镜像ID

已上为记起来的问题,如果有在启动e2e_cli遇到别的问题,可以回复评论。

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值