ubuntu18.04搭建Hyperledger-fabric 1.1.0开发环境

Hyperledger-fabric 1.1.0更新已经两三个月了,ubuntu18.04也更新了快一个月了。今天在ubuntu18. 04上进行了Hyperledger-fabric 1.1.0的环境搭建,现在把过程记录下来。

Go语言环境
下载Go环境的压缩包,这里可以自己在线下载点击进入官网下载,然后手动解压后复制到/usr/local路径下。这里需要超级权限打开文件夹才可以复制进去,ubuntu输入sudo nautilus,Linux-mint输入sudo caja即可打开。

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
1
2
编辑环境变量,之前我编辑的环境变量都只是当前用户的,以至于root权限下没有Go环境,这次我修改的是全局的配置文件,对所有用户都生效。依次输入下面指令。username为你的用户名 
sudo setfacl -m u:username:rwx /home 
mkdir /home/gopath 
sudo gedit /etc/profile 
将下面信息追加到文本的末端

export GOROOT=/usr/local/go
export GOARCH=amd64
export GOOS=linux
export GOPATH=/home/gopath
export GOBIN=$GOROOT/bin
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
1
2
3
4
5
6
export GOPATH=/home/gopath这一句尤为重要,这是你自己创建的Go的工作路径,换句话说你的fabric源代码得安装到这个路径下。 
修改完之后要注销登出,source /etc/profile这个命令只对当前终端Go环境有效,重新开启终端是识别不出Go环境的。 
注销重新登陆后,打开终端输入:go version 
出现:go version go1.9 linux/amd64说明配置成功,你还可以使用root用户验证一下。

输入: 
sudo chmod -R 777 /home 
mkdir /home/gopath

安装docker
这里本人是参照官网安装的,不过官网是英文,这里还是给出相关步骤吧。

卸载旧版本的Docker,没安装的就跳过此步。 
sudo apt-get remove docker docker-engine docker.io

开始安装

sudo apt-get update
1
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
1
2
3
4
5
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
1
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
1
2
3
4
sudo apt-get update
sudo apt-get install docker-ce
1
2
完成上面操作之后输入:docker version 
出现下面内容:

Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Wed Jun 20 21:43:51 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Got permission denied..............
1
2
3
4
5
6
7
8
9
10
11
12
此时已经安装号Docker了,但是还需要一些小操作。

sudo usermod -aG docker XXX(XXX是当前用户名)
1
下面添加阿里云的Docker镜像: 
输入:sudo mkdir -p /etc/docker 
输入:sudo gedit /etc/docker/daemon.json 
将以下内容写入文本:

