【发布时间】:2017-10-28 20:03:29
【问题描述】:
根据架构解释 (http://hyperledger-fabric.readthedocs.io/en/latest/arch-deep-dive.html),排序服务将事务 (RWSet) 收集到块中以分发给提交的对等方。然后,提交节点验证背书策略,然后 RWset 将交易应用到账本。
为了验证事务是否成功,客户端应用程序是否应该等待所有提交的对等方返回“成功”事件?还是只需要验证一个“成功”事件?
【问题讨论】:
根据架构解释 (http://hyperledger-fabric.readthedocs.io/en/latest/arch-deep-dive.html),排序服务将事务 (RWSet) 收集到块中以分发给提交的对等方。然后,提交节点验证背书策略,然后 RWset 将交易应用到账本。
为了验证事务是否成功,客户端应用程序是否应该等待所有提交的对等方返回“成功”事件?还是只需要验证一个“成功”事件?
【问题讨论】:
为了验证交易是否成功,客户端应用程序应该 等到所有提交的对等方返回“成功”事件?要不就 只需要验证一个“成功”事件吗?
田中,这是一个非常好的问题! 简短的回答是否。
原因是与现有流行的区块链相比,HLF 具有独特的交易生命周期:
因此,如果某笔交易在某个节点上得到验证——当其他节点将收到该交易所在的区块时——他们也会认为它是有效的。
但是 - 您应该考虑的一个非常重要的方面是数据可用性和同步。 例如,如果您有一个使用 10 个对等点的应用程序,并且只有 1 个对等点获得了事件,而其他对等点没有,并且您在其他对等点上调用另一个事务,则其他对等点将计算的背书可能是变成无效交易,因为他们会模拟旧数据(他们没有得到事件的事实证明他们还没有处理该交易的块),所以你需要记住这一点。
【讨论】: