二、功能集(Feature Sets)
Kubo
Kubo 将自己描述为一个具有广泛 API 的"通用型"实现,其功能集反映了这一点。虽然这些功能中的许多都可以在其他实现之上构建,但 Kubo 的亮点在于它"开箱即用"地支持这些功能,作为一个独立进程,无需额外的编码或应用程序。
显著功能包括:
- 通过 Kubo 配置提供的广泛配置选项,支持以下功能:
- API 限制和访问控制
- 资源限制/调优
- 内置 HTTP RPC API,用于与 Kubo 和 IPFS 网络的其余部分交互
- 内置 CLI 访问 Kubo API
- 内置 IPFS 网关
- 能够自动将固定(pins)复制到外部固定服务
有关完整功能列表,请查看官方 Kubo 仓库!
Helia
Helia 最强大的功能是能够被配置和运行为原生 JS 应用程序的一部分。这使它能够轻松地在浏览器中运行,这是其他 IPFS 实现目前无法做到的,除非进行非常有创意的工程工作。
我们之前提到 Helia 旨在轻量级和模块化。这意味着 Helia 对于自身包含的内容非常谨慎。从功能集的角度来看,这意味着 Helia 本身由核心包组成,外部库可以与之交互以添加功能。
如果开发者需要额外的功能,他们可以选择引入接口库来满足他们的需求。Helia 团队还维护着一组提供 Kubo 等实现中常见的"标准"IPFS 功能的库。
这种方法使 Helia 团队能够升级 Helia 的核心组件,而无需担心破坏外部库,只要这些库继续遵守 Helia 实现规范。
Elastic-IPFS
Elastic-IPFS 在功能丰富性方面可能有所欠缺。它做两件事,但它做得非常好:
使用 Elastic-IPFS 的运维人员可能希望将某些组件替换为修改版本,或向代码库添加额外的功能,但核心 Elastic-IPFS 实现可能永远不会支持广泛的功能集,因为它的目标与 Helia 类似,是轻量级和模块化。
这一点,加上 Elastic-IPFS 的云原生设置,意味着运维人员可以在无停机的情况下更新和修改其 IPFS 设置的某些部分,因为 Elastic-IPFS 只是一起工作的无服务器组件的组合,充当一个巨大的 IPFS 提供者。这相对于 Kubo 等实现来说是一个优势,因为 Kubo 需要重启/停机才能接收更新。
使用 Elastic-IPFS 等云原生 IPFS 实现的其他好处是,运维人员可以利用额外的云工具来实现以下功能:
- 增强的日志记录/可观察性
- 网络保护
- 数据备份/删除保护