Hyperledger Fabric是什么意思
linx
欧意最新版本
欧意最新版本app是一款安全、稳定、可靠的数字货币交易平台。
APP下载 官网地址
在区块链技术领域中,概括地说,我们可以辨识出三种主要的链类型:公有链、联盟链以及私有链。虽然之前的文章已经详述了有关公有链,如
比特币和以太坊区块链的丰富资料,对联盟链和私有链的讨论相对较少,这两者对于大多数读者来说,可能只是一种概念上的了解,而对它们的具体运作细节可能并不十分熟悉。
在公有链方面,所有的节点通过共识机制共同维护着一个“统一”的账本,这个账本记录了所有的交易。为了在互不熟悉的节点之间保持账本的一致性和安全性,公有链牺牲了交易效率,导致其运行速度较慢(例如,
比特币区块链每秒只能处理7笔交易)。这种做法既是公有链的一大优点,也是其缺点,同时,它也引发了关于匿名性和公开性的问题,并不完全具备私密性。
在商业领域,数据或交易处理的效率与私密性尤为重要,因此,企业很难将业务直接放在公有链上。正因如此,我们才有了公有链、联盟链、私有链这三种区块链类型。联盟链则更适合于企业间的内部商业往来,类似于互联网和公司局域网,各自有其特定的用途和优缺点。
超级账本(Hyperledger)是由IBM牵头,联合Intel、Cisco等大企业发起的一个联盟链项目。该项目自2015年底起由Linux基金会托管,成为了一个开源项目。Hyperledger项目包含五个子项目,其中,Fabric是最知名的一个,通常我们所说的Hyperledger,实际上就是指的Fabric。
Hyperledger Fabric是一个为企业级应用及解决方案提供的模块化区块链框架,旨在实现模块化、扩展化和安全化。Hyperledger Fabric允许共识机制、会员服务等“组件”以即插即用的方式被集成。此外,Hyperledger Fabric中的智能合约可以通过“Chaincode”来实施。
接下来,让我们深入探讨Hyperledger Fabric的架构。
Hyperledger Fabric架构
Fabric 1.0将Peer节点按功能分解为Endorser、Committer、Ledger、Events、Chaincode等,同时将共识机制从节点中抽离出来,独立形成Orderer节点,提供即插即用的共识机制。此外,还引入了多通道(Multi-Channel)功能,实现了多业务隔离。
多通道(Multi-Channel)
Hyperledger Fabric中的链(Chain)包含了链码(Chaincode)、账本(Ledger)、通道(Channel)的逻辑结构,它将参与方(Organization)和交易(Transaction)进行了隔离,满足了不同业务场景下不同参与者访问不同数据的基本要求。通常所说的多链在运维层面上就是多通道。一个Peer节点可以接入多条通道,从而参与到多条链,参与不同的业务。
账本结构
账本是一系列有序的、不可篡改的状态转移记录日志。状态转移是链码执行交易的结果,每个交易都是通过增删改操作将一系列键值对提交到账本。一系列有序的交易被打包成块,这样就将账本串联成了区块链。同时,一个状态数据库维护账本当前的状态,因此也被称作世界状态。在Fabric 1.0中,每个通道都有其账本,每个Peer节点都保存着其加入的通道的账本,包含交易日志(账本数据库)、状态数据库和历史数据库。
链码(Chaincode)
Fabric架构更多的是针对Fabric平台运维工程师,而对于应用开发者来说,链码才是最重要的。链码是Hyperledger Fabric提供的智能合约,是上层应用与底层区块链平台交互的媒介。目前,Fabric提供了Go、Java等语言的链码。所有的链码都继承两个接口:init和invoke。init接口用于初始化合约,在整个链码的生命周期里,该接口仅执行一次。而invoke接口是编写业务逻辑的唯一入口。
在合约中,可以获取的内容分为三类:输入参数获取、与状态数据库和历史数据库交互、与其他合约的交互。
节点Peer、通道Channel和链码Chaincode之间的关系
节点Peer是一个独立的计算机节点,无论是物理机还是虚拟机,都是独立实体。在没有加入任何通道之前,Peer无法进行任何业务,因为没有业务载体。
通道Channel是业务载体,是一个纯粹的逻辑概念。
链码Chaincode是业务,业务是运行在通道中的,不同的通道即便是运行相同的链码,由于载体不同,可认为是两个不同业务。
三者需要互相配合才能构成一个完整的Hyperledger Fabric区块链。
代币Token
在公有链上,存在激励机制,通过奖励为交易打包的“矿工”达成共识机制,给予奖励代币,维持区块链网络的正常运作。
在Hyperledger Fabric这种联盟链上,由于节点之间都建立了信任,并不一定需要通过挖矿这种方式来达成共识,因此也未必需要代币Token。如果一定要使用代币,可以通过链码Chaincode来实现。
标签: 数字货币
版权声明: 本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任