{
 "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
1
2
3
输入:sudo systemctl daemon-reload 
输入:sudo systemctl restart docker 
再次输入:docer version 
如果还有权限不足提示,输入:sudo chmod -R 777 /var/run/docker.sock就可以了。 
正确的返回应该是下面这样:

Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Wed Jun 20 21:43:51 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Wed Jun 20 21:42:00 2018
  OS/Arch:      linux/amd64
  Experimental: false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
安装docker-compose

sudo apt-get install python-pip 
sudo pip install docker-compose 

输入:docker-compose -version 
出现:docker-compose version 1.17.1, build unknown即可。

Fabric源码下载
这里使用的是1.1.0版本。

mkdir -p /home/gopath/src/github.com/hyperledger
cd /home/gopath/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
cd /home/gopath/src/github.com/hyperledger/fabric
git checkout v1.1.0
1
2
3
4
5
这里的路径尤为重要,还记得export GOPATH=/home/gopath,创建路径的时候千万要一致。 
如果这里下载有问题,可以前往github上字形下载源码包。放到对应的目录就可以了。 
需要注意的是,普通用户对home目录是没有写权限的,为了方便你需要修改一下权限:sudo chmod -R 777 /home 
这里千万要注意,很多朋友没有成功编译出cryptgen文件就是路径的问题!!!!

下载docker镜像
cd /home/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh
git clone https://github.com/hyperledger/fabric-samples/tree/release-1.0
cd /home/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/fabric-samples/scripts
source bootstrap.sh
1
2
3
4
5
这里需要耐心的等待! 
想必大家也注意到了,samples都集成过来了。 
输入:docker images 
出现如下:

REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
hyperledger/fabric-ca          1.2.0-rc1           708a0286b4ac        3 days ago          248MB
hyperledger/fabric-ca          latest              708a0286b4ac        3 days ago          248MB
hyperledger/fabric-tools       1.2.0-rc1           cc581750db33        4 days ago          1.51GB
hyperledger/fabric-tools       latest              cc581750db33        4 days ago          1.51GB
hyperledger/fabric-ccenv       1.2.0-rc1           e1046545b08e        4 days ago          1.42GB
hyperledger/fabric-ccenv       latest              e1046545b08e        4 days ago          1.42GB
hyperledger/fabric-orderer     1.2.0-rc1           d1b2eedd73b3        4 days ago          147MB
hyperledger/fabric-orderer     latest              d1b2eedd73b3        4 days ago          147MB
hyperledger/fabric-peer        1.2.0-rc1           1be334200880        4 days ago          154MB
hyperledger/fabric-peer        latest              1be334200880        4 days ago          154MB
hyperledger/fabric-zookeeper   0.4.8               1ffd64c98bad        8 weeks ago         1.43GB
hyperledger/fabric-zookeeper   latest              1ffd64c98bad        8 weeks ago         1.43GB
hyperledger/fabric-kafka       0.4.8               12d61042b176        8 weeks ago         1.44GB
hyperledger/fabric-kafka       latest              12d61042b176        8 weeks ago         1.44GB
hyperledger/fabric-couchdb     0.4.8               12eb8cf6aba1        8 weeks ago         1.6GB
hyperledger/fabric-couchdb     latest              12eb8cf6aba1        8 weeks ago         1.6GB
hyperledger/fabric-baseos      amd64-0.4.8         83b7b016c8e5        8 weeks ago         128MB
hyperledger/fabric-tools       x86_64-1.0.0-beta   ae6b0f53cb70        12 months ago       1.32GB
hyperledger/fabric-couchdb     x86_64-1.0.0-beta   31bbbec3d853        12 months ago       1.48GB
hyperledger/fabric-kafka       x86_64-1.0.0-beta   c4ac1c9a4797        12 months ago       1.3GB
hyperledger/fabric-zookeeper   x86_64-1.0.0-beta   2c4ebacb6f00        12 months ago       1.31GB
hyperledger/fabric-orderer     x86_64-1.0.0-beta   11ff350dd297        12 months ago       179MB
hyperledger/fabric-peer        x86_64-1.0.0-beta   e01c2b645f11        12 months ago       182MB
hyperledger/fabric-javaenv     latest              61c188dca542        12 months ago       1.42GB
hyperledger/fabric-javaenv     x86_64-1.0.0-beta   61c188dca542        12 months ago       1.42GB
hyperledger/fabric-ccenv       x86_64-1.0.0-beta   7034cca1918d        12 months ago       1.29GB
hyperledger/fabric-ca          x86_64-1.0.0-beta   e549e8c53c2e        12 months ago       238MB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
实例演示
这想必是最精彩的环节了!开始吧。 
cd /home/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/fabric-samples/first-network 
./byfn.sh -m generate 

如果这里提示你/opt/gopath/src/github.com/hyperledger/fabric...........没有这个文件或目录,那就输入sudo ln -s /home/gopath /opt/gopath创建一个软连接就可以了。

然后会问你:输入y即可,如下: 
Generating certs and genesis block for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds 
Continue? [Y/n] y 

稍等一会,你会看到:


#################################################################
#######    Generating anchor peer update for Org2MSP   ##########
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP
2018-06-26 07:58:30.055 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-06-26 07:58:30.065 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-06-26 07:58:30.066 CST [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
+ res=0
+ set +x
1
2
3
4
5
6
7
8
9
10
等上面这段完成之后,接着输入:./byfn.sh -m up. 
同样会问你,输入y即可。然后出现下面:

===================== Query successful on peer1.org2 on channel 'mychannel' ===================== 

========= All GOOD, BYFN execution completed =========== 


 _____   _   _   ____   
| ____| | \ | | |  _ \  
|  _|   |  \| | | | | | 
| |___  | |\  | | |_| | 
|_____| |_| \_| |____/  
1
2
3
4
5
6
7
8
9
10
完美,接着输入:docker exec -it cli bash运行cli容器。 
输入:peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}' 
显示如下: 
90 
就说明a的余额为90。 
成功了,这里有一些小小的收获。

部署合约的时候看到peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/,其实这个合约就是e2e_cli使用的智能合约。
--------------------- 
作者:hellomorld 
来源:CSDN 
原文:https://blog.csdn.net/sinat_36742186/article/details/80809954 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值