https://www.tinywell.com/post/blocklator/
之前陆陆续续梳理了 fabric 的区块结构,包括配置区块和交易区块,最近又因为一些原因复习了一遍,然后顺便做了一个解析区块的工具 - blocklator。
这个工具前端采用 vue,后端使用 gin 框架提供 RESTful API,最后将 vue 编译的静态文件给 gin 托管,打包成一个 web 应用。
工具支持两个主要功能:1. 区块解析;2. 账本解析。区块解析可以直接解析一个区块文件,也可以解析经过 base64 编码的区块数据;账本解析则可以直接解析一个原生的 fabric 账本文件,提取出其中所有的区块,并可以逐个解析。
功能介绍
区块解析
区块解析功能用于解析 fabric 的配置区块或者交易区块,由于 fabric 工具库中提供了 configlator 专门用于解析配置块(json 文件输出),所以 blocklator 的区块解析功能重点更多的放在了交易区块的解析上。
区块解析功能支持两种形式的输入:
区块文件:通过 peer channel fetch 命令从 peer 获取的区块文件(eg:mychannel_1.block),或者通过其他方式从 fabric 中获取的区块文件。直接将文件通过区块解析功能上传,就会在后台解析出区块信息并返回前端;
区块 base64 编码数据:区块解析功能也接受以 base64 编码形式的区块数据文本。有时候应用端可能将获取到的区块数据在日志中用 base64 编码打印出来,这时候就可以从日志中提取这部分数据,然后利用 blocklator 的区块解析功能进行解析。当然你也可以结合 peer channel fetch 命令,使用 linux 的 base64 命令对获取的区块文件直接编码,然后将结果贴到 blocklator 中进行解析。(eg:peer channel fetch 3 /dev/stdout -c mychannel |base64,获取 mychannel 编号为 3 的区块,并用 base64 编码)
对于配置块的解析,主要解析出区块头等基本信息,配置块中的应用组织、共识组织等信息,网络使用的共识类型及基本共识参数信息等。
img