
重复存储指什么
区块链重复存储通常指同一批区块、交易或状态数据由多个节点分别保存。它让节点能够依据本地数据进行核验,也为其他节点提供数据获取渠道。讨论适用条件时,需要区分区块历史、当前状态和历史状态,这些数据的保存范围并不相同。
比特币开发者文档说明,全节点独立验证区块,并依据共识规则维护账本;区块之间的哈希关联使历史修改可以被识别。这表明,副本必须结合验证规则才有意义,重复保存本身不能保证记录有效。

条件一:存在独立核验和共同账本需求
当多个参与方需要核对同一套记录,并希望减少对单一数据提供者的依赖时,分别保存可验证的数据具有明确用途。节点可以自行检查收到的区块是否符合规则,而不只是接受外部服务返回的结论。

如果需求仅是文件备份,没有共同验证账本的要求,单凭需要多个副本这一点,还不足以证明采用区块链的必要性。
条件二:具备一致规则和相对独立的节点
各节点需要遵循兼容的协议规则,并能通过网络传播、获取和验证数据。网络延迟或分叉可能让节点暂时看到不同的链头,因此业务还需理解所用协议如何处理这些差异。
冗余的作用也取决于故障是否相互独立。副本集中在同一设备或同一故障环境中,仍可能同时不可用。节点数量不能直接等同于安全程度,还要考虑运行环境和软件实现的共同风险。
条件三:资源投入与保存范围相匹配
以太坊节点文档区分全节点、归档节点和轻节点:全节点承担数据验证,归档节点保留更丰富的历史状态,轻节点使用较少本地数据并向其他节点请求信息。这说明,独立验证需求和历史查询需求会影响存储方式。
重复保存会增加磁盘占用、同步流量和维护负担。适用前提是这些开销能够持续承担,并且保存范围确实服务于验证或查询需求。频繁查询过去某个时点的状态,与仅核验当前状态,对存储的要求不同。
常见问题
所有节点都要永久保存全部数据吗?不需要。节点角色和裁剪策略不同,保存内容也不同。能够验证数据,不代表本地始终保留全部历史状态。
副本越多就越安全吗?不能直接这样判断。副本有助于数据获取和运行韧性,但有效性仍取决于验证规则,共识安全也不能仅由副本数量推断。
重复存储能证明现实信息真实吗?不能。它可以支持核验链上记录及其一致性;写入信息是否符合现实,还需要链外证据。