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


    图片

    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

  • 相关阅读:
    【开发篇】十二、缓存框架JetCache
    16.希尔排序
    22.SELECT基本查询
    秒杀系统设计
    金色传说:SAP-ME-IDOC:使用基本类型LOIPRO01向ME发送生产订单,IDOC状态30问题解决
    跨域的几种解决方案
    【每日一题Day343】LC2731移动机器人 | 脑筋急转弯+数学
    Python快速计算24点游戏并获取表达式
    Class常量池与运行时常量池
    【C++杂货铺】优先级队列的使用指南与模拟实现
  • 原文地址:https://blog.csdn.net/u013288190/article/details/140361332