1、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须要编辑环境变量才能生效:java
输入:gedit ~/.profilepython
填入下面内容:
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
linux
输入:
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(还能够下载安装包自行安装)git
将当前用户添加到Docker的组中:sudo usermod -aG docker 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
3、安装docker-compose
第一步:sudo apt-get install python-pip
第二步:
方式1终端输入:sudo pip install docker-compose
方式2终端输入: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源码下载
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
五、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
七、测试网络。
终端在当前文件夹下:./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)
问题说明:
问题一:输入ls,若是你当前位于root文件夹,那么你依然能够按照下面步骤实现,我就是如今先root文件夹中实现,在home文件夹下始终有错,出现错误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 ,从新装可能会去除这个错误,但我将在root下的go文件夹复制(命令复制)过去就能够了,你可能须要输入sudo chown -R XXX(你的用户名) go更改权限。
第四次安装了,这个错误是由于配置文件没有生成,解决方法是先生成必备的工具,具体看后面问题 二次补充的问题一。
问题二:no such id: hyperledger/fabric-zookeeper:x86_64-1.0.0,遇到这个问题的时候我直接想换系统了,各类说是bug,最后我感受就是缺失某些文件才会这样。我以前安装docker使用的是方式二,巧合之下我在再次输入sudo apt-get install docker-engine指令进行安装。错误就这样消失了。
这个问题是由于镜像没有下载成功,从新下载就能够了。
第二次安装补充:
问题一:没有crypto文件。从4开始重装可能会解决,反正我能够了。
这里后来参考了一下书本,这些工具在fabric-baseimage镜像中,也是一个基础镜像,但咱们以前并无安装这个镜像,这里自行百度安装吧。其实你也能够从安装成功者复制一份go文件夹(表示屡试不爽,就是有一些权限的小问题)。第三次安装了,这里给出解决方案,请参考个人另外一篇博客http://blog.csdn.net/sinat_36742186/article/details/78940770(复制粘帖打开)里被解决的问题一。第四次安装也终于知道是怎么回事了,首先在root用户下输入:go version;正常应该输出没有安装的提示,解决步骤以下:
输入:gedit ~/.profile
填入下面内容:github
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
golang
输入:source ~/.profile
docker
对,你没有看错,就是在设置一次路径,注意这里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
再开启网络进行测试 ./network_setup.sh up
当页面再次
===================== All GOOD, End-2-End execution completed =====================
_____ _ _ ____ _____ ____ _____
| ____| | \ | | | _ \ | ____| |___ \ | ____|
| _| | \| | | | | | _____ | _| __) | | _|
| |___ | |\ | | |_| | |_____| | |___ / __/ | |___
|_____| |_| \_| |____/ |_____| |_____| |_____|
总结:不少东西不是重装能解决,也不是重装就能解决全部问题。
补充:这里补充编译configtxgen
工具
json
这里须要注意一开始的配置文件go path路径:ubuntu
1. sudo -iapi
2. 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
3.
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