ubuntu/linux mint搭建hyperledger-fabric开发环境

GO环境(建议方式2,版本较新)。

方式1:
sudo apt-get install golang
方式2:
wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
方式2需要编辑环境变量才能生效:
输入:gedit ~/.profile
填入下面内容:

export GOROOT=/usr/local/go
export GOARCH=amd64
export GOOS=linux
# `username修改为你自己Linux下的用户名`
export GOPATH=/home/username/gopath
export GOBIN=$GOROOT/bin
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

输入:source ~/.profile
输入:go version
出现:go version go1.9 linux/amd64 说明安装成功

安装docker

注:方式3为官网教程,个人比较推荐。
方式1终端输入:
sudo apt-get install docker.io
方式2终端输入:
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
方式3:
参考官网-https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-docker-ce-1(还可以下载安装包自行安装)
将当前用户添加到Docker的组中:sudo usermod -aG docker XXX
(XXX修改为你的用户名)
输入:docker version
出现如下:

Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:15:36 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:15:36 2017
 OS/Arch:      linux/amd64
 Experimental: false

说明成功安装docker。
下面添加阿里云的docker镜像。
注:这里还可以添加daocloud的镜像等其他镜像。
输入:sudo mkdir -p /etc/docker
输入“sudo gedit /etc/docker/daemon.json
将以下内容写入文本:

{
 "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}

输入:sudo systemctl daemon-reload
输入:sudo systemctl restart docker

安装docker-compose

方式一:
sudo apt-get install python-pip
sudo pip install docker-compose
方式二:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-uname -s-uname -m> ~/docker-compose

输入:sudo mv ~/docker-compose /usr/local/bin/docker-compose
输入:chmod +x /usr/local/bin/docker-compose
输入:docker-compose -version
出现:docker-compose version 1.12.0, build b31ff33

Fabric源码下载

这里使用的是1.0.0版本,推荐使用已推出的1.1.0版本
方式一,以下命令依次输入:

mkdir –p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

方式二:
直接从github上下载:https://github.com/hyperledger/fabric
下载后解压到~/go/src/github.com/hyperledger/路径下,没有的话
输入:mkdir –p ~/go/src/github.com/hyperledger创建目录(也可以一个一个的新建目录构建目录)

Fabric Docker镜像的下载

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh

这里可能下载的镜像不全,请参照
查看镜像源docker images
出现以下即可:

REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
hello-world                    latest              05a3bd381fc2        3 days ago          1.84kB
hyperledger/fabric-tools       latest              0403fd1c72c7        2 months ago        1.32GB
hyperledger/fabric-tools       x86_64-1.0.0        0403fd1c72c7        2 months ago        1.32GB
hyperledger/fabric-couchdb     latest              2fbdbf3ab945        2 months ago        1.48GB
hyperledger/fabric-couchdb     x86_64-1.0.0        2fbdbf3ab945        2 months ago        1.48GB
hyperledger/fabric-kafka       latest              dbd3f94de4b5        2 months ago        1.3GB
hyperledger/fabric-kafka       x86_64-1.0.0        dbd3f94de4b5        2 months ago        1.3GB
hyperledger/fabric-zookeeper   latest              e545dbf1c6af        2 months ago        1.31GB
hyperledger/fabric-zookeeper   x86_64-1.0.0        e545dbf1c6af        2 months ago        1.31GB
hyperledger/fabric-orderer     latest              e317ca5638ba        2 months ago        179MB
hyperledger/fabric-orderer     x86_64-1.0.0        e317ca5638ba        2 months ago        179MB
hyperledger/fabric-peer        latest              6830dcd7b9b5        2 months ago        182MB
hyperledger/fabric-peer        x86_64-1.0.0        6830dcd7b9b5        2 months ago        182MB
hyperledger/fabric-javaenv     latest              8948126f0935        2 months ago        1.42GB
hyperledger/fabric-javaenv     x86_64-1.0.0        8948126f0935        2 months ago        1.42GB
hyperledger/fabric-ccenv       latest              7182c260a5ca        2 months ago        1.29GB
hyperledger/fabric-ccenv       x86_64-1.0.0        7182c260a5ca        2 months ago        1.29GB
hyperledger/fabric-ca          latest              a15c59ecda5b        2 months ago        238MB
hyperledger/fabric-ca          x86_64-1.0.0        a15c59ecda5b        2 months ago        238MB
hyperledger/fabric-baseos      x86_64-0.3.1        4b0cab202084        4 months ago        157MB

开启一个fabric网络。

注:这里建议在root用户下进行操作。
终端在当前文件夹下:./network_setup.sh up(或sudo ./network_setup.sh up)
出现下面内容即可:

===================== All GOOD, End-2-End execution completed =====================


 _____   _   _   ____            _____   ____    _____
| ____| | \ | | |  _ \          | ____| |___ \  | ____|
|  _|   |  \| | | | | |  _____  |  _|     __) | |  _| 
| |___  | |\  | | |_| | |_____| | |___   / __/  | |___

