【干貨干貨】configtxlator 工具介紹


這一章我們對configtxlator做一個解說。

 

1, configtxlator 他是什么,有什么用?

   configtxlator 官方說明是用於生成Hyperledger結構通道配置的實用程序;

   此工具提供:編碼(proto_encode)、解碼(proto_decode)、對比修改結構(compute_update)以及版本信息(version)

  

2, 如何使用configtxlator工具

   從工具的源碼定義上,我這里將它有分為了兩種用法,:

    (a), 工具非服務化

      

       在cli中動態增加組織的時候,我們configtxlator proto_encode或 configtxlator  proto_decode  這種方式。

       proto_encode和proto_decode兩個命令所擁有的參數是一樣的,都需要以下幾個參數設置:

              type : 消息結構體類型

              input : 輸入參數,encode(值是json格式),decode(值是proto格式的字節數組)

              output:輸出結果;根據輸入,輸出的是json或者proto格式。

 

              type包含以下幾種:

common.Block

區塊結構

common.Envelope

帶有效載荷和數字簽名的數字信封,區塊的數據部分就是序列化后的數字信封

common.ConfigEnvelope

包含鏈配置的數字信封,內容包含ConfigUpdateEnvelope

common.ConfigUpdateEnvelope

提交給排序節點的配置數字信封

common.Config

ConfigEnvelope的配置部分

common.ConfigUpdate

ConfigUpdateEnvelope的一部分

 

 

        compute_update計算修改量,命令擁有以下幾個參數

                original :原始的proto

                updated:修改后的proto

                channel_id:通道id

                output:對比計算后的目標修改配置proto

 

         舉例:將當前channel的塊消息中的配置decode為json文件

          configtxlator proto_decode --input mychannel.pb --type common.Block | jq .data.data[0].payload.data.config > mychannel.json

         Json內容:

         

 

 

       (b), 工具服務化

      

     可以執行一下命令,啟動此工具的rest服務:

     ./configtxlator start --hostname="0.0.0.0" --port=7059

     Hostname : 主機ip,默認當前機器ip

     Port:服務端口,默認7059

     服務啟動,通過路由提供一下幾種服務:

    

     MsgName對應的就是非服務化中的type。

    

     舉例:java中的使用樣例

    

 

      如果想查看計算后獲取目標修改配置的信息,可以使用common.Envelope,進行解碼查看json數據。

      具體給個方法是如何實現的,邏輯不復雜,就不做詳細描述了。


免責聲明!

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



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