Hyperledger Fabric,停止并行链码执行
Hyperledger Fabric, stop parallel chaincode execution
所以我对 hyperledger fabric 有一个问题,为什么允许链代码在 hyperledger 中并行执行,如下所示:
running push()
2
ending push()
running push()
1
ending push()
running push()
3
ending push()
running push()
5
ending push()
running push()
4
ending push()
所以我在这里做的是:
- 创建新事务并发送 2 个对象
- 立即发送另一笔交易
因此,在更新分类帐之前,密钥应该是例如:3 + 2 = 5,然后是 5 + 1 = 6
但在这种情况下这是错误的,因为它以:3 + 2 = 5 开头,并且在更新分类帐之前,另一个推送是从当前密钥 3 + 1 = 4 而不是从 5 + 1 = 6 完成的。
我该如何解决这个问题?
(我)
请记住,链码执行只是智能合约逻辑计算的模拟。
换句话说 - 链码执行会告诉您 如果交易被提交,通道的更新是什么 .
当客户端从对等节点(包含模拟)取回背书时 - 它会将其发送给排序节点以安排出现在下一个可用批次中的某个块中,该批次将切割一个块。
仅当该块被保存到分类账中时(并且仅当交易有效时 - 意思是,它没有被先前块中的任何其他交易或它来自的块内的先前交易中的任何其他交易无效) - 下一次链码执行可能会看到交易的变化。
(二)
why it is allowed the chaincode to be executed parallel in hyperledger
like this:
因此,从 (I) 可以得出 not 没有必要并行执行链码,因为在任何情况下链码执行的结束并不意味着下一次执行将读取该数据。
所以我对 hyperledger fabric 有一个问题,为什么允许链代码在 hyperledger 中并行执行,如下所示:
running push()
2
ending push()
running push()
1
ending push()
running push()
3
ending push()
running push()
5
ending push()
running push()
4
ending push()
所以我在这里做的是: - 创建新事务并发送 2 个对象 - 立即发送另一笔交易
因此,在更新分类帐之前,密钥应该是例如:3 + 2 = 5,然后是 5 + 1 = 6
但在这种情况下这是错误的,因为它以:3 + 2 = 5 开头,并且在更新分类帐之前,另一个推送是从当前密钥 3 + 1 = 4 而不是从 5 + 1 = 6 完成的。
我该如何解决这个问题?
(我) 请记住,链码执行只是智能合约逻辑计算的模拟。 换句话说 - 链码执行会告诉您 如果交易被提交,通道的更新是什么 .
当客户端从对等节点(包含模拟)取回背书时 - 它会将其发送给排序节点以安排出现在下一个可用批次中的某个块中,该批次将切割一个块。
仅当该块被保存到分类账中时(并且仅当交易有效时 - 意思是,它没有被先前块中的任何其他交易或它来自的块内的先前交易中的任何其他交易无效) - 下一次链码执行可能会看到交易的变化。
(二)
why it is allowed the chaincode to be executed parallel in hyperledger like this:
因此,从 (I) 可以得出 not 没有必要并行执行链码,因为在任何情况下链码执行的结束并不意味着下一次执行将读取该数据。