Don't just store, pool it. > 让 100 个 NAS 众筹出一个 5TB 的去中心化影视库。
NexusPool 是一个专为 NAS 用户设计的分布式存储层协议。它的核心理念是 “空间众筹,资源共享”。通过 NexusPool,每个参与者只需贡献极小的本地空间(如 100GB),即可接入一个海量的虚拟存储池(如 5TB)。
系统通过 P2P 协议按需拉取数据,并利用内容寻址技术确保全局文件去重,为 Infuse、VidHub、Emby 等播放器提供“无感”的大数据量影视挂载体验。
-
📦 空间池化 (Storage Pooling):通过分布式协议将分散的 NAS 节点聚合为逻辑上的统一大盘。
-
🚀 P2P 流式加速:基于 IPFS 底层,观看电影时从多个节点同步拉取数据块,人数越多,播放越稳。
-
🔍 内容寻址与去重:天然解决重复文件问题。同一份 4K 电影在网络中仅保留最优副本。
-
🔗 透明挂载 (FUSE):集成 Rclone,将远程池直接挂载为本地文件系统,播放器直读。
-
⚖️ 防吸血机制 (Anti-Leech):内置基于 OrbitDB 的去中心化账本,强制执行“贡献证明(PoC)”,确保生态公平。
NexusPool 并非重复造轮子,而是站在巨人的肩膀上:
| 组件 | 技术选型 | 作用 |
|---|---|---|
| 底层存储 | IPFS | 负责文件的分块存储与内容寻址 |
| 集群管理 | IPFS Cluster | 负责跨节点的 Pin 状态管理与数据冗余 |
| 元数据库 | OrbitDB | 负责去中心化的目录索引、用户评分与贡献账本 |
| 挂载层 | Rclone / FUSE | 实现本地虚拟磁盘挂载 |
| 控制逻辑 | Python (Nexus-Core) | 负责防吸血算法、权限验证及自动化维护 |
为了防止“死节点”或“纯吸血”行为,NexusPool 实施了以下规则:
-
强制冗余证明 (Proof of Pin):
系统会随机分配 50GB 的数据块要求节点 Pin 住。如果不满足最低物理存储贡献,挂载层将自动断开。
-
动态分享率 (Ratio):
$$Ratio = \frac{Upload}{Download}$$ -
High Ratio: 享受预加载加速、4K/8K 蓝光原盘访问权限。
-
Low Ratio: 仅限制在 1080p 码率访问,且连接优先级降低。
-
-
活跃度加权:
长时间稳定在线的节点(Stable Node)将获得更高的元数据同步权重。
YAML
services:
nexus-node:
image: havell/nexus-pool:latest
volumes:
- /your/nas/data:/data/ipfs
- /mnt/nexus:/mnt/nexus:shared
environment:
- POOL_SIZE=50G
- SWARM_KEY=${YOUR_CLUSTER_KEY}
- RATIO_PROTECT=true
privileged: true
-
克隆仓库并编辑配置文件。
-
运行
docker-compose up -d。 -
在 Infuse/VidHub 中添加路径
/mnt/nexus。
-
Alpha: 基于 IPFS Cluster 的基础存储池搭建。
-
Beta: 集成 OrbitDB 实现协同目录管理(去重与评分)。
-
v1.0: 完善 Nexus-Ratio 防吸血算法与可视化 WebUI。
-
Future: 引入 AI 自动分类标签与智能预热。
我们欢迎所有对分布式存储感兴趣的极客加入!
-
Fork 本项目。
-
创建您的特性分支 (
git checkout -b feature/AmazingFeature)。 -
提交您的更改 (
git commit -m 'Add some AmazingFeature')。 -
推送到分支 (
git push origin feature/AmazingFeature)。 -
开启一个 Pull Request。
本项目采用 AGPL-3.0 协议开源。这意味着任何基于此项目开发的商业衍生版或在线服务,都必须公开其源代码,以保护开源社区的共同利益。
NexusPool —— 重新定义 NAS 协作。