# MoonErasure 项目申报书（事实资料稿，申请人核实后人工定稿）
## 基本信息
- 项目名称：MoonErasure：MoonBit 多分片恢复与对象目录基础库
- 参赛者：
- 联系方式：
- GitHub 仓库链接：https://github.com/oyjh0381/MoonErasure
- 项目方向：新生态项目建设 / 存储与传输基础库；原创 MoonBit 实现，Apache-2.0，非源码移植。
## 项目简介与通用性
备份、归档和边缘传输均需在部分分片丢失时恢复字节。本库以系统式 Reed–Solomon 将条带分成 k 个数据片和 m 个校验片，每条带保留任意 k 个完好分片即可恢复。原生编码器与版本化帧、对象清单和目录结合，不绑定磁盘、网络或云平台。已检索的单 XOR 短消息卡片包与多片擦除、大对象条带和修复目录职责不同，具体对照见 `docs/SELECTION_RESEARCH.md`，申报前复查同类包。
## 三个完整使用场景
1. **多节点备份**：以 3+2 分片存放五个节点；两个节点失效后从三份完好分片恢复文件，重建缺失位置的帧，由宿主写回并更新目录，不重复传输其余片。
2. **边缘批量收片**：接收端先解析并校验帧 CRC，再以 `add_many` 原子接收一组帧；若最后一片对象身份错误或索引重复，整批目录不变，避免留下半批状态。
3. **归档局部读取与巡检**：宿主识别损坏槽位后剔除；目录给出具备恢复条件的连续字节区间，服务只恢复可用区间，后台补片后重新查询范围。区间表示分片数量足够，不替代内容校验。
## 核心功能范围与实现路径
- GF(256) 系统式 Vandermonde 编码、已知擦除恢复、额外分片一致性检查与有界逆矩阵缓存；支持整对象、增量处理、范围恢复和修复规划。
- 版本化清单/帧、CRC-32C、严格解析及资源预算；十月已有目录 CRC 准入、幂等剔除与局部读。本轮新增 `add_many` 事务准入和 `recoverable_ranges` 最大连续可恢复区间。
- 事务先在分离槽表上验证，全部成功后提交；区间只线性扫描目录，不预先解码对象。补充后段失败回滚、重复帧、预算、尾条带、区间合并及剔除测试。
## 预期验收产物与来源
交付原生库、线格式文档、存储/传输/巡检及本轮示例、四后端测试、README、CI 与 Apache-2.0 许可；公开仓库及 Mooncakes 发布后核验。算法概念参考 [RFC 5510](https://www.rfc-editor.org/rfc/rfc5510)，没有移植其他实现源码。
边界：CRC 识别意外损坏，不认证来源；不定位任意未知错误，不负责 I/O、节点放置、加密或持久化事务。目录批量原子性仅覆盖同步内存操作，宿主另行处理并发与落盘。
