简单介绍Hyperledger fabric是什么
Hyperledger Fabric作为超级账本的项目之一,目前基于它开发的区块链项目非常多
Linux基金会于2015年成立超级账本,以推进跨行业的区块链技术。相对于申报一个区块链标准,它鼓励通过社区合作的方式来发展区块链技术,带着知识产权,鼓励开源,且随着时间的推移来采用不同的标准。
Fabric是超级账本区块链中的一个项目,与其他的区块链技术一样,它具有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统。
Fabric与其他区块链系统最大的不同在于它是隐私的、许可的网络。相对于像其他区块链那样通过“工作量证明”来验证身份(允许任何人加入网络),Fabric的成员通过会员注册服务提供商来加入网络。
区块链
分布式账本
区块链网络的核心是分布式账本,一个记录网络中发生的所有交易的分布式账本。区块链账本经常被描述成“去中心化”,这是因为它被网络中的多个参与者复制,且由所有参与者共同维护,我们将见证去中心化与协作将如何成为反映现实世界中企业交换商品与服务的强大属性。
除了去中心化与协作外,记录到区块链中的数据只能被添加,区块链使用加密技术来保证一旦交易被添加到账本便不能被修改。这一特性使参与者能够很容易的确定数据来源,因为参与者可以确定数据在写入后没有被更改过,这也是为什么区块链有时会被描述为系统的证明。
智能合约
为了支持数据更新的一致性,也为了整体的启用账本功能(交易、查询等)——区块链网络使用智能合约来提供对账本的访问控制。
智能合约不仅仅作为封装并简化信息的核心机制,还可以允许参与者自行编写从而处理某些自动执行的事务。比如说,智能合约可以记录一个物品的运输成本,当双方同意后将交易写入账本,交易资金在收到物品时自动易手。
共识
共识过程是保持网络中账本交易同步的过程,用以保证账本只有当交易被参与者批准后才会更新,且更新对所有参与者同步进行。
我们后续会学到更多关于账本、智能合约与共识相关的知识。从此刻起,可以把区块链想象成一个共享复制的、通过智能合约来更新的、通过共识来保持一致性的交易系统。
区块链和Fabric
Hyperledger Fabric是一种独特的分布式账本实现技术(DLT),提供企业级的网络安全性、可扩展性、保密性与性能,是一个模块化的区块链架构
身份管理
为了实现许可网络,Fabric提供了会员身份服务,在网络中管理用户ID与参与者的身份。访问控制列表可以通过授权特定的网络操作来提供额外的权限层。例如,一个特定的用户ID可以允许调用链码的应用程序,但禁止部署新的链码。关于Fabric网络的一个真理是,成员彼此认识(身份),但他们不知道对方在做什么(隐私保密)。
隐私保密
Fabric允许商业利益的角逐,允许要求私密交易的任何团体在同一许可网络共存。私有通道限制了消息传递路径,可用于为网络中特定子集的参与者提供交易的隐私性和机密性。通道上的所有数据(包括交易、成员和通道信息)对于未显式地授予对该通道访问权限的任何网络成员来说都是不可访问的。
高效处理
Hyperledger Fabric通过节点类型来分配网络角色。为了为网络提供并发性和并行性,交易处理与交易排序分开执行。在排序之前处理交易使每个对等节点能够同时处理多个交易。这种并发执行提高了每个对等节点的处理效率,加快了交易向排序服务的交付。
除了实现并行处理外,劳动力的分工使得排序节点免于大量的交易处理与账本维持工作,而对等节点则从排序共识工作负担中解脱出来。角色的这种分叉也降低了授权和验证所需的处理要求;所有对等节点不必信任所有的排序节点,反之亦然,因此对其中一个节点的处理可以独立于另外一个节点进行验证。
智能合约
链码应用的编码逻辑会被通道中具体类型的交易调用。链码定义了资产所有权转移的参数,例如,保证所有所有权转移交易依照相同的规则与要求。系统级链码区别于链码,它定义了整个通道的操作参数。生命周期与配置系统链码定义了通道规则,背书与验证系统链码定义了背书与验证交易的要求。
模块设计
Fabric实现了一个模块化的架构,为网络设计师提供功能选择。模块化还包括身份认证,共识算法以及加密算法。其结果是一个通用的区块链架构,在任何行业和公共领域都可以采用,以确保其网络可以在跨市尝监管以及地理边界时能够协同操作。
链码
链码是定义资产与修改资产的指令。换句话说,它是业务逻辑。链码通过执行自身逻辑来查询或修改键值对或者其他数据库信息。链码函数通过数据库当前状态执行,且通过交易提案初始化。链码执行的结果是一系列键值写(写集),该写集将会被提交至网络并应用于所有节点中。同样的,我们可以编写自己的链码,进行部署,然后实现相应的功能。