HyperLedger Fabric Introduction——区块链超级账本介绍 (3)

HyperLedger Fabric有一个分类子系统,包括两个组成部分:世界状态(world state)和事务日志(transaction log)。每个参与者都有一份账本的副本到他们所属的每一个HyperLedger Fabric的网络上。

在给定的时间点上,世界状态(world state)组件描述了总账的状态。它是账本的数据库。事务日志(transaction log)组件记录所有导致当前世界状态值的事务。这是世界状态(world state)的更新历史。那么,账本是世界状态(world state)数据库和事务日志(transaction log)历史的组合。

该账本为世界状态(world state)提供了可替换的数据存储方案。默认情况下,这是一个LevelDB键值存储数据库。事务日志(transaction log)不需要是可插拔的,它只是记录了区块链网络使用的账本数据库之前和之后的值。

智能合约

HyperLedger Fabric的智能契约是用Chaincode编写的,并且当应用程序需要与账本进行交互时,被应用程序外部的应用程序调用。在大多数情况下, Chaincode只与总账的数据库组件交互,例如世界状态(例如,查询它),而不是事务日志。

Chaincode可以用几种编程语言实现,目前支持的chaincode编写的是GO语言,在今后的发行版中将会逐步新增Java和其它语言的支持。

隐私

根据网络的需要,企业对企业(B2B)网络的参与者可能对他们所共享的信息非常敏感。对其他网络来说,隐私不会成为首要关注的问题。

HyperLedger Fabric支持需要将隐私(使用通道)作为关键操作需求的网络,同时也是相对开放的网络。

共识

事务必须按照它们发生的顺序写在账本上,即使它们可能是网络中不同的参与者生成的。要做到这一点,必须建立事务的顺序,并且必须在账本中建立一种拒绝错误事务(或恶意的)的方法。

这是一个经过彻底研究的计算机科学领域,有很多方法可以实现它,每一个都有不同的权衡。例如,PBFT(拜占庭式容错)可以为文件副本提供一种机制,使其能够相互通信,从而保持每个副本的一致性,即使是在出现腐化的情况下。或者,在比特币中,排序是通过一个名为“挖矿”的过程来实现的,在这个过程中,竞争的计算机竞相解决一个加密难题,该难题定义了所有流程随后构建的顺序。

HyperLedger Fabric的设计使得网络启动者可以选择一种最能代表参与者之间关系的共识机制。就像隐私一样,需要有一系列的需求;从人际关系高度结构化的网络到更加对等的网络。

关于HyperLedger Fabric共识机制,它目前包括SOLO和Kafka,并将很快扩展到SBFT(简化的拜占庭式容错)。

 

如何学习HyperLedger Fabric

可以参考Hyperledger Fabric 1.0 从零开始,英文阅读能力好的可以直接通过官网的教程Getting Started。

官网中提供了大量的教程,可以帮助了解一个区块链网络中的大多数关键组件,了解它们如何相互作用,还能在官网中得到代码等干货,并针对运行的区块链网络运行一些简单的事务。官网还为提供了一些教程,帮助可以考虑使用HyperLedger Fabric来操作一个区块链网络。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdxww.html