基于区块链平台之上来构建企业应用,需要对区块链的技术以及概念性的东西有一个了解,以下对于Hyperledger Fabric的一些浅析。
概念
简单介绍一下区块链,区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据去中心化存储、无法篡改的技术体系。最早的应用是比特币,随后出现的以太坊把该技术推向了大众的视野,二者都是以数字货币为目标的区块链应用。而后来Hyperledger的出现让区块链走向了实际应用,主要是支持在区块链底层平台之上搭建我们的企业应用。
Hyperledger Fabric
Hyperledger:超级账本是一个由Linux基金会主持的联合项目,而Hyperledger Fabric只是Hyperledger众多项目中的一个子项目,是分布式账本解决方案的平台,有自己的记账体系,灵活的智能合约以及一个众多参与者管理他们自己交易的系统,是面向企业应用的全球最大的分布式开源项目。
Hyperledger Fabric具备哪些功能?
1、共享账本:整个交易在账本中是共享共建的,账本数据是以key-value的格式进行存储,可以进行数据添加、修改、删除、和各种的查询操作,记录到链上的信息仅是追加的,使用加密技术来保证一旦将交易添加到账本中就无法修改。
2、通道(channel):创建区块链网络的关键部分,实现了数据的隔离和保密,每一个通道即为一条逻辑上的区块链,用于联盟中成员进行交易。成员是身份标识,一个成员可以有多个peer节点,peer是维护账本的网络节点。一个成员可以管理多个peer节点,同一个peer节点可以加入多个通道,并为每个通道内容维护一个账本。每一个通道即为一条逻辑上的区块链
3、智能合约:应用程序调用智能合约来生成被记录到账本上的交易,合约又称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能,是用户与区块链进行交互利用区块链实现业务逻辑的重要途径。每个智能合约都有一个与之关联的背书策略,这个背书策略定义了在智能合约生成的交易被认证为有效之前,哪些成员必须同意该交易。
4、共识:共识被定义为包含区块的一组交易的正确性的验证,从提案和背书,合约执行(合约排序),验证和提交,贯穿了共享账本、通道、智能合约等环节
上图描述了Hyperledger Fabric的一个网络图,下面简单描述一下操作从发起到上链的过程。用户userA、userB、userC分别加入了通道,user(A、B)在channelA中可以进行操作,userC用户只能在channleC中进行操作,这样就实现了用户之间的隔离和保密性。创建合约(合约A、B、C)并且可以指定它的背书策略,然后选择通道并进行安装,在用户进行调用时通过发送交易提案给在智能合约中的背书策略所指定的组织里的 peer 节点方式来调用智能合约的,智能合约生成交易然后它会把这些交易进行排序并放进交易区块中,这些区块会被分发到 channel 中的每个 peer 节点,这些交易会被记录在他们的账本副本上并且是不可篡改的,最终完成了整个上链的过程。
总结
Hyperledger Fabric 有着目前传统的中心化系统不具体的技术特点,如去中心化、不可篡改、数据共享、信息透明等,正是因为这些特点,很多应用场景中都可以看到区块链的背影,常常应用于溯源、物流、供应链、凭证系统、物联网等等这些场景中。在未来很多有这方面需求的应用系统都会尝试构建在区块链平台之上,以达到真正的开放、共享、共建的目的。