作者 | Kirubakumaresh Rajendran
翻译 & 编排 | Echo
🔗 本期原文链接:https://www.twigblock.com
人们是如何获取到这些信息的?
以太坊网络上的所有活动都被记录在公共区块链中。每个参与节点都包含原始数据,可以通过查询这些数据来了解或回答关于生态系统中正在发生的事情的问题。
让我们来看看以太坊节点中的数据存储:全局状态、交易、追踪、日志和内存池(Mempool)。
全局状态
以太坊中的每个参与节点都维护一个全局状态,随着新区块被添加到区块链中,该状态会不断更新。
全局状态包含以下内容:
所有账户的 ETH 余额。
智能合约代码和数据。例如,对于 NFT 合约,状态可能包含代币和所有权信息;对于 DAO 合约,可能包含代币、成员、投票控制或资金库余额。
由于所有信息都存储在状态中,任何人都可以通过查询最新状态来了解真实情况。
交易
对全局状态的任何更改都是通过交易完成的。交易被分批打包(通常称为「区块」),然后添加到区块链中。
一些常见的交易类型包括:
账户之间的 ETH 转账。
新智能合约的部署。例如,耐克推出自己的 NFT。
智能合约状态的更改。例如,用户购买 NFT 代币。
追踪
追踪记录了交易的详细运行时数据。在执行过程中,交易可能会失败、调用另一个合约或转移 ETH。这些活动不会记录在区块链中,但可以在追踪数据中查看。
大多数节点默认不存储追踪数据,因为这会增加存储成本并影响节点性能。然而,这些数据对于理解交易内部发生的事情至关重要,否则无法看到这些细节。
一些常见的追踪场景包括:
了解交易失败的原因。
内部代币转账。例如,智能合约可能会向特定用户空投代币。
内部合约调用。例如,智能合约可能会调用另一个合约来检查用户是否有资格领取代币。
自毁操作。智能合约从区块链中移除自己,并将余额转移到特定账户。
日志
日志用于存储合约不需要但其他应用程序(如 UI 通知、分析工具、预言机等)可能需要访问的数据。日志的一些用途包括:
向用户显示交易状态的通知。
NFT 市场应用程序可以通过搜索涉及特定代币的所有转账事件的日志来显示代币所有权历史。
内存池(Mempool)
内存池包含等待被添加到区块链中的交易。由于每个节点的配置可能不同,内存池数据在所有节点中可能并不一致。内存池数据有多种用途,包括:
分析待处理交易以调整新交易的 Gas 价格。
抢先交易(Front Running)。
结论
所有区块链数据都是公开的,任何人都可以访问。通过使用上述数据点,可以揭示区块链网络中正在发生的事情的洞察。
然而,实际操作并不容易,原因包括:
设置和维护以太坊节点的开销。
数据检索和转换的挑战。
但许多数据提供商(如 TheGraph、Dune Analytics 和 Flipside Crypto)正在努力使区块链数据更易于访问。