【问题标题】:When transaction is finalized in HLF v1?在 HLF v1 中何时完成交易?
【发布时间】:2017-10-28 20:03:29
【问题描述】:

根据架构解释 (http://hyperledger-fabric.readthedocs.io/en/latest/arch-deep-dive.html),排序服务将事务 (RWSet) 收集到块中以分发给提交的对等方。然后,提交节点验证背书策略,然后 RWset 将交易应用到账本。

为了验证事务是否成功,客户端应用程序是否应该等待所有提交的对等方返回“成功”事件?还是只需要验证一个“成功”事件?

【问题讨论】:

    标签: hyperledger-fabric


    【解决方案1】:

    为了验证交易是否成功,客户端应用程序应该 等到所有提交的对等方返回“成功”事件?要不就 只需要验证一个“成功”事件吗?

    田中,这是一个非常好的问题! 简短的回答是

    原因是与现有流行的区块链相比,HLF 具有独特的交易生命周期:

    • 在一些背书人或几个背书人上模拟交易
    • 它被发送到排序服务并被切割成一些块
    • 区块被发送给对等节点,它们都执行相同的验证代码,并且保证特定交易的所有验证代码在所有对等节点中得出相同的结论,因为它们在它们的顺序相同。

    因此,如果某笔交易在某个节点上得到验证——当其他节点将收到该交易所在的区块时——他们也会认为它是有效的。

    但是 - 您应该考虑的一个非常重要的方面是数据可用性和同步。 例如,如果您有一个使用 10 个对等点的应用程序,并且只有 1 个对等点获得了事件,而其他对等点没有,并且您在其他对等点上调用另一个事务,则其他对等点将计算的背书可能是变成无效交易,因为他们会模拟旧数据(他们没有得到事件的事实证明他们还没有处理该交易的块),所以你需要记住这一点。

    【讨论】:

    • 非常感谢您的精彩解释。这正是我想确认的。现在我很清楚 Fabric 的交易终结性了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 2017-03-09
    相关资源
    最近更新 更多