1. 程式人生 > >Hyperledger Fabric(三)—— Fabric智慧合約

Hyperledger Fabric(三)—— Fabric智慧合約

Fabric 智慧合約

  • 執行環境:以太坊虛擬智慧合約執行環境EVM,fabric執行環境是docker。
  • 鏈碼:
  1. 是應用層和區塊鏈底層的中間點。
  2. 每一個鏈碼執行環境是一個獨立的docker
  3. 使用GPRC協議與背書節點通訊,只有背書節點才能執行智慧合約
  • 鏈碼得到生命週期
  1. 打包,智慧合約的編寫和編譯。
  2. 安裝,將打包好的檔案,上傳到背書節點。
  3. 例項化,實際的安裝了,執行Init方法,只執行一次,類似於建構函式。
  4. 升級,升級和修復鏈碼。
  5. 互動,自己定義的方法的呼叫。
  • 鏈碼的互動流程

網路搭建配置的實現

  • crypto-config.yaml :用於配置組織節點的個數,參考firstnetwork去編寫
  • configtx.yaml:用於區塊聯盟中的組織資訊,配置名字和證書等的位置,參考firstnetwork去編寫。編寫完後,傳到linux對應目錄。

       

  • 進入deploy目錄,設定工作目錄為當前目錄。

       

  • 按照這個yaml檔案生成配置。
  • 建立用於存放配置的目錄

       

  • 生成系統連的創世區塊
  • -profile指定聯盟配置,outputBlock指定存放的位置。

       

  •  生成通道的創世交易
  • profile指定業務聯盟,outputCreateChannelTx存放的路徑,建立的名字叫mychannel:
  • 生成兩個組織錨節點的交易資訊
  •  將docker-compose.yaml拖進deploy目錄

       

啟動網路

  • 啟動docker,後臺執行

      

  • 檢視orderer節點的執行日誌

       

  • 與客戶端互動操作

        

  • 建立通道
  • -o指定與哪個orderer節點通訊,-c指定建立的通道名稱,-f指定使用的檔案

         

  • 加入通道

         

  • 檢視peer加入的通道列表

        

  • 指定主節點

         

 基本的網路搞定了

安裝鏈碼

-n 是安裝的名字,-v是version,-l是使用語言

  • 克隆一個會話,互動執行peer0,檢視安裝的鏈碼

  • 鏈碼例項化

  • 鏈碼互動執行

  • 多次執行查詢,得到的結果不用,因為invoke()中使用了隨機數,不要這麼做