蝸牛講-fabric實戰之搭建fabric samples網絡

這一篇實戰的第一篇,是最最基本的環境搭建,部署fabric官網上提供的fabric samples的第一個網絡。後續文章會對其中的關鍵步驟進行分解。git

假設你已經安裝好了docker和相關語言環境,我這裏用的是go語言。 github

下載 Fabric samplesgolang

 

curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0
該命令會下載1.1.0 版本相關的samples代碼,執行環境,二進制文件和docker鏡像文件(包括 fabric-ca,fabric-tools,abric-orderer,fabric-peer,
fabric-kafka,fabric-couchdb 等)。命令執行完成後,會在當前目錄生成一個 fabric-samples的目錄。
 

生成祕鑰及相關交易信息docker

 

cd到fabric-samples/first-network目錄下,運行數據庫

./byfn.sh  generate

 

該命令是用於生成fabric網絡中的組件祕鑰信息以及初始的交易信息。包括:ordering服務和節點的祕鑰信息(msp和tls的證書),ordering服務的創世塊,管道配置交易信息(channel.tx),和錨點的更新交易信息。bash

命令運行完成後,能夠看到first-network下的crypto-config 和channel-artifacts文件夾下都新生成了一些文件。Channel-artifacts下是新生成的創世塊和管道交易信息,以及錨點更新交易信息。Crypto-config裏則是ordering 服務和節點相關的祕鑰信息。微信

 

啓動網絡網絡

 

./byfn.sh up

 

 該命令啓動了一個默認設置的網絡,這些默認的設置包括:curl

  • channel名字爲myChannel區塊鏈

  • cli的timeout時間爲10s

  • 延遲爲3s

  • 使用的docker-compose-file爲docker-compose-cli.yaml

  • 數據庫類型爲goleveldb

  • 語言爲go語言

  • 使用最新的鏡像啓動網絡 

     

完整的命令以下:

./byfn.sh up –c myChannel –t 10 –d 3 –f docker-compose-cli.yaml –s goleveldb –l go –i latest
 

啓動的流程爲:

  1. 建立四個節點

  2. 建立了一個ordering服務

  3. 建立了一個cli服務,爲了下面能夠使用 docker exec -it bash 進入到各個容器內。

  4. 建立一個channel

     peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --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
     

     

  5. 分別把四個節點加入到這個channel中

     
      
    peer channel join -b mychannel.block
     
     
  6.  以後更新這些加入到myChannel的節點所屬的ordering服務已經msp信息

    peer channel update -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/Org2MSPanchors.tx --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
     

     

  7. 安裝默認的chaincodepeer0.org2節點上

    peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/
     

     

  8. 實例化chaincode

    peer chaincode instantiate -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 -l golang -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P 'OR    ('\''Org1MSP.peer'\'','\''Org2MSP.peer'\'')'
     

     

  9. 最後作了一步對鏈碼的驗證工做。

    查詢改交易

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

    調用交易

    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","10"]}'
     

     

到這裏咱們整個網絡已經啓動完成。這個時候能夠看下運行的容器狀況,經過docker ps能夠查看到相關容器信息

至此,一個簡易的fabric網絡就搭建成功了。

 

 


覆蓋完整的區塊鏈知識體系,從入門到源碼,這裏有真正想要的區塊鏈技術,歡迎你們關注微信號:蝸牛講技術。掃下面的二維碼

相關文章
相關標籤/搜索