简而言之:全节点存储区块链的当前状态,并验证所有新交易和区块,但会修剪较旧的历史数据以节省存储空间。存档节点不仅具备全节点的所有功能,还会保留从创世区块开始的完整历史状态。您需要哪种节点,取决于您的应用是仅需当前数据,还是需要访问任意时间点的历史状态。
简明解释
每个区块链节点都会下载并验证区块链,但并非每个节点都存储相同数量的数据。可以将其比作图书馆与档案馆的区别。全节点就像图书馆:它拥有当前流通的所有书籍,并能告诉你书架上现在有哪些书。而存档节点则像国家档案馆:它收藏了自区块链诞生以来出版过的每一本书、每一个版本,以及所有已绝版的文稿。
在Ethereum 上,全节点会存储所有账户、余额和智能合约的当前状态,以及足以验证区块链完整性的近期区块历史记录。默认情况下,大多数Ethereum 客户端会将最近 128 个区块的状态数据保存在可快速访问的状态,这大致涵盖了过去 25 到 30 分钟的网络活动。 更早的数据会被修剪以节省磁盘空间。从技术上讲,全节点仍可通过重放从创世区块开始的交易来重建较早的状态,但该过程极其缓慢且计算成本极高。
归档节点完全跳过了数据修剪过程。它存储了自区块链诞生以来每个区块的完整区块链状态快照。这意味着你可以查询区块链历史中任意时间点的任何钱包余额、任何智能合约的存储内容或任何交易的输出,并立即获得响应。 无需重放。其代价是存储空间。运行 Geth 的全节点(Ethereum )需要约 1TB 的 SSD 空间。运行 Geth 的归档节点则需要超过 12TB,且这一数字每天都在增长。Erigon 作为一款存储效率更高的客户端,将归档空间需求降低至约 2TB,但仍远高于经过修剪的全节点。


