归档节点与归档数据
归档节点是用来识别一个以太坊全节点是否运行在归档模式的简单的方法。
以太坊全节点需要存储区块数据,例如区块头、区块内容等,但是不需要 持久化生成的世界状态。全节点只需要保留足够长的世界状态以便于在区块链 重组时进行重算 —— 默认情况下保留128个区块的世界状态。
一个运行在非归档模式的全节点将会剪出多余的世界状态以便节省磁盘空间。 这有助于缩短同步时间,并且可以极大地减少存储空间以及计算成本。由于 以太坊的账户与合约存储的运行原理,这意味着只有归档节点可以提供对 128个区块之外的历史状态的API请求。
我是否需要归档数据?
以太坊JSON-PRC和Websocket API中有一些方法可能需要访问归档节点。这些 方法包含了额外参数来指定要请求的区块编号。
如果你需要使用以下方法检查历史数据(超出最近的128个区块的历史数据), 那么你需要使用归档数据:
- eth_getBalance
- eth_getCode
- eth_getTransactionCount
- eth_getStorageAt
- eth_call