能否在不提供任何链接的情况下详细解释PBFT算法?并且它在Hyperledger中的工作原理是什么?因此,一旦交易被发送到区块链:
谁验证该交易?
如何对该交易达成共识?
如何将该交易提交到区块链中?
能否在不提供任何链接的情况下详细解释PBFT算法?并且它在Hyperledger中的工作原理是什么?因此,一旦交易被发送到区块链:
谁验证该交易?
如何对该交易达成共识?
如何将该交易提交到区块链中?
在Fabric v1.0中:
该版本仍在开发中。在v1中没有“领导者”,独立服务“Orderer”负责块中的交易顺序。该服务是可插拔的,并宣布将有3种不同的选项:
在Corda中:
PBFT未被使用。这个实现使用了另一种架构方法。
pbft是由Barbara Liskov和Miguel Castro于1999年提出的共识算法,旨在防止恶意攻击和软件错误导致的故障节点表现出拜占庭(即任意)行为。与之前只能在同步系统上工作的bft算法相比,pBFT被设计为在异步系统中高效运行。
这里是该研究论文的链接。
一种实用的状态机复制算法,它容忍了Byzantine故障。该算法在最多⌊n-1 / 3⌋个副本同时故障的情况下,提供了生存能力和安全性。这意味着客户端最终会收到他们请求的响应,并且这些响应根据线性可组合性是正确的。该算法在像互联网这样的异步系统中工作,并且它包含了使其能够高效执行的重要优化。
该算法大致工作如下:
与所有状态机复制技术一样,副本需要满足两个要求:
在满足这两个要求的情况下,该算法通过确保所有非故障副本在请求执行的总顺序上达成一致,从而确保了安全属性。
pbft的局限性:
当分布式网络中节点数量较少时,pbft共识算法才能有效运行。
Hyperledger Fabric:
根据Hyperledger Fabric v1.4,目前使用的共识机制包括SOLO、Kafka和Raft。
Hyperledger Sawtooth:
根据Hyperledger Sawtooth,在此处很好地解释了如何使用pbft:这里
以上内容缺少 Hyperledger Sawtooth 的共识算法,以下是它们:
这里还有其他共识算法: