区块链论文速读A会-ATC 2024 如何降低以太坊存档节点的存储要求?

时间:2024-07-12 07:12:19

图片

Conference:USENIX Annual Technical Conference (ATC) 

CCF level:CCF A

Categories:Computer Architecture/Parallel and Distributed Computing/Storage Systems

Year:2024

Num:1

Conference time:July 10-20, 2024

1

Title: 

SlimArchive: A Lightweight Architecture for Ethereum Archive Nodes

SlimArchive:以太坊存档节点的轻量级架构

Authors

图片

Abstract

With the rapid development of Ethereum, archive nodes that record all historical states have become a critical component of the infrastructure. However, current archive nodes suffer enormous storage requirements and poor performance due to the inefficient authenticated Merkle Patricia Trie and coarse-grained state granularity. This paper presents a lightweight and high-performance architecture for Ethereum archive nodes to address the two limitations mentioned earlier. The core idea of our approach is to maintain compacted, flattened, and fine-grained (i.e., transaction-level) historical states by flattening the minimum state changes of each transaction required for the world state. Our method maintains an archive node with minimum storage requirements while providing high-performance state access. We have implemented a prototype system named SLIMARCHIVE for Ethereum. The evaluation results demonstrate that our approach reduces storage requirements by 98.1%, improves state access throughput by 19.0×, and speeds up transaction execution by an average of 1112.5×, compared to vanilla Geth.

随着以太坊的快速发展,记录所有历史状态的档案节点已成为基础设施的重要组成部分。然而,由于认证 Merkle Patricia Trie 效率低下和状态粒度粗,当前的档案节点面临着巨大的存储需求和糟糕的性能。

本文提出了一种轻量级、高性能的以太坊档案节点架构,以解决前面提到的两个限制。我们方法的核心思想是通过扁平化世界状态所需的每笔交易的最小状态变化来维护紧凑、扁平和细粒度(即交易级别)的历史状态。我们的方法维护一个具有最低存储要求的存档节点,同时提供高性能的状态访问。我们为以太坊实现了一个名为 SLIMARCHIVE 的原型系统。评估结果表明,与 vanilla Geth 相比,我们的方法将存储要求降低了 98.1%,将状态访问吞吐量提高了 19.0 倍,并将交易执行速度平均提高了 1112.5 倍。

图片

    如图 1 所示,以太坊维护两种类型的 MPT:状态 trie(左侧部分)和存储 trie(右侧部分)。

    每个区块维护记录帐户状态的状态 trie 的 StateRoot;每个合约帐户维护记录合约存储状态的存储 trie 的 StorageRoot。

    account和storage存储在叶节点中(图 1 中的灰色矩形)。MPT 是一个 16 基数 trie。路径是一系列十六进制数字,表示地址或插槽密钥。

    为了节省磁盘空间,如果节点只有一个子节点,MPT 会将节点与其子节点合并。因此,MPT 实际上的深度低于完整的 MPT。在以太坊中,状态访问需要从根到叶搜索 MPT(图 1 中的红线)。

图片

图片

洞察 1. 在大多数实际使用场景中,不需要对历史状态进行数据认证。

我们的解决方案:为了在不需要数据认证的情况下实现更高效、更具成本效益的存档节点,我们可以采用压缩扁平的数据模型,而不是复杂的历史状态 MPT,以最大限度地减少中间数据并简化状态访问。

图片

洞察 2. 虽然以太坊在外部看起来具有块级状态转换,但在低级执行层(EVM),导致状态转换的基本单位是交易,即执行层状态转换的粒度是交易。

我们的解决方案:我们可以将历史状态的粒度细化为执行层的交易,以消除预处理造成的开销。

图片

图片

图片

图片

图片

图片

Pdf link:

https://www.usenix.org/conference/atc24/presentation/feng-hang

图片

关注我们,持续接收区块链最新论文

洞察区块链技术发展趋势

Follow us to keep receiving the latest blockchain papers

Insight into Blockchain Technology Trends