然后依次输入:

crtl+c   
docker exec -it cli bash
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

出现:

2017-09-16 01:02:23.195 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2017-09-16 01:02:23.195 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2017-09-16 01:02:23.195 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2017-09-16 01:02:23.195 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2017-09-16 01:02:23.196 UTC [msp/identity] Sign -> DEBU 005 Sign: plaintext: 0A94070A6608031A0B089FF0F1CD0510...6D7963631A0A0A0571756572790A0161
2017-09-16 01:02:23.196 UTC [msp/identity] Sign -> DEBU 006 Sign: digest: A13E4D58990A0235864A51DFBEBA9E2E9F6FD52A515D6D384BD1D37A8ED08562
Query Result: 90//**注意这有个90**
2017-09-16 01:02:23.213 UTC [main] main -> INFO 007 Exiting.....

输入:exit
输入:./network_setup.sh down(sudo ./network_setup.sh down)

问题说明

没有什么是一帆风顺的
问题no such id: hyperledger/fabric-zookeeper:x86_64-1.0.0,遇到这个问题的时候我直接想换系统了,各种说是bug,最后我感觉就是缺失某些文件才会这样。我之前安装docker使用的是方式二,巧合之下我在再次输入sudo apt-get install docker-engine指令进行安装。错误就这样消失了。这个问题是因为镜像没有下载成功,重新下载镜像hyperledger/fabric-zookeeper:x86_64-1.0.0就可以了,这里也可以参考我的另一篇博客http://blog.csdn.net/sinat_36742186/article/details/78940770里面解决的问题一,这里补充下载了一些镜像,每次搭环境我都会通过这个方式补充完整自己镜像,强烈推荐

问题:出现错误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,这个错误是因为配置文件没有生成,解决方法是先生成必备的工具,在路径~/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin 没有相关的工具。
参考了一下书本,这些工具需要镜像在fabric-baseimage,也是一个基础镜像,但我们之前并没有安装这个镜像,这里自行百度安装吧。其实你也可以从安装成功者复制一份go文件夹(表示屡试不爽,就是有一些权限的小问题)。第四次安装也终于知道是怎么回事了,首先在root用户下输入:go version;正常应该输出没有安装go的提示,解决步骤如下:
输入:gedit ~/.profile
填入下面内容:

export GOROOT=/usr/local/go
export GOARCH=amd64
export GOOS=linux
# username修改为你自己Linux下的用户名
export GOPATH=/home/username/gopath
export GOBIN=$GOROOT/bin
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
输入:source ~/.profile

对,你没有看错,就是在设置一次路径,注意这里username就是普通用户。这样还没有完,直接在root用户下转到e2e文件夹下输入;./network_setup.sh up
这样应该就好了,当然如果你缺少一些编译工具g++的话还请自行安装。

问题:这是在启动网络进行测试的时候出现以下问题。

org1.example.com
Error generating MSP for org org1.example.com:
open crypto-config/peerOrganizations/org1.example.com/msp/admincerts/ca.org1.example.com-cert.pem: permission denied
sed: -e 表达式 #1, 字符 85: 未终止的“s”命令↵
sed: -e 表达式 #1, 字符 85: 未终止的“s”命令↵

解决: sudo ./network_setup.sh down
再开启网络进行测试:sudo ./network_setup.sh up
当页面再次

===================== All GOOD, End-2-End execution completed =====================


 _____   _   _   ____            _____   ____    _____
| ____| | \ | | |  _ \          | ____| |___ \  | ____|
|  _|   |  \| | | | | |  _____  |  _|     __) | |  _| 
| |___  | |\  | | |_| | |_____| | |___   / __/  | |___
|_____| |_| \_| |____/          |_____| |_____| |_____|

总结:很多东西不是重装能解决,也不是重装就能解决所有问题。
补充:这里补充编译configtxgen工具
这里需要注意一开始的配置文件go path路径:

输入:sudo -i
输入:go env
显示:

GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/gopath"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build819709274=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

注意自己的gopath要和之前的一致。否则输入:gedit .profile

加入:export GOPATH=/home/username/gopath

保存输入:source .profile
输入:cd $GOPATH/src/github.com/hyperledger/fabric && make configtxgen
如果出现错误:'ltdl.h'file not foundsudo apt install libtool libltdl-dev
执行:sudo apt install libtool libltdl-dev
然后再运行make configtxgen

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值