13

我一直在阅读有关 HyperLedger Fabric 项目如何实施开源区块链解决方案的文档:https ://github.com/hyperledger/fabric/blob/master/docs/protocol-spec.md

我已经看到使用了 PBFT 共识算法,但我不明白如何在 BlockChain 网络中的所有 Validating Peers 之间挖掘和共享块。

4

3 回答 3

33

Hyperledger Validating Peers (VPs) 不会挖掘区块,也不会在它们之间共享区块。下面是它的工作原理:

  1. 一笔交易被发送给一个受信任的 VP。
  2. VP 将交易广播给所有其他 VP。
  3. 所有 VP 就执行交易的顺序达成共识(使用 PBFT 算法)。
  4. 所有 VP 都按照总订单“自行”执行交易,并使用已执行的交易构建一个区块(主要计算哈希值)。

所有区块都将是相同的,因为:交易执行是确定性的(应该是),并且一个区块中的 tx 数量是固定的。

于 2016-04-25T15:25:53.390 回答
9

根据 Hyperledger Fabric 1.X

  1. 用户通过 Client SDK 将交易提案发送给 Endorsing Peers。
  2. Endorsing Peer检查交易并提出交易的背书建议(带有读/写集(先前值/更改值))并再次发送给客户端SDK。
  3. Client SDK 等待所有背书,一旦获得所有背书提案,它会发出一个调用请求并发送给 Orderer。
  4. Orderer 通过检查 Policies defined(Consensus) 验证客户端 SDK 的调用请求租用,验证交易并添加到块中。
  5. 根据为块定义的配置,在指定的时间或交易次数后,它通过使用交易哈希、元数据和前一个块的哈希形成一个块的哈希。
  6. 交易块由排序者“交付”给通道上的所有对等点。
  7. 所有提交节点都会验证背书策略,并确保自事务执行生成读取集以来,读取集变量的账本状态没有发生任何变化。在此之后块中的所有交易并使用新块和当前资产状态更新分类帐。

分类帐包含

  • 1) 当前状态数据库(Level BD 或 Couch DB)
  • 2)区块链(文件)(链接块)

读取超级账本结构的交易流程

检查图像以供参考Hyperledger Fabric 交易流程

于 2018-05-31T10:44:34.347 回答
2

Hyperledger 是区块链技术的保护伞。上面提到的 Hyperledger Fabric 就是其中之一。Hyperledger Sawtooth 也不使用挖矿,并添加了以下共识算法:

  • PoET Proof of Elapsed Time(用于 Sawtooth 的可选 Nakamoto 式共识算法)。SGX 的 POET 有 BFT。PoET Simulator 有 CFT。不像 PoW 风格的算法那样占用 CPU 资源,尽管它仍然可以分叉并拥有陈旧的块。请参阅https://sawtooth.hyperledger.org/docs/core/release s/latest/architecture/poet.html上的 PoET 规范
  • RAFT共识算法,在任意时间内选举领导者。如果超时,则更换领导者。Raft 比 PoET 快,但不是 BFT(Raft 是 CFT)。Raft 也不会分叉。
  • 使用不可插拔共识,无需重新初始化区块链甚至重新启动软件即可更改另一个共识算法。

为了完整起见,比特币的原始共识算法(并且确实使用挖掘)是:

  • PoW 工作量证明。完成工作(CPU 密集型 Nakamoto 式共识算法)。通常用于无许可区块链
于 2018-08-17T22:03:01.943 回答