• 【干货干货】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数据。

          具体给个方法是如何实现的,逻辑不复杂,就不做详细描述了。

  • 相关阅读:
    Android笔记:数据储存
    Android笔记:管理所有活动
    Android随笔:属性
    Android笔记:限定符
    Android笔记:ninepatch
    Android笔记:获取屏幕信息
    js自动完成
    动态生成实体类
    EF框架学习手记
    js遮罩效果
  • 原文地址:https://www.cnblogs.com/zjlong/p/11232177.html
Copyright © 2020-2023  润新知