Hyperledger 诞生动因
容易观察看,不管是比特币、以太坊还是什么其他货币,它们的涉及是完全开放的、去中心化和非授权的。对应完全开放、非授权的代价,则是什么人都可以参与,而参与的代价是需要POW以达到整个网络的完全和稳定。
所以,上述特性是和现有的绝大多数系统是冲突的,但是区块链仍然具有的优秀的特性:数据完整性、不可篡改性、分布式对等网络和数据集体维护。所以“取其精华,取其糟粕”,这种情况下Hyperledger应运而生。
Hyperleadger允许授权和授权的区块链,通过提供一个针对身份识别、可审计及隐私安全和健壮的模型,使得缩短计算周期,提供规模效率和响应各个行业应用需求称为可能。
Hyperledger 体系结构
Hyperledger的9个正式项目解决了区块链核心的基础问题:
- Fabric
Fabric是Hyperledger的核心项目,其本质上一个分布式共享账本。 - Explorer
Explorer是一共用来对区块链进行配置管理、区块和交易数据的查询、节点管理的工具。 - Iroha
Iroha使开发者和Hyperledger之间的互动性更强,当开发者需要用分布式账本技术的时候Iroha能提供非常强大的帮助,Iroha目前采用新的BFT共识算法。 - Burrow
- Indy
- Sawtooth
- Composer
- Cello
- Quilt
下面重点介绍Fabric
Fabric 技术特性
多账本特性
之前的区块链平台如比特币和以太坊,一般只有一个账本,这使得记录都在一个账本中,使得完全有效节点存储的数据非常庞大。
Fabric采用多账本的设计方式,提出了 通道(channel) 的概念。通道的本质是一个账本的逻辑概率,一个通道包含若干成员,这些成员之间共享账本,并共同维护账本。一个会员在权限允许的情况下可以加入多个通道,不同的通道有不同的账本存储格式。
智能合约
Fabric中的智能合约被称为 链码(ChainCode)。链码是一段用计算机语言编写的程序,运行在容器中。Fabric通过链码能够读取和修改账本数据,同时会把交易的日志保存在状态数据库中。链码可以通过多种编程语言开发,目前支持Go、Java、Node.js等等。
权限系统
Fabric与其他区块链的最大区别是:Fabric的网络不是公开的,所以,Fabric中没有类似POW这样的算法,如想进入网络中必须获取权限(联盟链)。
Fabric共识算法
从Fabric官方文档来看,Fabric支持Solo(单节点共识)、Kafka(分布式消息队列)、SBFT(简单拜占庭容错) 三种共识方式。
在Fabric中不同会员发起的交易是按照一定的顺序写入区块中:
- Solo方式是指在单个节点中完成排序方法,这种模式安全性和稳定性都比较差,如果单个节点出现问题,整个区块链系统都无法运行。因此Solo模式只是在本机开发和演示过程才使用。
- Kafka见以前的文章:Kafka——初识Kafka。