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


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

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

下載 Fabric samples

 

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的目錄。
 

生成秘鑰及相關交易信息

 

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

./byfn.sh  generate

 

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

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

 

啟動網絡

 

./byfn.sh up

 

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

  • 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網絡就搭建成功了。

 

 


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM