
剪裁:理解本地数据保留策略
区块链剪裁技术相关术语如何理解,首先要明确“剪裁”的对象。剪裁也常称为修剪,对应 pruning,讨论的是节点如何减少本地保留的数据。理解这种机制时,需要分别看节点验证过什么、目前保存什么,以及还能提供哪些查询服务。删除部分本地旧数据,不代表网络共同认可的历史被改写。
全节点:重点在于验证能力
Bitcoin.org 的全节点介绍将完整验证交易与区块作为核心,并说明初始同步涉及下载和验证区块。这说明“全节点”首先描述验证能力,不能仅凭磁盘占用判断。
验证能力与历史资料保留量是两个维度。讨论剪裁节点时,应明确它是否继续执行协议要求的验证,以及哪些历史查询会因本地数据删除而受限,不能把节省存储直接理解为省略验证。
历史状态与归档节点
Ethereum.org 的节点说明区分了全节点和归档节点:全节点可清理部分旧状态;归档节点保留历史状态,便于查询过去某一区块时的账户情况。
区块记录交易等信息,状态则表示交易执行后形成的账户、余额或合约数据。保留区块历史和保留每个历史时点的状态,并非同一要求。因此,看到“删除旧数据”时,应进一步确认删除的是区块内容、历史状态还是其他辅助数据,不能笼统理解为删除全部旧区块。
轻节点与同步:两个容易混淆的概念
轻节点通常借助区块头及相关证明验证所需信息,并从其他节点取得额外数据。剪裁描述数据保留方式,轻节点描述另一种数据获取与验证方式,两者不能只因存储较少就视为同类。
同步是节点追上链上进度的过程,剪裁是数据保留策略。最终占用空间较少,不意味着初次同步的下载量、计算量也同比减少;判断资源需求时,需要同时考虑同步方式和保留方式。
适用条件与常见问题
剪裁适用于希望控制磁盘占用、又不需要随时直接查询全部历史数据的场景。需要频繁查询历史账户或合约状态的服务,则更依赖相应的历史数据支持。
剪裁后还能查询旧状态吗?这取决于所需数据是否仍在本地,以及客户端能否重新取得或重建数据。恢复可能需要额外时间与资源,不能默认即时完成。不同链和客户端的策略也不通用,具体保留范围与恢复条件应按对应实现理解。