一、为什么要有hyper ledger fabric
区块链发展到今天,经历了从bitcoin到ethereum再到EOS以及其他一些区块链项目的一个发展历程,从bitcoin的数字黄金,到ethereum的图灵完备的区块链操作系统和智能合约(smart contract)的提出,以及EOS企业操作系统DPOS(委托权益证明共识算法)。我们看到整个分布式账本(distribute ledger)技术在朝着各自的领域蓬勃发展,我们为了针对不同的应用场景提出了不同的区块链架构。这些区块链架构都是在区块链三角形(分布性、安全性、可扩展性)三者之间进行着平衡。而到了hyper ledger fabric就是一款适合于企业联盟组织的安全高效的区块链系统,其主要应用在企业级的应用。接下来我会从网络,共识、密码学安全、以及权限控制各个方面逐一展开讨论,遵照一个从整体到局部再到整体的思路进行分析。
二、Hyper ledger Fabric模型
Assert:定义了hyperledger网络中所有具有货币属性的资源,使得所有的这些资源交换成为可能,这些资源甚至可以是食物,汽车甚至是期货。
Chaincode:链码的执行是从交易排序分离出来的(交易被打包然后执行),这也限制了对跨节点类型的验证和信任的要求水平(不同的链码执行会通知到不同的channel,不同的peer会根据权限订阅不同的channel),这样做也优化了网络扩展性和性能。
Ledger Features:每个通道所对应的账本是不可变的和有限权限共享的,该账本编码了整个交易历史,账本还提供了类sql的查询能力用于高效认证和争端解决。
Privacy through Channel:通过通道保持隐私(这就相当于是fabric网络里面的信息专线),各种通道使用不同的字符交易使得竞争性的商业活动和受管制的工业活动所要求的的高度隐私性和保密性成为可能。
Security&Membership service:安全性和成员关系服务,成员关系授权措施提供了一个可信任的区块链网络。参与方知道所有被已授权的监管人和审计人侦测和跟踪的交易。也就是是参与方了解到的交易来自于授权的监管人和审计人哪里。(事务是经过审计和监管的)
Consensus:独一无二的共识运行机制使得企业对松耦合和可宽展型共识的需求成为可能。
三、Fabric的架构
关于架构可以说是一个比较大的话题,但是不管如何,都是从整体上来把控这个系统,这可以说就是该系统的架构。
区块链是由许多彼此通信的节点组成的分布式系统,区块链运行的是被称为链码Chaincode(智能合约)的程序,并且区块链掌握着状态和账本数据,并执行交易。链码是中心元素,因为所谓的交易就是牵扯到链码的操作。交易必须要被背书(验证,证明无误和合法),并且仅有被背书过的交易才能被提交到区块链中,并对状态产生影响。可能存在一个或者多个特别的链码用于系统的管理功能和参数设置,统称为系统链码。更多详情请参阅Fabric架构。再接下来的章节中,我会从代码出发进行说明,以及进一步展开讨论。