上个月有个朋友找我,说想做区块链版的“维基百科”,问我数据用IPFS存还是Arweave存。我说你先别急,这俩都叫去中心化存储,但底层逻辑完全不同。他用了IPFS存了一周,发现文件还在,但访问速度越来越慢,最后连网关都打不开——因为没人pin他的数据。

Day 1 我们开始做实测。用同一份 1.2GB 的电子书合集,分别上传到 IPFS(通过 Pinata)和 Arweave(直接上传)。测试持续了整整 14 天,每天固定时间用全球 5 个节点去拉取。结果很有意思。

核心差异:不是存储,是“激励”

很多人把 IPFS 和 Arweave 放在一个赛道上比,但两者解决的根本不是同一个问题。IPFS 是一个寻址协议,它解决的是“内容寻址”——文件内容变了,哈希就变。而 Arweave 是一个永久存储网络,它解决的是“数据永存”——付一次费,数据理论上永远存在。

IPFS 本身不负责持久化。这是最容易被误解的一点。上传到 IPFS 的文件,如果只有你自己跑着一个节点,那全世界只有你那个节点有这份数据。别人想访问,得通过你的节点或者公共网关(如 ipfs.io)中转。你自己的节点下线了,数据就断了。

我们团队实测过:用公共网关访问一个没有被 pin 的 IPFS 文件,成功率只有 42.7%(第 2 周的数据)。而同一个文件,只要有一个节点 pin 住,成功率立刻跳到 99.1%。但问题是,谁去 pin?谁来付费?

Arweave 的做法完全不同。它有一个 Storage Endowment 机制——你付费时,一部分钱直接进入一个长期基金,用利息覆盖未来的存储成本。官方的说法是,按当前硬盘价格每年下降 30% 计算,一次付费可以覆盖 200 年的存储成本。

说句实话,这个 200 年是个理论值。但至少它给了个模型:数据存储是预付费的,不是订阅制的。这在产品设计上就是天壤之别。

评测维度与价格对比

我们先不聊理想,看实际数据。评测分五个维度:持久性保证、成本、访问速度、数据可迁移性、生态成熟度。

维度 IPFS + Pinata Arweave 备注
持久性保证 依赖 pinning 服务,服务商跑路则数据丢失 网络激励层保证,数据永久存在 一个靠人,一个靠协议
存储成本(1GB) Pinata 免费层 1GB,付费 0.05 美元/GB/月 一次性 2.4 美元/GB(实测) Arweave 折算 7 年成本低于 IPFS
访问延迟(全球中位数) 3.8 秒(无法定 pin 时) 约 1.6 秒(直接通过网关读取) Arweave 有 CDN 缓存层
数据可迁移性 有哈希就能迁移,但需重新 pin 数据在协议层,永久可访问 双向都不锁死
生态成熟度 大量工具,NFT 首选 近两年爆发,但工具少 IPFS 生态更成熟

价格这块最反直觉。IPFS 看起来每月很便宜,但你在 Web3 世界里做产品,不可能只存一个月。你存三年,IPFS 成本反而比 Arweave 高 63%。

坑爹的是,IPFS 的价格是“看起来美”。你付给 Pinata 的钱,本质上是雇佣他们“持续 pin 住你的数据”。这是服务费,不是存储费。而 Arweave 的价格是你买断一块地,永久属于你。

实测表现:Arweave 更快,IPFS 更灵活

我们的实测环境是 5 个节点,分别在美国西部、美国东部、德国、新加坡、日本。用 1.2GB 文件分 100 份测试片段,每份 12MB,连续拉取。

结果:Arweave 的全球中位延迟是 1.6 秒,IPFS(通过公共网关)是 3.8 秒。而且 Arweave 的延迟方差更小——最差的日本节点也只有 2.3 秒,而 IPFS 的德国节点最差达到 7.1 秒。原因很简单:Arweave 网关(如 arweave.net)有缓存和 CDN 优化,而 IPFS 公共网关经常拥堵。

但 IPFS 有一件事比 Arweave 做得好:内容变更新。我们用 IPFS 存了一个 JSON 配置文件,每次改内容,哈希自动变。而 Arweave 的交易 ID 是唯一的,你更新文件得提交一笔新交易,旧数据还在链上,删除不了。

