一、安装docker
1、docker要求Linux内核版本不低于3.10
>>检查Linux的内核版本,如果内核版本太低,升级内核
>>查看内核的版本命令uname-a
2、根据不同的Ubuntu版本安装docker
>>查看Ubuntu版本命令lsb_release-a
3、对于16.04的Ubuntu版本安装
>>sudo apt-get installdocker-engine
4、启动
>>sudosystemctl enabledocker
>>sudosystemctl startdocke
二、安装docker-compose项目
1、安装pip工具
>>pip工具会依赖Python,而Ubuntu下默认已经安转好Python2.7
>>apt-get install python_pip
2、安转dockercompose项目
>>sudo pip install -Udocker-compose
3、校验dockercompose是否安装好
>> docker-compose -h
三、获取镜像
获取镜像的方式有4种
1.通过Dockerfile来定制镜像(虽然推荐使用这种方法,但这里并不介绍;如果要定制镜像,你得去学习docker)
2.使用社区镜像
docker pull hyperledger/fabric-peer:x86_64-0.6.1-preview \&& docker pull hyperledger/fabric-membersrvc:x86_64-0.6.1-preview \&& docker pull yeasy/blockchain-explorer:latest \ && docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-peer \&& docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-baseimage \&& docker tag hyperledger/fabric-membersrvc:x86_64-0.6.1-preview hyperledger/fabric-membersrvc
3.使用IBM认证的镜像
docker pull ibmblockchain/fabric-peer:x86_64-0.6.1-preview \&& docker pull ibmblockchain/fabric-membersrvc:x86_64-0.6.1-preview \&& docker pull yeasy/blockchain-explorer:latest \&& docker tag ibmblockchain/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-peer \&& docker tag ibmblockchain/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-baseimage \&& docker tag ibmblockchain/fabric-membersrvc:x86_64-0.6.1-preview hyperledger/fabric-membersrvc
4.从github上获取
docker pull yeasy/hyperledger-fabric-base:0.6-dp \&& docker pull yeasy/hyperledger-fabric-peer:0.6-dp \&& docker pull yeasy/hyperledger-fabric-membersrvc:0.6-dp \&& docker pull yeasy/blockchain-explorer:latest \&& docker tag yeasy/hyperledger-fabric-peer:0.6-dp hyperledger/fabric-peer \&& docker tag yeasy/hyperledger-fabric-base:0.6-dp hyperledger/fabric-baseimage \&& docker tag yeasy/hyperledger-fabric-membersrvc:0.6-dp hyperledger/fabric-membersrvc
四.准备配置文件
有两种方法
1.自己写(这里不介绍)
2.从github上获取
git clone https://github.com/yeasy/docker-compose-files
五.启动节点
现在我们假设我们是从github上获取的配置文件
1.进入pbft配置文件所在的目录,你可以看到这些文件
这是pbft目录下的文件,4-peers-with-explorer.yml没有成员服务的可在浏览器端访问4个节点配置文件;4-peers-with-membersrvc.yml带有成员服务的4个节点配置文件;4-peers-with-membersrvc-explorer.yml四个带有成员服务的节点配置文件;4-peers.yml其普通的四个节点,没有成员服务,部署交易的时候在非安全模式下部署;explorer.yml可浏览器端访问的基础配置文件、peer.yml节点基础配置文件、membersrvc.yml成员服务基础配置文件,其他文件都得继承他们。同样的在noops目录下也会有这些文件只是他们启动起来使用的共识插件是noops。
六.启动节点
docker-compose -f 4-peers.yml up ---->非安全模式
docker-compose -f 4-peers-with-membersrvc.yml up --->安全模式
docker-compose -f 4-peers-with-explorer.yml up --->通过浏览器的方式
docker-compose -f 4-peers-with-membersrvc-explorer.yml up --->安全模式下可通过浏览器访问的方式
七.另起一个终端,进入其中的一个节点
--->docker exec -it spbft_vp1_1 bash
--->docker exec -it hyperledger_vp3_1 bash
--->docker exec -it pbft_vp0_1 bash
spbft_vp1_1, hyperledger_vp3_1,pbft_vp0_1z这些是你用docker ps命令查看到的容器的名字,这里你可能需要更换成你自己的docker容器的名字
八.执行交易
进入容器后,编译chaincode_example02后,执行下面的的代码,在启动窗口中你可以看到共识的debug过程
以非安全模式部署智能合约
peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
调用交易
peer chaincode invoke -n github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'
九.安全模式下调用交易
你需要先登录一下(下面以WebAppAdmin为例),以WebAppAdmin的形式登录到节点上
peer network login WebAppAdmin -p DJY27pEnl16d
安全模式
peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'