Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

以太坊事务状态 – Pending, Mined, Dropped & Replaced

Posted on 2023年9月19日 by hackdl

解释以太坊和其他区块链上不同事务状态的含义,以及如何处理每个状态,以确保您的交易及时被挖掘。


什么是内存池?

内存池是指一个节点中等待验证的未确认交易的集合,这些交易在提交给区块链上的新块之前必须经过验证。简单来说,内存池是节点中未确认交易的暂存区。网络中的每个区块链节点都有一个内存池,并相互通信以共享有关最新待处理交易的信息。

内存池存在的原因是每个区块只能确认约200个交易,而每15秒左右才能挖掘一个新的区块。

因此,未确认交易会通过网络中所有内存池广播,并附带一个关联的燃气价格(即发送方愿意支付的燃气费用,以完成其交易)。当一个新块被挖掘时,拥有最高燃气价格的约200个未确认交易将被挖掘该块的节点确认到区块链上。

如果交易未能通过一系列验证检查或提交的燃气过少,这些交易将最终从内存池中删除。

什么是 nonce?

Nonce 是一个 0 索引数字,对应于特定地址发送的已确认交易数量。也就是说,如果一个地址没有已确认的交易,它会将第一笔交易标记为 0 的 nonce,并将希望发送的后续交易标记为 1 的 nonce。

特定发送地址的每个已确认交易都必须具有唯一的 nonce 值。例如,如果发送者提交两个 nonce 值为 1 的交易,只有一个可以成功。

为什么需要设置nonce?

Nonce存在的目的是为了防止重放攻击。

例如,如果没有nonce,A向B发送20个硬币的交易可以被B一遍又一遍地重放,以持续耗尽A的余额。因为交易被提交为哈希值,所以B可以简单地复制发布到区块链的哈希交易并反复运行它。

然而,如果在创建哈希事务之前设置唯一的nonce,它将防止重放攻击,因为每个确认的交易必须具有唯一的nonce值,随后的相同交易将失败。

发送方正确设置nonce值非常重要,以确保交易有机会得到确认,因为使用无序或重复nonce值提交的交易将从内存池中删除。

Nonce还有助于保证交易的顺序。例如,如果发送方可以提交5个nonce从0-4的交易,他们可以期望交易将严格按照它们的nonce顺序执行。

一个内存池交易可以处于哪些交易生命周期状态?

传统上,mem池交易可以分为以下三类:

未确认交易

已提交到mem池中,等待被矿工包含在下一个块中。了解更多有关调试未确认以太坊交易的信息。

已挖掘交易

已被选择并包含在最新的块中。然后将这些交易的结果广播到整个网络。已挖掘的交易可以有两种状态:

成功

这些交易已成功执行并修改了链上的状态。成功交易的status字段为0x1。

失败/执行被撤销

这些交易未成功执行,但仍包含在块中。如果执行过程出错、用光gas或遇到其他问题,就会发生这种情况。失败交易的status字段为0x0。

要检查挖掘的交易是成功还是失败,可以调用eth_getTransactionReceipt并传递您的交易哈希。在有效载荷中,您将找到一个status字段,对于失败交易,该字段为0x0,对于成功交易,该字段为0x1。

已删除交易

未能确认的交易。这可能是因为交易未通过某些验证测试、nonce不正确、提交的gas价格太低并超时,或发生了许多其他错误。已删除的交易将其资产和gas费退还给发送方,就像交易从未发生过一样。

需要帮助解决已删除交易吗?观看我们的教程,了解如何使用Alchemy的Mempool监视器来修复未确认或挂起的交易。

什么是Dropped & Replaced交易?

这是开发者们普遍请求的一个新类别。当一个交易被拒绝时,发送者通常会发送一个具有相同nonce值的替代交易来“替换”失败的交易。

如果第二个交易被确认到区块链上(例如通过发送一个具有相同nonce和更高gas价格的新交易),那么“被拒绝”的交易将被移动到新的交易状态类别,即“Dropped & Replaced”。

同样地,如果同时发送多个具有相同nonce值的交易,通常具有更高交易费的交易将被选择确认到一个块上。其他交易将进入“Dropped & Replaced”类别。

这个交易状态对于智能合约开发者非常有用,因为它允许他们跟踪哪些交易已经成功地重新广播到区块链网络(“被拒绝和替换”),哪些被拒绝的交易仍然需要重新广播(“被拒绝”)。

如何追踪已放弃和替换的交易

如果您通过Alchemy提交交易,我们提供了一个方便的web3开发工具来快速过滤和探索您最近提交的交易:Mempool Watcher。

在发布Mempool Watcher工具之前,开发人员必须通过Etherscan(通常不可靠)或手动查询其节点来检索mempool的当前状态并解析响应以获取相关交易状态详细信息。

使用Mempool Watcher,使用Alchemy的web3开发人员现在可以在单个UI中看到所有交易,并按已挖掘、待处理、已放弃和已放弃并替换的交易进行过滤。构建者还可以按以下过滤器搜索交易:

  • 提交日期
  • 发送方地址
  • 相关交易哈希

Web3开发人员还可以使用Alchemy Notify API(交易活动的Webhook警报):

  • 创建已放弃和已挖掘交易的通知
  • 使用Zapier发送交易状态通知
  • 将交易通知与dApp集成

如何开始使用 Mempool Watcher?

立即注册免费的 Alchemy 帐户 以访问 Mempool Watcher,开始跟踪您的丢弃和替换交易,并访问一系列强大的区块链开发工具!根据我们目前的定价,您将能够在我们的免费层级中每月向 mempool 发送 120 万笔交易 – 这是 Web3 生态系统中最慷慨的。

本文由mdnice多平台发布

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net

相关推荐: 如何在Spring初始化Bean或销毁Bean前执行某些操作

阅读文本大概需要3分钟。 0x01:通过在Bean中定义init-method 和 destory-method方法 1. public class Car { 2. 3. 4. public Car() { 5. System.out.println(“Ca…

Related posts:

  1. 服务器租用与托管:成本比较分析
  2. 高效稳定的服务器托管销售方案
  3. 杭州大带宽服务器租用一年多少钱
  4. 高性能移动服务器托管云,优质服务助您事业飞跃
  5. 武汉服务器租用:高效稳定的网络服务

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 手把手教你实战TDD | 京东云技术团队
下一篇: 免杀工具 — SysWhispers3WinHttp

最新更新

  • 如何快速在 Apache DolphinScheduler 新扩展一个任务插件?
  • 简析IAST—Agent篇 | 信息安全
  • .Net8 AOT+VMP简单的逆向分析
  • 案例6-YApi Python SDK开发
  • 十行代码让日志存储降低80%

随机推荐

  • 服务器托管与虚拟机哪个好
  • idg机房租用
  • 中小企业服务器托管优势分析
  • 三线服务器托管的优势
  • 光大证券:高效服务器托管方案

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8