引言
随着区块链技术的日趋成熟,更多企业开始探索区块链的实际使用场景。HyperLedger Fabric(下称Fabric),由Apache社区开发的开源的,企业级的,带权限的分布式账本平台,被广泛应用于学术研究和企业应用领域。其查询技术是使用和开发Fabric不可或缺的一项功能模块,但由于区块链技术的去中心化特性,其查询机制的设计和常规分布式系统存在较大差异,并且存在一定的技术理解门槛。目前官方文档或相关资料对查询章节的描述通常与其它技术(如系统部署,更新等)一同描述,没有单独对查询进行描述,或缺乏原理层面的系统描述,难以理解和运用。本文较为详细的描述Fabric查询的设计原理,可作为生产和开发中系统设计的参考依据。
文章分为4个部分。首先介绍于查询相关的Fabric基础名词概念,接着介绍Fabric的经历的各查询过程以及查询对象的存储结构,最后通过描述区块链的系统结构以描述Fabric的一种特殊查询机制——跨链查询。
基本概念[1]
- 节点(Peer):一个维护一个账本的网络实体。节点会运行链码容器以实现对账本的读写操作。节点由Fabric内的成员持有和维护。
- 通道(Channel):在Fabric中,通道是私有区块链,可实现数据隔离和保证机密性。部署在一个通道内的账本由通道中的所有