原文链接 译者:周超强
在2015年,Linux基金会成立了HyroundGrand项目,以推动跨行业的区块链技术的发展。通过鼓励开放的知识产权以及后续在关键点上可能采用自有的标准体系,这样可以更好的让社区之间进行高效的协作来开发区块链的技术,而不是自己制定独立的区块链的标准。
Hyperledger Fabric只是Hyperledger众多项目中的一个子项目,与其他区块链的技术类似,它也有自己的记账体系,灵活的通信契约以及一个众多参与者管理他们自己交易的系统。
因为Hyperledger Fabric是私有的并且被运行的,所以它可以从一些其他的区块链系统中剥离出来。不像其他开发的不需要验证的的系统,这些系统允许没有身份标识的参与者参与到网络中( 需要诸如“工作证明”之类的协议来验证交易并确保网络安全 ),在Hyperledger Fabric网络中的成员通过一个可信任的会员服务提供商融入到网络中。
Hyperledger Fabric也提供了一些热插拔的选项。记账的数据以多种形式进行存储,基于一致性的协议机制也可以相互之间进行交换,并且也支持不同的会员服务提供商。
Hyperledger Fabric也可以来创建通道,这样可以运行一组的参与者进行处理独立的记账交易。 这是一个特别重要的选择,因为在某种情况下,网络中的一些参与者可能是竞争对手,因此不希望每一笔交易指定的明确的价格被其他的参与者所获知。如果两个参与者组成了一个通道,那么其他参与者将不能进行复制这个通道的交易信息。
共享的记账信息
Hyperledger Fabric有一个分类帐子系统,包括两个组件:运行状态和交易日志。每个参与者都有一个帐簿的副本给他们所属的每一个超分类帐网络。
运行状态描述了在给定的特定的时间点的临时状态,这是分类帐的数据库。交易日志记录了所有交易当前状态的信息;更新的历史操作状态信息。因此分类帐是运行状态数据库和交易日志历史的一个结合体。
对于运行状态,记账机制有一个可替换的数据存储模式。默认采用的是LevelDB来进行存储。事务日志不需要采用可插拔的模式。它只是简单的记录了记账数据库修改前后修改后的值信息。
灵活的契约
Hyperledger Fabric灵活契约使用chaincode编写的,并且当应用程序需要进行记账时,由外部的应用程序来调用。在
智能契约是用chaincode编写的,并且当应用程序需要与分类账交互时,由块链外部的应用程序调用。在大多数情况下,chaincode仅与记账的的数据库组件、运行状态(例如,查询)而不是与事务日志进行交互。
Chaincode支持多种语言的实现,目前当下流行的是go和node。
私有性
在一个B2B的网络体系中,参与者对他们分享的信息量极其的敏感。对于其他的网络,私有性特别的重要。
Hyperledger Fabric对于关键的操作需求支持私有访问同时也支持开放性的访问。
一致性
当发生交易的时候,交易的信息必须按照交易的顺序记录到记账类目中,即使在交易发生在网络中的多个参与者之间也是如此。
为了实现这一点,一定要按照交易的执行顺序来进行写入,并且拒绝失败的交易方法的信息也要记录下来。
在这个计算机科学领域,实现上述所说的有很多中方法,但是每一种都需要自己去权衡利弊。例如PBFT可以提供一种机制,文件之间可以相互通信,从而保持了每个副本的一致性,即使在发生文件损坏的情况下,也可以实现一致性。或者,在比特币中,排序通过一个类似挖掘的过程来发生,当竞争者并发的去解决密码学难题,这些密码学难题定义了所有流程构建的顺序。
Hyperledger Fabric可以允许网络的发起者选择一种最能够代表参与者关系的一致性的机制。和私有性一样,也有一系列需求:从关系高度结构化的网络到对应的网络。
后续我们将会学习更多关于Hyperledger Fabric一致性协议,比如目前的SOLO和Kafka.
我们能学到些什么?
标识(概念文本)
一个标识文档,将带您了解Fabric网络中身份扮演的关键角色(使用已建立的PKI结构和x.509证书)。
会员关系(概念文本)
对成员资格服务提供者(MSP)的角色进行讨论,它将身份转换为结构网络中的角色。
对等体
由组织拥有的对等体-负责分类帐和灵活契约,并构成织网络的物理结构。
建立你的第一个网络(教程)
了解如何下载 Fabric binaries 和引导程序的二进制文件,并用示例脚本引导您自己的示例网络。然后拆除网络,了解它是如何一步一步地构建起来的。
开始写第一个应用(教程)
部署一个非常简单的网络-甚至比Build Your First Network更简单-用于简单的灵活契约和应用程序。
事务流程
对一个示例事务流的高级查看。
Hyperledger Fabric结构模型
本介绍中提到的一些组件和概念,以及其他一些组件,并描述它们在示例事务流中如何一起工作。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/60510.html