从源码中解析fabric区块数据结构(一)
1.Gossip in Hyperledger Fabric2.Ubuntu18.04安装Fabric3.Fabric-sdk-go操作Chaincode4.[比特币]比特币中的密码学原理5.一文读懂区块链(二)6.一文读懂区块链(一)7.chaincode中使用第三方库8.[比特币]比特币中的匿名性9.[比特币]比特币引发的思考10.[比特币]比特币中的分叉11.[比特币]比特币中的挖矿难度12.[比特币]比特币中的网络13.[比特币]比特币的实现14.[比特币]比特币中的共识协议15.[比特币]比特币中的数据结构16.Merkle Tree 简介17.Fabric 2.x 智能合约开发记录18.Fabric区块链浏览器(3)19.基于密码学的身份混淆系统 -- idmix20.Fabric区块链浏览器(2)21.Fabric区块链浏览器(1)22.Hyperledger Fabric系统链码介绍23.跟着文档学Fabric:获取通道配置
24.从源码中解析fabric区块数据结构(一)
25.Fabric升级示例26.Fabric网络升级(四)27.Fabric网络升级(三)28.Fabric网络升级(二)29.Fabric网络升级(一)30.Fabric网络升级(总)31.根据TxID获取上链数据32.PoW、PoS、DPoS和PBFT简介33.RPC连接btcd网络34.BTC交易流程35.MerkleTree in BTC36.BTC 地址从源码中解析fabric区块数据结构(一)
前言
最近打算基于fabric-sdk-go实现hyperledger fabric浏览器,其中最重要的一步就是解析fabric的上链区块。虽说fabric是Golang实现的,但直到2021年2月1号才发布了第一个稳定版fabric-sdk-go,而且官方几乎没有响应的文档介绍。对于fabric-sdk-go,基本都是参照源码中的测试用例来使用;而要实现区块链浏览器,仅靠测试用例还差好多,特别是对出块信息的解析。
通过event.Client.RegisterBlockEvent()
可以监听fabric的出块事件,但返回的信息中有用的是一个BlockEvent
类型的chan
,定义如下:
// BlockEvent contains the data for the block event type BlockEvent struct { // Block is the block that was committed Block *cb.Block // SourceURL specifies the URL of the peer that produced the event SourceURL string }
区块链浏览器需要的所有信息基本都包含在Block
中,其定义如下:
// This is finalized block structure to be shared among the orderer and peer // Note that the BlockHeader chains to the previous BlockHeader, and the BlockData hash is embedded // in the BlockHeader. This makes it natural and obvious that the Data is included in the hash, but // the Metadata is not. type Block struct { Header *BlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` Data *BlockData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` }
本文作为区块链浏览器系列的开篇,结构体中各字段的含义会在之后的文章中一一介绍,这里就不再过多介绍。接下来将以类图的形式来解析区块中包含的信息。
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin92
Github: mengbin92
cnblogs: 恋水无意
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!