什么是内存池?

  • Alchemy
  • 发布于 2022-04-08 23:19
  • 阅读 8

本文介绍了区块链交易中的Mempool(内存池)的概念,它类似于传统软件开发中的“Staging”环境,用于在交易被提交到区块链之前进行验证。文章详细阐述了以太坊交易的生命周期,以及Mempool在验证交易有效性方面的重要作用,还讨论了开发者如何利用Mempool数据来降低成本和解决智能合约中的问题,包括估算 Gas 费用、进行用 NFT Mining以及获取性能洞察。

Written by Alchemy

Brady Werkheiser headshot

Reviewed by Brady Werkheiser

Published on April 7, 20224 min read


在区块链交易中,mempool,或内存池,是等待节点验证的待处理交易列表,然后才能将其提交到区块链上的区块。这类似于在传统的软件开发中使用“Staging”环境,在发布到生产环境之前执行测试和质量控制。

虽然传统的“Staging”环境是中心化的,但每个节点都有自己的mempool来管理。让我们看看交易流程,以了解mempool的用途,以及通过访问它,我们可以了解哪些重要信息:

以太坊交易流程

以太坊交易分为 3 类:

1) 简单转账 - 价值从一个公共地址发送到另一个地址。这可能是支付 NFT 或服务的费用。

2) 部署智能合约 - 每当在区块链上部署智能合约时,都会创建一个交易。

3) 执行智能合约 - 如果一个地址想要向智能合约地址发送资金或数据。

你可以使用Alchemy的监控工具监控以太坊交易,并使用Alchemy Transfers API等工具查找给定地址的交易历史记录。

每种类型的以太坊交易都遵循相同的交易生命周期:

1) 用户创建一个交易并使用其私钥签名。

2) 节点接收交易并将其存储在mempool中

3) 在mempool中时,节点对交易执行验证测试。如果mempool通过测试,则交易状态将移至“Pending”。

4) 节点将待处理交易广播到网络上的所有其他节点,以将交易添加到它们自己的mempool中。

5) 区块构造器将在创建新区块后包含具有最高gas价格的交易。这将使交易移至“Successful”状态。

6) 在节点添加包含该交易的区块后的每个新区块后,交易将收到确认。这提供了交易永久添加到区块链的保证,因为区块重组的风险会随着时间的推移而降低。

Ethereum transaction flow以太坊交易流程

你可以在此处了解有关发送交易的更多信息并发送你自己的交易。

mempool的目的

由于区块链是不可变的,因此输入到区块链上的交易必须是有效且没有错误的。托管mempool的节点在验证每个交易中起着重要作用,然后才开始将其提交到区块链的过程。

对于开发人员来说,了解验证测试非常重要,以了解为什么交易可能会失败或卡在“Pending”状态:

1. 资金可用性

节点验证发送者地址是否有足够的资金来支付正在发送的资金和完成交易的gas费用。如果此验证失败,则该交易将从mempool中删除。必须使用正确的发送参数和目标地址,以确保通过此验证。

2. 交易签名的有效性

每个交易都需要由发送者的地址签名。这是为了识别发送者确实是地址所有者。节点将验证签名是否是附加到发送者地址的正确签名。

Validity of Transaction Signatures交易签名的有效性

3. 正确的 Nonce 值

Nonce值是从发送者地址发送的交易数量。每次发送者交易发送新交易时,nonce值都会增加 1。Nonce值很重要,因为它强制来自给定地址的每个交易都按照发送的顺序发生。

Node validation of Nonce value节点验证 Nonce 值

当交易的nonce值不能被复制或跳过时,这可以防止双重支付或超支可用资金的问题。节点验证正确的nonce值是否附加到待处理的交易。如果此测试失败,则交易将不会进行。

4. Gas 价格

根据mempool的不同,mempool一次可以容纳的交易数量是有限制的。流行的以太坊客户端Geth的默认限制为4096个待处理交易和1024个排队交易。当达到此限制时,gas价格最低的交易将从池中删除以管理空间。

访问mempool

mempool结构的一个主要优势是替换交易可以覆盖待处理交易,以纠正、加速或完全取消它们。你可以找到如何加速交易,以便它们可以使用Metamask更快地被矿工选中。

除了纠正卡在mempool中的待处理交易外,访问mempool对于其他情况也很有用,例如:

1. 估算 Gas 费用

查看当前的待处理交易列表及其连接的费用可以帮助避免支付过高的费用。

2. NFT 挖矿

通过使用mempool扫描器,用户可以深入了解与NFT合约交互的待处理交易,并通过更高的gas费用竞标那些交易。

3. 性能洞察

通过使用Notify API等服务,智能合约开发人员可以从mempool获得有关智能合约活动的洞察。待处理的交易可以提供有关智能合约的错误和漏洞的信息。

结论

mempool在区块链的功能和健康状况中起着重要作用。允许节点验证交易,并允许矿工根据gas费用确定待处理交易的优先级,这是交易流程的重要组成部分。

开发人员还可以使用mempool提供的数据来降低其智能合约的成本和问题。Mempool通常被描述为区块链的“黑暗森林”,但Alchemy Monitoring工具等平台使户能够在此关键步骤中获得更清晰的了解。

Supercharged | Alchemy | Substack

td.doubleclick.net

td.doubleclick.net is blocked

This page has been blocked by an extension

  • Try disabling your extensions.

ERR_BLOCKED_BY_CLIENT

Reload

This page has been blocked by an extension

Get free Ethereum RPCs and developer tools Get your API key

📚 Table of contents


  • Ethereum Transaction Flow
  • Purpose of a mempool
  • Access a mempool
  • Conclusion

Share:

Overview cards background graphic

Related overviews

Featured content card overlay\ \ Ethereum\ \ Ethereum Sharding: An Introduction to Blockchain Sharding\ \ What is Blockchain Sharding and How Does it Relate to Ethereum? Featured content card overlay\ \ Ethereum\ \ What are reinforced transactions?\ \ Explore a New Transaction Type that Guarantees Transactions are Mined and Optimized for Gas Featured content card overlay\ \ Ethereum\ \ What are Ethereum commitment levels?\ \ Learn About Safe (Justified), Finalized, and Latest Commitment Levels

Desktop section background image

Build blockchain magic

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.

Get your API key

  • 原文链接: alchemy.com/overviews/wh...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Alchemy
Alchemy
江湖只有他的大名,没有他的介绍。