我希望确保一些事务以特定的顺序执行,同时同时将它们全部发送出去(最好是在单个块内)。以下是这些交易的样子:
2依赖于第1次运行,3依赖于第2次运行。
看来我可以用网络3‘S批次来保证这个订单。我是否可以或web3批处理只保证此节点将消息一起传播到下一个节点?
发布于 2017-08-16 00:20:04
不,如果它们是单独的事务,则由挖掘节点的事务排序规则来确定它们是否都发生在同一个块中。
如果您想要原子事务,我建议您使用一次性的、自毁的合同来为您完成工作。
就像这样:
contract AtomicInteraction {
function AtomicInteraction() payable {
// Fund ETH
// Interact with Contract
// Interact with Contract
selfdestruct(msg.sender);
}
}您可能会让它更加通用,并让它为每条消息接受一个地址数组和一个数据数组,但对于可能需要一些特定于应用程序的逻辑来说,这是一个相当复杂的解决方案。
发布于 2018-01-21 07:41:45
您将需要编写一个定制的等待挖掘函数,该函数通过将事务哈希传递到web3.eth.getTransactionReceipt()来根据上一个事务的事务接收发送一个新事务,并使用基于阻塞时间的js setTimeout函数对其进行rap处理。
https://ethereum.stackexchange.com/questions/24430
复制相似问题