我是Hyperledger Fabric的新手。我正在阅读Fabric最新版本的文档,但我不清楚Fabric的共识。 Fabric使用的共识是什么?它是如何工作的?请解释一下。
答案 0 :(得分:5)
我假设您了解区块链上下文中的共识基础知识。 Hyperledger Fabric的共识可以视为一个特殊情况,可能是一个功能强大的。它可以在多个阶段检查事务,以确保写入分类帐的更改的权限,顺序和正确性。
在Fabric中,当您执行事务时,如果没有出错,您可能希望此事务提交到分类帐,即以正确的顺序将事务写入分类帐中的块。然后通过协作过程在网络中的所有参与者之间保持一致。因此,这个确保顺序和数据同步正确性的过程称为共识
HLF标准定义
保持分类账交易在整个网络中同步的过程 - 确保分类账仅在交易被相应参与者批准时更新,并且当分类账更新时,它们以相同的顺序更新相同的交易 - 被称为共识
这是通过以下方式在整个交易周期内完成的
因此,一旦所有检查都正常,则事务被标记为有效并且当前状态被更新,最后写入块并相应地生成事件。这样就可以在Hyperledger结构中的多个阶段实现共识。如果您参考Hyperledger Fabric Transaction Flow
下面的链接,我想您会更好理解答案 1 :(得分:0)
Hyperledger Fabric中的共识分为三个阶段:认可,订购和验证。
认可是由参与者认可交易的政策(n个签名中的m个)决定的。(由我们定义)。
订购阶段将获得认可的交易并同意将交易提交到分类帐。(我们可以使用独奏,Kafka和Raft之外的任何订购服务。
验证采用一组已排序的交易并验证结果的正确性。在验证对等期间,对等方将验证订购者发送的交易(成块)是否有效。
答案 2 :(得分:0)
根据Hyperledger Fabric v1.4
该平台最重要的差异因素之一是 支持可插入共识协议,使平台能够 更有效地定制以适合特定的用例和信任 楷模。例如,当部署在单个企业中时,或 由受信任的机构操作,完全拜占庭容错 共识可能被认为是不必要的,并且拖累了 性能和吞吐量。在这种情况下,当机 容错(CFT)共识协议可能绰绰有余 而在多方,分散的用例中,更传统的 可能需要拜占庭式容错(BFT)共识协议。
将交易的顺序委托给模块化组件以达成共识,该组件在逻辑上与执行交易并维护分类帐的对等方分离。具体来说就是订购服务。由于共识是模块化的,因此可以根据特定部署或解决方案的信任假设量身定制其实现。这种模块化的体系结构允许平台依赖完善的工具包来进行CFT(崩溃容错)或BFT(拜占庭容错)排序。
Fabric当前提供两种CFT订购服务实现。