Ubuntu部署基于Fabric的虚拟区块链服务

关于Hyperledger Fabric的部署适合在Ubuntu或其它Linux上进行,本例在Ubuntu16.04LTS上操作。如果是Windows、MacOS系统,建议安装Virtual Box,在虚拟机上部署区块链环境。

准备:

1、源需要换成国内源,这样速度能快很多。

参考:http://www.linuxidc.com/Linux/2016-06/132518.htm

2、安装好git,ssh服务,配置go语言环境(我的version是1.9.2,官网下载最新版本,注意项目路径名与src包一致!!),安装docker容器(我的version是1.12.6,建议1.12以上!!)并启动容器服务(配置过程比较简单,自行百度),分别输入需要的环境名字来检查是否正确安装,确认安装正确继续。

参考:http://www.linuxidc.com/Linux/2017-01/139985.htm

3、修改你的权限

sudo usermod -aG docker USER_NAME

4、注销并重新登录,然后添加阿里云的Docker Hub镜像(一定要注销后再重启docker服务!!)

参考:https://cr.console.aliyun.com/#/accelerator/

5、然后重新加载守护进程,输入以下两行命令

sudo systemctl daemon-reload
sudo systemctl restart docker

6、安装python-pip

sudo apt-get install python-pip

7、安装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


部署:

1、建立fabric目录,用Git拉取源码

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

2、切换v1.0.0版本的源码

cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

3、下载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会看到如下内容

Ubuntu部署基于Fabric的虚拟区块链服务_第1张图片

启动:

1、在e2e_cli文件夹内,启动Fabric网络的自动化脚本。

./network_setup.sh up

2、启动成功,则出现如下:

Ubuntu部署基于Fabric的虚拟区块链服务_第2张图片


测试:

1、测试官方example,打开另一个终端:

docker exec -it cli bash

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

Ubuntu部署基于Fabric的虚拟区块链服务_第3张图片

余额(Query Result)显示为90。

2、再把a账户的余额全部转给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","90"]}'

运行结果为:

Ubuntu部署基于Fabric的虚拟区块链服务_第4张图片

3、再次查询a的余额,结果为:

Ubuntu部署基于Fabric的虚拟区块链服务_第5张图片

4、退出cli容器:exit

5、关闭Fabric网络:./network_setup.sh down


PS: 链码调试方法(在fabric-sample下)

# 启动网络
1$ cd fabric-samples/chaincode-docker-devmode
1$ docker-compose -f docker-compose-simple.yaml up -d

# 进入链码容器
2$ docker exec -it chaincode bash

# 编译链码
2$ cd [链码目录]
2$ go build -o [可执行文件]

# 部署链码
2$ CORE_PEER_ADDRESS=peer:[端口号] CORE_CHAINCODE_ID_NAME=[实例]:0 ./[可执行文件]

# 启动测试容器
3$ docker exec -it cli bash

# 安装链码
3$ cd ..
3$ peer chaincode install -p [可执行文件的所在目录路径] -n [实例] -v [版本号]

# 实例化链码
3$ peer chaincode instantiate -n [实例] -v [版本号] -c '{"Args":["函数","参数","参数"]}' -C [通道]

# 调用链码
3$ peer chaincode invoke -n [实例] -c '{"Args":["函数", "参数", "参数"]}' -C [通道]


docker常用命令:

1)删除一个容器

docker rm

2)强制删除一个容器

docker rm -f

3)强制删除全部容器

docker rm -f $(docker ps -aq)

4)删除一个镜像:

docker rmi

5)强制删除一个镜像:

docker rmi -f

6)强制删除全部镜像

docker rmi -f $(docker images -q)



你可能感兴趣的:(区块链)