Fabric1.0.0 网络搭建

参考文章:

《1-快速搭建一个Fabric1.0环境 | 基于shell脚本的方式》https://zhuanlan.zhihu.com/p/35063055
《Fabric CA/数字证书管理》http://www.cnblogs.com/kaixinyufeng/p/9803413.html
《免sudo使用docker命令》https://www.jianshu.com/p/95e397570896

完全按照上述前两篇文章搭建是不成功的,所以综合了这两篇以及第三篇文章。

一、安装Go语言

下载最新版的go

wget https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.8.4.linux-amd64.tar.gz

编辑当前用户的环境变量

vi ~/.profile

添加以下内容

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

编辑保存并退出vi后,执行source命令使修改生效

source ~/.profile

重启会话

newgrp - docker

把go的目录GOPATH设置为当前用户的文件夹(该路径可以自己修改)下,所以记得创建go文件夹

cd ~
mkdir go

二、安装Docker

下载Docker

sudo apt-get install docker.io

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

启动Docker服务

sudo service docker start

三、安装Docker-compose

Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python-pip,运行脚本:

sudo apt-get install python-pip

然后是安装docker-compose,从官方网站(https://github.com/docker/compose/releases)下载也可以从国内的进行DaoClound下载,为了速度快接下来从DaoClound安装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

四、免sudo使用docker命令

查看docker组

cd /var/run
ll | grep docker

如果没有docker组,则创建

sudo groupadd docker

将用户(新建用户也可以)加入到docker组

sudo gpasswd -a ${USER} docker

重启 docker 服务

sudo service docker restart

重启会话

newgrp - docker

五、Fabric源码下载
可以用 goget命令下载源码
go get github.com/hyperledger/fabric

如果下载失败也可以使用git命令下载源码

mkdir -p ~/go/src/github.com/hyperledger 
cd ~/go/src/github.com/hyperledger 
git clone https://github.com/hyperledger/fabric.git

由于Fabric一直在更新,所有我们并不需要最新最新的源码,需要切换到v1.0.0版本的源码即可:

cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0
或者
git branch  #当前分支
git branch -r #查看所有分支
git checkout origin/release-1.0  #切换分支
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

六、下载Fabric镜像

官方文件提供了批量下载的脚本。我们直接运行:

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

所有会用到的Fabric docker镜像都会下载下来了。

七、生成MSP证书

调用e2e的工具生成证书

./generateArtifacts.sh

证书的配置文件:crypto-config.yaml
生成的证书目录在cryto-config目录下面
不执行这一步也可以启动网络。

八、启动Fabric网络

./network_setup.sh up

九、进行Example02 ChainCode的测试

重新打开一个命令行窗口,输入:

docker exec -it cli bash

运行以下命令可以查询a账户的余额

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

结果:
在这里插入图片描述

把a账户的余额再转20元给b账户,运行命令

peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'

结果:
在这里插入图片描述

此时可以查看a的余额
在这里插入图片描述
此时可以查看b的余额
在这里插入图片描述

结束网络服务

./network_setup.sh down

十、出错无法启动网络的情况

在这里插入图片描述

解决方法:

// 停止Docker container
docker stop $(docker ps -a -q)
// 删除container
docker rm $(docker ps -a -q)

猜你喜欢

转载自blog.csdn.net/shuizhongmose/article/details/88555997