您可能会猜到,这里的主要论点:理论与实践之间的差异。从理论上讲,您可以在亚马逊上购买8 TB固态硬盘(您确实需要SSD或NVME; HDD太慢,无法存储区块链状态)。实际上,用于撰写此博客文章的笔记本电脑具有512 GB存储空间,并且如果您让人们去购买自己的硬件,则其中许多都只会变得很懒惰(或者他们买不起800美元的8 TB SSD),并且使用中心化提供商。即使您可以将区块链安装到某个存储上,高水平的活动也可以轻松地快速刻录到磁盘上,并迫使您不断购买新磁盘。 一组区块链协议研究人员对每个人都有多少磁盘空间进行了调查。 我知道样本量很小,但仍然可以说明一些问题. 此外,存储大小决定了新节点能够联机并开始参与网络所需的时间。 现有节点必须存储的任何数据都是新节点必须下载的数据。 初始同步时间(和带宽)也是用户运行节点的主要障碍。 在撰写此博客文章时,同步新的geth节点花了我大约15个小时。 如果以太坊的使用量增加了10倍,那么同步一个新的geth节点将至少花费一周的时间,这很可能导致您的网络连接受到限制。 在攻击过程中,当对攻击的成功响应涉及到从未运行过节点的新用户时,这尤其重要。 交互效应 此外,这三种成本之间存在交互作用。 由于数据库内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随数据库大小的对数增加而增加。 实际上,因为可以将顶层(或顶部的几层)缓存在RAM中,所以磁盘访问成本与数据库的大小成正比,是缓存在RAM中的数据大小的倍数。 不要从字面上看这张图。 不同的数据库以不同的方式工作,并且内存中的部分通常只是一个单层(但很大)(请参阅leveldb中使用的LSM树)。 但是基本原理是相同的。 例如,如果缓存为4 GB,并且我们假设数据库的每一层都比前一层大4倍,则以太坊当前的〜64 GB状态将需要约2次访问。但是,如果状态大小增加4倍至〜256 GB,那么这将增加至〜3次访问。因此,gas限制增加4倍实际上可以转化为区块验证时间增加约6倍。效果可能更强:硬盘已满时,读取和写入所需的时间通常比硬盘快用完时要更长。 那么这对以太坊意味着什么呢? 如今,在以太坊区块链中,尽管在常规硬件上仍然可行(我在写这篇文章时只是在笔记本电脑上同步了一个节点!),但运行一个节点已经对许多用户构成挑战。因此,我们正在接近瓶颈。核心开发人员最关心的问题是存储大小。因此,目前,在解决计算和数据瓶颈方面的英勇努力,甚至是对共识算法的更改,都不太可能导致人们接受的gas限制大幅度增加。即使解决了以太坊最大的突出DoS漏洞,也只能使gas限制增加20%。 (责任编辑:admin) |