超级账本区块链最大数量参与者、资产、交易?

hyperledger blockchain maximum no. of participants, assets, transactions?

我想问问有没有最大号。 hyperledger 可以支持的参与者、资产、交易?

另外,如果交易提交失败,是否有回滚(ACID compliant,example)?

谢谢。

吴宇森

可以参与 Hyperledger 区块链的参与者数量没有限制。但是,它们将是私有区块链,因此每个人都不会参与其中。

关于交易提交失败,看你是什么意思。当用户发送交易时,交易可能会失败。但是,一旦事务开始其行程,它就会终止。

Peer 发送交易后,它会等待得到答复。它可能成功与否,但它需要一个答案。如果我是你,我会阅读 transaction flow of a transaction in Hyperledger Fabric. Or about the Basic workflow of transaction endorsement

我想问一下有没有最大号。 hyperledger 可以支持的参与者、资产、交易的数量?

当然会有限制。但出于实际目的,它们已经足够高,可以完成严肃的工作。参与者可以采取多种形式:

  • 具有独立身份并可能以任意组合方式拥有自己的 CA、MSP、订单、背书者和提交者的组织
  • 链码中的角色
  • 在组织中具有特定角色的身份

最有限的将是组织和同行等,但据我所知,一个联盟仍然可以大到足以容纳其中的一小部分。角色和身份取决于您的需求和智能合约的设计。除非您正在进行压力测试,否则您真正需要多少? (身份当然是数量最多的,但据我所知,系统的设计考虑到了这一点)。

所以我的观点是,对于大多数实际用途而言,限制应该足够了。

另外,如果交易提交失败,是否有回滚(ACID兼容,例子)?

区块链的全部意义在于提供一个透明的分布式账本,始终保持完美的一致性。所以答案是.

但请注意,回滚仅意味着交易成功或失败,并且分类帐的所有副本都将具有相同的结果。如果交易失败,则其更改的 none 将出现在分类帐中。

交易失败模式:

  • 背书失败发生在链代码因违反业务规则或内部错误而选择使交易失败时。

  • 提交期间失败发生在两个事务并行执行时(出于实际目的,即它们可能执行得太靠近并获得相同的效果)和(a)触摸相同的键,并且(b) 最终出现在同一个街区。在这种情况下,背书者愉快地为两者创建读/写集,但提交者发现第二个事务正在读取一个无效版本的密钥,该密钥由同一块中的较早事务更新。读/写集从未应用,因此提供回滚

提交期间持续失败的解决方案是在应用程序中添加流控制。你无法在链码中解决这个问题。