关于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会看到如下内容




启动:

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

./network_setup.sh up

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







测试:

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

docker exec -it cli bash

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





余额(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"]}'


运行结果为:




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




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

2)强制删除一个容器

docker rm -f <containerID>

3)强制删除全部容器

docker rm -f $(docker ps -aq)

4)删除一个镜像:

docker rmi <imageID>

5)强制删除一个镜像:

docker rmi -f <imageID>

6)强制删除全部镜像

docker rmi -f $(docker images -q)






友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信