
IPFS与区块链分别解决什么问题
IPFS是一种分布式文件存储与访问系统,可以用于文件、网站和应用数据。区块链则通过相互关联的区块和共同验证规则维护记录。比特币开发者指南以交易账本为例,说明区块链如何记录交易顺序、防止重复花费,并提高修改历史记录的难度。
两者可以配合使用,但承担的职责不同:文件系统关心数据如何保存和取得,区块链还需要确定哪些记录有效、以什么顺序被接受。使用点对点网络,并不意味着系统就是区块链。

哈希、区块与共识如何区分
哈希是由数据计算出的摘要,可用于校验内容是否发生变化。比特币区块通过前一区块头的哈希形成关联,交易哈希还会组织成默克尔树,支持验证交易是否包含在某个区块中。这里的“区块”是账本结构中的单位,不能把任意文件分块都理解为区块链区块。

共识涉及参与者依据共同规则接受记录。哈希校验回答“内容是否匹配”,共识还要处理“哪些记录应被接受”。一份文件即使能够通过哈希验证,也不能仅凭这一点证明其描述的现实事件真实。
链上与链下存储的适用条件
以太坊开发文档指出,大量数据直接存入以太坊会受到存储负担与费用的约束;IPFS可以承担文件存储与访问,但自身没有内置的存储激励机制。长期保留数据需要额外安排,例如固定服务或持续运行的节点。
链上存储指数据写入区块链;链下存储指内容保存在链外。对于图片、文档等较大内容,一种协作方式是在链外保存文件,在链上记录用于引用或校验的信息。适用前提是应用分别解决记录验证和文件持续可获取的问题。
持久化、固定与激励分别指什么
持久化关注数据能否持续保留。IPFS中的固定,即pin,是要求节点保留相应内容的机制;它的效果取决于承担保存任务的节点或服务是否持续工作。存储激励则用于促使参与者提供资源,不能与文件校验混为一谈。
评估存储安排时,需要明确由谁保存、保留多久、如何维护副本,以及服务结束后如何继续保存。能够识别一份文件,不等于始终有人提供这份文件。
常见问题:上链是否等于永久可用
文件引用写入链上,不代表文件正文也已上链。如果链外副本不再可获取,链上的引用仍可能存在,但无法据此恢复缺失内容。同样,上传到IPFS也不意味着每个节点都会保存副本。理解这类系统时,应分别判断记录是否可验证、内容是否有人保存、访问路径是否可用。