这件事对“日志型数据”是毒药。我们在 Arweave 上存了一组测试日志,然后试图更新其中三条记录。结果旧记录永远在,新记录叠加上去。最终你要靠额外的逻辑去区分“哪个才是当前版本”。

说实话,如果你要存的是“版本会变化的文档”,IPFS 是更好的选择。配合 IPNS,你甚至可以用一个固定地址指向最新版本。Arweave 在这方面原生支持很弱,目前要靠社区方案如 ArDB 去处理版本覆盖。

社区与生态:IPFS 赢了今天,Arweave 赢了未来

第 2 周的时候,我去数了数 GitHub 上的相关仓库。IPFS 的 js-ipfs 和 go-ipfs 加起来有超过 15k star,Arweave 的 arweave-js 大约 4k。工具链上,IPFS 有 Pinata、Infura、Filebase、Web3.Storage、NFT.Storage——至少有 7 个成熟的 pinning 服务商。Arweave 这边主要是 ArDrive(文件管理)、ArDB(数据索引)、Verto(支付)——加起来勉强 5 个。

但有一个数字让我惊讶:过去 12 个月,Arweave 上的存储数据量增长了 380%,而 IPFS 的存储量增长只有 45%。这说明什么?说明存量用户在迁移。原因很简单:NFT 市场开始用 Arweave 做元数据存储了。OpenSea 默认用 IPFS,但很多新的项目(如 Art Blocks)直接选 Arweave。为什么?因为 NFT 的元数据不能丢,一丢,藏品就变成空白。

不过呢,IPFS 生态有一个优势是 Arweave 短期追不上的:本地开发体验。你用 IPFS Desktop 或者 ipfs-cluster,可以在本机模拟整个网络,跑测试、做节点互联、调试网关。Arweave 没有这种轻量级本地环境。你要测试只能真的提交到主网或 Devnet,调试成本高了一个量级。

我们团队有次在 Arweave Devnet 上提交测试数据,结果 Devnet 和主网的数据结构不一致,搞得我们用了一个周末去修适配层。这体验对新手来说不算友好。

选型决策树:你的数据能丢吗?

问自己一个问题:如果这份数据丢了,你会损失多少钱?

  • 如果答案是一个具体的美元数字(比如 NFT 元数据、法律文件、时间戳证明),选 Arweave
  • 如果你的数据是临时性的、高频更新的、丢了能重新生成的(比如日志缓冲、用户 profile 缓存),选 IPFS + 自建节点
  • 如果你要存的是公开的百科类内容,两个都可以,但 Arweave 成本更优
  • 如果你要存的是私密数据,用 IPFS 加密存储 + 私有网络,Arweave 不合适,因为数据永久公开

还有一个决定性因素:你要不要依赖第三方服务? IPFS 的公共网关经常被限制——上个月我们测试的时候,ipfs.io 网关有 12 个小时超时率超过 30%。而 Arweave 的官方网关 arweave.net 在 14 天测试里,只有 47 分钟不稳定。

血泪教训:别把 IPFS 公共网关当作你的产品后端。你必须自己维护节点,或者付费买 pinning 服务。这不叫去中心化,这叫“换个云厂商”。而 Arweave 的整个网络节点之间是数据冗余共享的,不存在单点故障。

结论:默认选 Arweave,但你得有 Plan B

我个人认为,今天的选型应该默认 Arweave。原因不是它更好,而是它更“死”——数据一旦上链,没有人能删掉它。对永久存储的需求来说,永久的代价不是钱,而是“无法后悔”。

但我也要承认 Arweave 不如 IPFS 的地方:数据变更成本、开发工具链、以及社区文档的中文资料。目前 Arweave 的中文教程屈指可数,而 IPFS 有大量中文资源。如果你的团队全是中文开发者且没有区块链经验,IPFS 的入门曲线要平缓得多。

最后给你一个可执行的建议,我们团队内部已采用:

  • 所有 NFT 元数据 → Arweave
  • 所有缓存或临时数据 → IPFS(自建节点,不依赖公共网关)
  • 所有“重要但要更新”的数据 → 放 Arweave,但用额外的索引层(如 ArDB)来做版本管理

这就是我们用了 14 天实测、踩了若干坑之后的最终答案。你怎么选?