VOCArchive Design
此处存储了 VOCArchive(Future ver.) 的部分设计思想/架构/理念,可看作“预览”或“草稿”,它将会被进行语言规范化处理。
VOCArchive 是一个去中心化泛VOCALOID归档生态系统。
关于拆分
该架构中 各层面组成者分为:
(数据层面)
- 不可变数据(媒体)
- 基于 IPFS/Arweave 以存储
- 可变数据(元信息)
- 基于 IPLD 的 CRDT 数据库 (暂定为OrbitDB)
(角色层面)
- 发布者(搬运/存档)
- 访客
- 维护者
- 社区贡献者
关于数据变动
一切数据变动皆视为 追加 (简称暂定为apd/add)
在Orbit/CRDT语境下通常称之为 Operation Log 或 Event 以体现时间戳/签名/因果关系 后续可能会再次更改此操作称呼
此项目 不会 也 不能 有 除了 追加 以外的数据格式
任何元数据的修正操作皆看作一条含有旧记录指针的新记录 展现给用户的当前状态 是由 客户端/网关 层层溯源得出
信任模型(Web of Trust)与抗污
存储层宽进,渲染层严出:
- 自动过滤掉未被信任签名的恶意修改
- 可以配置自己的信任源
- 信任列表也可以回档/Append
用户体验优化
- 搭建Super Peer+HTTP网关
- 官方维护一份默认配置(即Bootstrap)
- 用户侧支持分布式社区节点/用户浏览器缓存以防官方网关的不可抗力
- 音质/格式差分 (Media Variants)
- 数据结构: 采用 Variant Group 模式。一个 Work 条目下挂载一组 CIDs,分别对应 FLAC (无损)、MP3 (320k)、AAC (128k/Web优化)。
- 生产方式: 优先采用 Client-side Transcoding (基于 WASM)。发布者上传母带后,浏览器本地转码并并发上传到 IPFS,自动生成包含所有版本 CID 的元数据。
- 消费方式: 前端播放器根据访客的网络环境(WiFi/5G/弱网)自动选择最佳 CID 进行加载。
不可避免的取舍
物理存储权回归概率(热门的永存,冷门的看命)
Super Peer 防灌水
- 最大payload大小限制
- 数据结构校验
- Store-per-User 模式
- 访问控制列表
- 高权限发布者所作所为可以自动合并进主表
- 争议显性化
- 基于身份的权限分级
- 含带有权重的Web of Trust
- 支持回滚/忽略某一用户行为
- 提供主表用于快速查询
- Super Peer 充当 Indexer (索引器) 角色。
- 它监听 OrbitDB 的日志流,经过权限/签名验证后,将最新的状态投影 (Project) 到 关系型数据库 (SQLite/D1) 中。
- API 查询直接读取 SQLite,实现 O(1) 的查询性能和复杂的全文检索能力。
身份分级
- Level 0: 创作者本体 (Creator/Owner)
- 机制: P主通过 DID/Twitter 认证认领条目。
- 权限: 对作品元数据拥有绝对解释权。
- Level 1: 高信誉维护者 (Maintainers)
- 机制: 官方白名单内的公钥(社区老鸟、核心贡献者)。
- 权限: 可以覆盖普通用户的修改,处理回滚,标记恶意条目。
- Level 2: 首位监护人 (Genesis Guardian)
- 机制: 该条目的第一个上传者。
- 权限: 拥有该条目的“先占权”,直到被 Level 0 或 Level 1 覆盖。
- Level 3: 普通贡献者 (The Crowd)
- 机制: 新注册或低信誉用户。
- 权限: 提交的修改被视为 “建议 (Suggestion)”,不直接覆盖主显数据,需等待高阶用户确认或积累足够的社区投票。
版权生存策略
实行**“存储/索引分离”** 与 “避风港原则”。
- 技术中立性: 不存储媒体文件,只存 CID。
- 分级展示:
- Level 1 (CC/授权): 正常解析 CID,提供播放器。
- Level 2 (禁止转载/DNR): 仅展示元数据(Metadata Only)。前端屏蔽播放器渲染。
- Level 3 (投诉): 收到版权方请求 -> 官方数据库将该 CID 加入黑名单 -> 网关 API 返回 null (实际文件仍在 IPFS 网络中,网关仅做“不可见”处理)。
- 逃生通道: 若官方网关被迫整改,用户使用纯 P2P 客户端可绕过黑名单直接通过 CID 访问内容 (用户行为与平台无关)。
社区维护
让无法搭建服务器的用户也能贡献力量。
- 存储: 桌面客户端集成“自动做种”功能。收藏即做种 (Spotify 模式)。
- 带宽: Web 端引入 WebRTC。热点资源在临近访客间 P2P 传输,减轻 Super Peer 压力。