主页 > www.token.im > 阅读比特币白皮书(7.回收磁盘空间)

阅读比特币白皮书(7.回收磁盘空间)

www.token.im 2023-07-04 05:13:56

原创

一旦硬币中的最新交易被埋在足够多的区块下,可以丢弃之前花费的交易以节省磁盘空间。为了在不破坏区块哈希的情况下促进这一点,交易在默克尔树 [7][2][5] 中进行哈希处理,只有根包含在区块的哈希中。然后可以通过砍掉树枝来压实旧块。内部哈希不需要存储。

没有交易的区块头大约有 80 个字节。如果我们假设每 10 分钟生成一次块,则每年 80 字节 * 6 * 24 * 365 = 4.2MB。截至 2008 年,计算机系统通常以 2GB 的 RAM 销售,并且摩尔定律预测当前每年增长 1.2GB,即使必须将块头保存在内存中,存储也不成问题。

一个完整的比特币节点占内存多大

翻译

如果最近的交易已经包含在足够多的区块中,那么可以丢弃交易之前的数据以回收硬盘空间。同时为了保证区块的hash值不被破坏,在对交易信息进行hash时,以Merkle树的形式构建,使得随机数中只包含根(root)块的哈希值。旧块可以通过截断树枝来压实。内部随机哈希值不必保存。

一个完整的比特币节点占内存多大

没有交易信息的区块头只有80字节大小。如果我们将块生成速率设置为每 10 分钟一个,那么每年生成的数据位为 4.2MB。 (80 字节 * 6 * 24 * 365 = 4.2MB)。 2008 年,PC 系统通常的内存容量为 2GB。根据摩尔定律,内存容量每年会增加1.2G,即使所有区块头都存入内存,也不是问题。

关键词解读1、默克尔树(Merkle Tree)

一个知识点,原理如图,我的理解是多次hash计算,最后得到一个root hash值。

一个完整的比特币节点占内存多大

2、保存

这里有两种节省磁盘空间的方法:

(1)历史区块可以删除;

一个完整的比特币节点占内存多大

(2)只能保存区块头,不能保存交易详情。

3、存储(存储)

一个完整的比特币节点占内存多大

每月交易次数

每月块大小

目前每月约1000万笔交易,产生的区块空间约4-6G一个完整的比特币节点占内存多大,一年约50-70G,目前总规模约600G+。以目前存储的发展速度来看一个完整的比特币节点占内存多大,短期内应该没有问题。