【干货干货】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数据。
具体给个方法是如何实现的,逻辑不复杂,就不做详细描述了。
最新文章
- OAM
- 【URAL】1960. Palindromes and Super Abilities
- Java自动装箱拆箱
- Extjs4新特性
- CentOS6.5编译安装Redis
- 深入了解MyBatis返回值
- “百度杯”CTF比赛 九月场_Code(PhpStorm)
- asp.net MVC jsonp跨域获取数据
- WEEX入坑指南(1)
- C语言 · 求先序遍历
- 关于Class对象、类加载机制、虚拟机运行时内存布局的全面解析和推测
- Service 中的 onStart 和 onStartCommand
- linux 下的常用操作命令
- CentsOS6 Tomcat7 报javax.management.InstanceNotFoundException 解决办法
- cygwin简介及使用
- python测试开发django-18.admin后台中文版
- Python开源应用系统
- Openvpn 日常问题解决
- CentOS命令top下你不一定懂的cpu显示信息
- 【精华】部署与管理ZooKeeper(转)