这个是下载VMware的安装包下载完后安装就能够了html
http://sw.bos.baidu.com/sw-search-sp/software/aff3469fe5f99/VMware-workstation-full-12.5.7.20721.exe
下载CentOS7的镜像linux
http://mirror.vilkam.ru/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1611.iso
安装centos7能够参考一下这个https://jingyan.baidu.com/article/c910274be62c6bcd361d2d37.htmlgit
在命令行里面输入如下命令执行安装github
curl -sSL https://get.daocloud.io/docker | sh
安装完成后运行如下脚本将用户添加到docker组中 (注:user是你的用户)docker
sudo usermod -aG docker user
修改docker的服务配置bootstrap
sudo vi /etc/default/docker
添加如下内容windows
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"
接下来就是设置一下国内docker镜像地址,脚本是centos
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://d4cc5789.m.daocloud.io
执行完脚本后,把docker服务设置成开机启动,并启动docker服务api
systemctl enable docker.service sudo service docker restart
Compose是定义和运行多个Docker容器的应用,能够很方便的从管发拉下来一些镜像。bash
curl -L https://get.daocloud.io/docker/compose/releases/download/1.10.1/docker-compose-`uname -s`-`uname -m` > ~/docker-compose sudo mv ~/docker-compose /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
建一个文件夹,用于存放自动化部署脚本
mkdir fabric-sample cd fabric-sample
而后使用curl命令下载并运行自动化部署脚本,这个过程会比较漫长,这个会下载大量的x86_64-1.0.0的镜像,下载完以后会标签改成latest(注:这个脚本是下载的fabric 1.0.0的镜像)
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.0-beta.sh | bash
当下载完成后使用如下命令查看你下载的镜像
docker images
在前面下载的官方自动化部署脚本中已经包含了Fabric的实例脚本,运行如下命令
cd ~/fabric-sample/release/linux-amd64 ./network_setup.sh up
当出现如下界面就说明启动成功了
系统会建立1个客户端实例cli,1个orderer节点,还有4个peer节点,当前脚本包含了咱们接下来运行的mycc实例,因此还会看到三个链上代码在运行,使用如下命令查看实例
docker ps
其实咱们在前面运行./network_setup.sh up的时候系统已经运行了一个Example02的ChainCode测试,部署上去的ChainCodeName是mycc,因此接下来咱们要测试的话不能再初始化并部署一样名字的ChainCode了,咱们可使用本身另外命名的名字devincc
咱们先进入到cli容器中
docker exec -it cli bash
若是成功进入咱们会切换到该容器的root用户下,获得以下命令行目录
链上的代码须要通过install和instatiate两步,下面咱们先执行example02并指定一个名字devincc
peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
运行后会提示运行成功,并返回200
接下来是instatiate,初始化实例,设置a帐户有100,b帐户有200
peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
运行成功后会显示以下结果
使用query来查看一下a的余额
peer chaincode query -C mychannel -n devincc -c '{"Args":["query","a"]}'
下面是显示帐户a的余额
从帐户a转10到帐户b里面,调用invoke
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -c '{"Args":["invoke","a","b","10"]}'
转帐成功的的提示
再来查看一下帐户a的余额,如今变成90了
peer chaincode query -C mychannel -n devincc -c '{"Args":["query","a"]}'