這個是下載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"]}'