Fabric1.0.0单机环境部署

从2018年6月份左右,开始接触fabric,搭建了单机或集群环境,也写了一些文档。最近整理电脑时发现,在这里分享出来。。。。

系统: linux ubuntu 16.04

安装Go

1.8以上

cd /www/download/

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz

解压缩,解压后文件夹是go

sudo tar -xzf go1.9.linux-amd64.tar.gz

 

sudo vi /etc/profile

export PATH=$PATH:/www/download/go/bin

export GOROOT=/www/download/go

export GOPATH=$HOME/go

export PATH=$PATH:$HOME/go/bin

 

source /etc/profile

go version

 

安装Docker

更新源

sudo apt-get update

安装docker

sudo apt-get install -y docker.io

修改当前用户(我使用的用户叫content2)权限

sudo usermod -aG docker content2

注销并重新登录(或关闭当前黑屏窗口重新进入),然后添加阿里云的Docker Hub镜像:

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 -v

 

安装docker-compose

Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。

sudo apt-get install -y docker-compose

docker-compose --version

 

Fabric源码下载

阿里云服务器需要修改

修改 /etc/resolv.conf 配置,将 options timeout:2 attempts:3 rotate single-request-reopen 内容注释掉,作者修改后的内容如下

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 100.100.2.136

nameserver 100.100.2.138

# options timeout:2 attempts:3 rotate single-request-reopen

sudo mkdir -p ~/go/src/github.com/hyperledger

cd ~/go/src/github.com/hyperledger

sudo git clone -b release-1.0 https://github.com/hyperledger/fabric

给fabric文件夹授权

sudo chown content2.content2-R fabric

 

生成可执行文件

cd ~/go/src/github.com/hyperledger/fabric

make configtxgen

 

 

Fabric Docker镜像的下载

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

 

检查下载的镜像列表

docker images

 

启动Fabric网络并完成ChainCode的测试

在~/go/src/github.com/hyperledger/fabric/examples/e2e_cli目录下执行启动命令,它会启动一个 mychannel 的channel

./network_setup.sh up

执行完成后,会显示

至此,整个Fabric网络已经通了。

 

这里容易出现错误,

类似这样的错误,是因为channel已经建立,命名冲突。这时候需要清除docker容器的内容,并重新执行上面的命令。

1)删除一个容器 docker rm

2)强制删除一个容器 docker rm -f

3)强制删除全部容器 docker rm -f $(docker ps -aq)

 

测试Fabric网络

以现在安装好的Example02为例,在官方例子中,channel名字是mychannel,链码的名字是mycc。我们首先进入CLI,我们重新打开一个命令行窗口,输入:

docker exec -it cli bash

 

查询a账户的余额:

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

显示余额是90

 

把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账户的余额,显示70

 

关闭Fabric网络

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli

./network_setup.sh down

 

猜你喜欢

转载自blog.csdn.net/yuch_hong/article/details/107358684