任何人都可以详细解释 PBFT算法而不提供任何相同的链接。以及它在 hyperledger 中的工作原理。因此,一旦将交易发送到blockchain
:
(1)。谁验证了交易?
(2)。如何在交易中达成共识?
(3)。交易如何提交给区块链?
答案 0 :(得分:21)
“Hyperledger”是Linux基金会下的区块链联盟。目前,在Hyperledger下至少有4种不同的区块链框架实现:
在Fabric v0.6中</ strong>:
所有验证对等体都保持彼此的开放连接。您可以将交易提交给其中任何一个,此交易将被广播给网络中的其他同行。同伴之一被选为“领导者”。在将要生成新块的时刻:
在Fabric v1.0中:
此版本仍在开发中。在v1中,没有“领导者”,单独的服务“Orderer”负责一个块中的交易顺序。这项服务是可插拔的,并宣布将有3种不同的选择:
在Corda :
未使用PBFT。此实现使用另一种体系结构方法。
答案 1 :(得分:2)
在Corda,公证人提供了一致意见。公证算子由他们使用的一致性算法决定。 BFT是一种选择。您可以在此处查看Corda BFT公证样本:https://github.com/corda/corda/tree/master/samples/notary-demo。
回答你的问题:
<强>(1)。谁验证了交易?
交易由一个或多个公证人的集群验证。公证人是节点,其唯一目的是消除双重花费的冲突。
<强>(2)。如何在交易中达成共识?
使用标准BFT算法。公证集群中的每个节点都会对他们是否认为该交易是双重花费尝试进行投票。最终决定基于多数规则,并且可以容忍群集中最多1/3的节点是恶意的。
<强>(3)。交易如何提交给区块链?
在Corda中,没有交易承诺的中央信息存储。公证集群只是将耗尽的状态引用添加到内部数据库表。它将检查将来对这个表花费状态的尝试,如果状态引用已经存储在那里,则拒绝支出尝试。
答案 2 :(得分:0)
以上内容缺少Hyperledger Sawtooth的共识算法,因此它们是:
还有其他一些共识算法:
答案 3 :(得分:0)
here 是研究论文,其中指出
可容忍的状态机复制实用算法 拜占庭断层。该算法既活泼又安全 提供的副本总数中最多不超过n-1 / 3 同时出现故障。这意味着客户最终会收到 对他们的请求的回复,并且根据 线性化。该算法适用于异步系统,例如 互联网,它融合了重要的优化功能,使其能够 高效执行
该算法大致如下:
就像所有状态机复制技术一样,副本上有两个要求:
鉴于这两个要求,算法 通过确保所有无故障副本都同意执行的总订单来确保安全性 失败就可以请求。
pbft的限制:
只有当分布式网络中的节点数较少时,pbft共识算法才能有效工作。
超级账本面料:
根据Hyperledger Fabric v1.4,目前使用的共识机制包括SOLO,Kafka和Raft。
超级账本锯齿:
根据Hyperledger Sawtooth,{b3}的使用方法已得到很好的解释here