链课堂01 | 解密超级账本-Fabric运行机制
区块链已成为当下最受关注的技术。从最初比特币的爆红,到基于以太坊的ICO项目遍地开花,大众的目光被各类应运而生的加密货币牵引着,交易投资的热情日益高涨。相比之下,区块链技术相关的企业项目却没有得到太多关注。
然而,国内众多知名企业,如京东、华为等,都在积极部署企业级的区块链项目。并且,他们无一例外地选择了可监管、部分去中心化、高性能的联盟链。
联盟链究竟有何“魅力”,能得到如此多大企业的青睐?今天,小编将通过介绍一个基于联盟链的项目—Hyperledger Fabric,为大家抛砖引玉。
说起联盟链,就不得不提到超级账本(Hyperledger)。它是linux基金会下的一个区块链项目,由科技公司如IBM、英特尔,金融公司如GP摩根,以及其他联合机构于2015年提出。目前,Hyperledger已有140多个成员,其中1/4来自中国。中国技术组主要由万达、华为、IBM构成,职责包括中国地区及中国会员的需求提供,以及代码的推进。大量基于超级账本技术的企业界区块链项目已经成功落地。
Hyperledger包括4个框架项目:Sawtooth、Iroha、Fabric、Burrow。Fabric是其中最广为人知的一个,也是最早加入超级账本的顶级项目。它具有完备的权限和审查管理、细粒度的隐私保护,以及可插拔、可扩展的实现框架。目前代码提交数量近6000次,核心代码约10万行,可以说是一个相当的活跃的项目。
本文将主要介绍Fabric的运行机制和原理,之后还会陆续更新包括更深层的Fabric开发指南,及更广阔的Fabric应用场景和实例等内容,大家敬请期待。
➤Identity,也就是身份管理。由于身份管理的重要性,Fabric把原有的Membership service抽离出来作为单独的模块Fabric-CA。Fabric作为非许可网络,采用数字证书机制来实现对身份的鉴别和权限控制,CA节点实现了PKI服务,负责对身份证书的生成、撤销等。
➤Chaincode(链码)源自智能合约的思想,并进行了进一步扩展,支持Java、Go等高级编程语言。运行时靠容器和状态机实现处理逻辑。
➤Blockchain&Transactions,Fabric采用和公有链类似的区块链存储结构。运行时有File System(Blockchain)、Block Index、World State、History Index四个存储结构,其中World State存储一组变量的集合,支持CouchDB,提供丰富的富查询接口。