首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以太坊如何在不同的世界状态下处理重复事务,这意味着一个tx有效而另一个无效?

以太坊如何在不同的世界状态下处理重复事务,这意味着一个tx有效而另一个无效?
EN

Stack Overflow用户
提问于 2018-08-23 18:47:36
回答 1查看 868关注 0票数 2

step1:我创建了一个智能合约调用事务TX并将其发送到以太坊。

step2:验证TX并广播到其他节点。

step3: Evm执行TX失败(可能是因为实体化函数返回错误等原因)。

step4:其他人更改了约定状态,我之前的TX现在有效。

我的问题是,如果我现在重新发送TX,它会作为重复事务被执行或丢弃吗?

如果以太坊不做重复检查,一笔交易可能会在p2p网络中循环?

EN

回答 1

Stack Overflow用户

发布于 2018-08-23 23:23:29

每个事务都有一个现时值。每次发送事务时,必须递增nonce。

因此,在您的场景中,假设第一个事务的nonce为5,该事务失败。您发送的下一个事务必须具有nonce 6。因此,您不能简单地重播相同的事务-它将因为具有无效的nonce而被拒绝-但您可以创建一个除了递增nonce之外的相同的新事务。那一个将有资格被开采成一个区块。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51984026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档