IPFS集群是一个用于协调在不同主机上运行的IPFS守护程序的软件。
IPFS集群由多个对等节点组成,每个对等节点都与一个IPFS守护程序相关联。对等节点共享一个pinset(也称为共享状态),其列出了集群固定的CID及其属性(分配,复制因子等)。
集群对等节点使用libp2p(集群库)进行通信,与IPFS类似,但与其分离。因此,每个集群对等体都需要自己的私钥(与IPFS守护程序使用的私钥不同),并具有自己的对等ID。所有的对等节点分享额外的密钥,确保它们只能与已知的对象沟通。
虽然协议实验室使用IPFS集群来维护和复制庞大的pinset,但它仍然处于开发早期阶段的软件 ,并且可能存在漏洞,有可用性,稳定性和文档问题。
目前的功能
最新的IPFS集群稳定版包括以下功能:
- 通过集群(Cluster)直接向多个IPFS对等节点添加,复制和固定内容。
- 通过集群(Cluster)获取和固定多个IPFS对等节点中的内容。
- 基于Raft的共识层,具有防止网络分裂和自动引导重定向的功能:每个IPFS集群对等节点都可以控制集群,修改pinset并执行任何操作。
- IPFS集群中固定内容的最大和最小复制因子。
- 停机事件的自动重新绑定。
- 根据每个IPFS守护程序的存储库空间均匀分布的引脚。
- 全面的配置选项,允许高延迟集群(全球对等节点)。
- 稳定版本之间的无痛迁移过程(必要时进行状态格式升级)。
- 固定导出和导入(即在将数据移动到新集群时作用很大)
- 集群可以增长(可以添加新的对等节点)和减少(可以删除对等节点)而无需停机。
- RESTful API在HTTP和libp2p端点上暴露(http隧道在libp2p上)。支持HTTP和基本身份验证。
- Go API客户端完全支持所有API端点和模式。
- IPFS代理和HTTP端点允许插入IPFS集群代替ipfs API。某些请求被截获并触发集群操作(如pin / add)。
- 独立于IPFS运行,使用go-ipfs API(通常在tcp / 5001上)来控制IPFS守护程序。
- 广泛的,最新的文档和指南,包括专注于IPFS和IPFS集群的生产部署的文档。
目前的局限
这些是当前观察到的主要问题以及ipfs-cluster中缺乏的东西(来自人们的期望)。请务必查看我们的路线图 ,了解我们计划如何以及何时解决这些问题: