知识卡片

区块用元数据索引项而非物理删除标记无效交易

专业/工作 · 531.s

内容

Fabric的区块结构分三段:Header只放区块号、前一区块哈希值、当前区块哈希值,做链式定位;Data存放这批交易本身;Metadata则是四个独立的索引项——区块签名、最新配置区块号、Orderer共识组件参数,以及关键的”交易过滤器”(TRANSACTIONS_FILTER)。交易过滤器是一个和Data里交易数组等长的验证码数组,逐条记录每笔交易最终是否有效。这正是[[无效交易不丢弃而是打包留档]]在数据结构层面的落地:无效交易依然原样留在Data里,只是在Metadata这个独立字段里被打上”无效”标记,而不是被物理删除或挪到别处——用一个旁路的元数据字段而非侵入交易列表本身,就完成了”保留完整记录”与”标记有效性”两件事的解耦。

参考来源

《Hyperledger Fabric技术内幕:架构设计与实现原理》第1章《区块链基础与Hyperledger Fabric架构》