Decision / Decline:不做事项与延期边界
决策基线:2026-10-03。本文将总体设计和首版契约中分散的范围限制集中列出,供代码生成、实现审查和第三方集成使用。它不表示相关能力已经实现,也不作为 feature/bug 待办清单;新增需求与审查问题在 GitHub Issues 中跟踪。
本库负责接收上游验证后的载荷,维护其来源、时效和一致视图,并提供 ROV、ASPA 及独立 BMP 分析。通用性来自可组合的公共接口,不等于复刻 RP 验证器、路由器或运维平台的全部功能。
怎样使用这些决策
| 类别 | 含义 | 编码时的处理 |
|---|---|---|
| 不纳入当前产品职责 | 与本库定位不同,不因邻近功能或参考项目提供而自动加入 | 使用已有扩展边界或交给宿主;重新纳入须先修改设计 |
| 首版不提供 | 有可能有价值,但当前首版没有支持承诺 | 不生成隐藏入口、空壳 extra 或未经验收的兼容分支 |
| 已承诺扩展阶段 | 已在设计范围内,仅实施时间晚于首版 | 保留既定边界,不将其删除或永久拒绝 |
| 禁止的实现捷径 | 会破坏已经承诺的正确性、资源归属或兼容性 | 修正实现;不能以缺少某个 feature 为由采用 |
下列条目均应连同“仍须提供”的边界阅读。未列出的功能不因此默认获准,也不因此默认被拒绝;契约缺口需要通过 Issue 定义可验收行为,不能用本页替代设计。用户明确调整范围时,更新对应条目、总体设计、公共契约与验收,不能只在实现里绕开。
不纳入当前产品职责
| ID | 不做什么 | 理由、替代方式与仍须提供的边界 |
|---|---|---|
| DD-01 | RPKI 证书链、ROA/ASPA 签名对象验证,TAL 管理及 RRDP/rsync 仓库抓取 | 上游 RP 验证器负责产生载荷。本库保留可信输入选择、完整性、来源和时效检查;TLS 服务器身份验证仍是首版职责。依据:功能范围。 |
| DD-02 | BGPsec 路径签名验证、签名生成和私钥管理 | 接收 Router Key 不等于执行 BGPsec。首版仍正确编解码、撤销、持久化并恢复 Router Key;专用公共查询属于后续扩展。依据:Router Key 边界。 |
| DD-03 | BGP/BMP 会话采集、原始 UPDATE 解析、AS_PATH/AS4_PATH 重建、应用 RIB 和路由索引 | 宿主提供规范化路径、起源 ASN 和邻居上下文,并持有待重验路由。库仍提供标准验证、独立 BMP 保守分析、变化事件和保守影响范围。依据:输入契约、事件职责。 |
| DD-04 | 自动接受/拒绝 BGP 路由,修改 local preference,推导商业关系,替来源投多数票决定可信性 | 验证结果和数据差异是信息,不是路由策略执行权。组优先级、信任来源和邻居关系由宿主明确提供;compare_sources 保持可解释。依据:来源管理、验证输入。 |
| DD-05 | 生产 RTR 服务器、面向设备实验室的可编程 RTR 服务器,以及向路由器提供长期 serial 差分缓存 | 本项目以嵌入式 RTR 客户端库为主线,配套提供可选 HTTP 查询服务。协议测试可以使用本地服务替身;已有显式录制与离线回放继续提供客户端诊断,不代表可向第三方设备提供 RTR 或网络回放服务。依据:总体定位、功能范围。 |
| DD-06 | 历史数据库、任意时刻全网状态重建、永久事件日志和恰好一次交付 | 持久化保存当前完整状态;事件窗口有界,遗漏要求重新同步。显式离线参考时间只评价给定数据,录制回放只作诊断。依据:持久化、导入与回放、订阅契约。 |
| DD-07 | bmparrot/bmpalert 专用配置模型、从这些应用导入实现或自动修改它们 | 它们是初期消费者,公共 API 面向独立第三方。可以阅读其调用方式、提供示例,不能将应用运行流程变为核心依赖。依据:项目边界。 |
首版不提供的兼容和扩展能力
| ID | 不做什么 | 现有替代方式及重新讨论条件 |
|---|---|---|
| DD-08 | 在查询服务中加入远程来源配置、SLURM 上传和凭据管理控制面 | 首版服务负责查询、验证、状态和订阅;配置由宿主显式提供,首版可在进程内使用 Client.apply_config 运行中增删来源及修改配置。服务的认证、TLS、请求限制和安全错误输出仍须交付;后续控制面须独立设计,不因查询服务存在而自动加入。依据:HTTP 边界。 |
| DD-09 | RTR v0、自动追随或猜测草案、丢弃旧 afi 后跨族合并授权 |
默认 RTR v1;v2 显式启用,默认 -27,历史 -10/-13 通过显式 profile 支持,-10 保留按 AFI 授权、-13 明确双族授权。新增 profile 必须有差异分析、矩阵、向量与互操作依据,进入来源身份;镜像不能自动扩展支持。不以软件差分错误为理由放宽协议。依据:协议基线、RTR profile。 |
| DD-10 | 额外的同步 RTR 网络客户端、核心内部创建事件循环、跨循环共享 Client | 同步解析、查询与验证保持独立;网络生命周期由宿主 AnyIO 任务组管理。同步应用可在自己的边界管理异步运行,不增加隐含线程和第二套网络生命周期。依据:生命周期、实现参考。 |
| DD-11 | 自动发现插件、可变全局适配器注册表、任意内部索引替换接口 | 使用显式 TransportFactory、JsonReader 和 PersistenceBackend 协议。内部索引可以优化,但其布局不是公共 API;新的扩展点须有资源归属、取消及共同契约测试。依据:扩展协议。 |
| DD-12 | 自动数据库 schema/跨后端迁移、pickle 恢复、将损坏数据库静默清空 | 未支持的格式明确拒绝;首版可另选空文件重新同步。完整状态摘要用于完整性,不充当认证。迁移需独立设计旧版本输入、回滚和中断恢复。依据:恢复、导入。 |
| DD-13 | 多个服务进程同时拥有来源写入、活动 DuckDB 文件的跨进程直接共享、本机 SQLite WAL 之外的网络文件共享 | 单 owner 与 workers=1;本机多进程读用 SQLite,其他进程访问 DuckDB 用 HTTP。进一步并发模式必须先证明连接归属与一致性。依据:运行模式、HTTP 生命周期。 |
| DD-14 | WebSocket 事件协议、永久远程游标、无限保留快照 | 首版使用有界长轮询和明确的 ResyncRequired / SnapshotGone;本地异步订阅仍属于首版。增加传输方式不能改变快照绑定、时效和丢失通知。依据:事件长轮询。 |
| DD-15 | 未固定版本的 ASPA 本地策略,或将 ASPA 字段塞入 RFC 8416 格式 | 已有上游实现提供 slurm2,但本项目尚未选择它的草案基线。新增 ASPA 策略须独立命名和版本化,定义原始/生效视图与恢复语义;不能以“没有上游方案”作为拒绝理由。依据:策略扩展、固定 Routinator 输出资料。 |
| DD-16 | Windows ARM64、32 位 x86 的首版支持;仅靠版本号声明支持 PyPy、自由线程 CPython、未来解释器或所有平台;未经测量保证吞吐与延迟 | 首批目标为真实 CPython 3.11–3.14,Windows 11 x86_64/AMD64,以及 macOS/Linux 的 x86_64/AMD64 与 ARM64,核心覆盖 asyncio/Trio;Windows ARM64 和 32 位 x86 不在目标内,不为它们安排专门适配与发布验收。平台和 extras 以实际验收范围为准。先取得可复现数据再扩大承诺。依据:兼容与性能、CI/CD。 |
运行中来源增删与配置修改、在线自定义 JsonReader、生效 ASPA 全表遍历已由用户确认纳入首版,不能再视为待评估或拒绝项;具体边界见配置变更和公共 API。设备配置输出及额外平台传输仍需独立定义需求和验收。
按 AFI 的 ASPA 模型、查询和验证,以及显式历史 v2 profile 同样属于用户确认的首版范围。旧草案记录不能直接丢弃 AFI;新版无 AFI 记录明确适用于双 AFI。真实服务端尚不符合其声称的草案时,保存失败证据,不自动修改信任或事务语义来换取通过。
热配置的首版边界如下:
| ID | 不做什么 | 仍须提供的行为 |
|---|---|---|
| DD-25 | 在同一 Client 热切换数据库后端/路径、事件循环,隐式监视配置文件或依赖 Unix 信号完成配置更新 | 首版提供显式 apply_config;可改字段及 restart_required 边界见配置变更。宿主可自行实现文件通知,不要求 Windows 用户具备 SIGHUP。 |
| DD-26 | 配置提交即保证新来源就绪/落盘,或追溯撤回其他调用方已取得的固定快照 | 回执确认配置和当前视图原子提交;就绪、持久化、旧任务清理分别可观察。旧快照绑定旧配置和原期限,宿主处理配置事件后按新信任条件重验;共享读取有明确传播延迟。 |
已承诺后续实现,不能当作拒绝项
| 能力 | 首版必须留下的边界 | 扩展阶段交付 |
|---|---|---|
| SLURM,RFC 8416 | 明确无策略身份、原始来源状态与派生视图边界 | VRP/Router Key 过滤和添加、多文件组合、策略版本、原子更新与事件;ASPA 策略不自动随之加入 |
| Router Key 公共能力 | 正确协议处理、唯一键、来源、撤销、内部存储、持久化与恢复 | 按 ASN/SKI 查询、遍历、导出及变更订阅;不执行 BGPsec |
内置 SSH 已按用户要求提前纳入当前交付;使用显式 SshConfig、可选 ssh extra 和 asyncio,提供主机密钥验证、用户认证、rpki-rtr subsystem 与重连。Trio 核心与自定义传输边界保持独立,见 SSH 配置。
依据:交付阶段、策略与密钥、SSH。首版 SQLite、DuckDB、HTTP/SDK、录制回放、BMP 分析和 CLI 同样不能因工作量较大移入本页的拒绝范围。
不允许采用的实现捷径
这些不是可延期功能,而是全部实施阶段都应保持的不变量。
| ID | 不允许的行为 | 必须采用的行为与依据 |
|---|---|---|
| DD-17 | 把未加载/不支持/过期当成正常 notfound 或 unknown;从未知上下文猜出 ASPA valid |
分离能力、连接与时效;标准验证和 BMP 分析使用独立类型。数据、输入。 |
| DD-18 | 在 EOD 或完整 JSON 接纳前暴露部分数据;删除一个来源时删除其他来源的支持 | 完整状态原子发布,保留每来源原始支持;失败后按对应协议撤销规则和原始期限处理。一致性。 |
| DD-19 | 用重新读取、304、恢复、新 generation 或批次开始时间延长数据寿命 | 保留原始期限,固定快照逐项在线检查;离线必须显式标注。时间、输入期限。 |
| DD-20 | 为兼容样例跳过坏记录、把生产子集当完整数据、伪造对象/provider 来源、静默改写旧草案 | 依据固定格式与规范建立完整性和 provenance;缺失信息明确表达,不能补造信任或关联。输入完整性、资料边界。 |
| DD-21 | 慢订阅者阻塞 RTR、静默丢事件、取消等待就宣称线程停止、遗留无主后台任务 | 有界队列和可靠重同步信号;资源留在宿主管理的生命周期内,清理状态与实际完成一致。生命周期、持久化。 |
| DD-22 | 用有损压缩、最长匹配一条 VRP、全局去重 AS_PATH、隐式切换远程快照来换取速度 | 优化索引和构建方式,保持全部覆盖规则、路径语义、固定快照和来源;性能与正确性同时验证。验证、分页、性能。 |
| DD-23 | 核心引入 CLI/HTTP/Pydantic/ORM,导入时联网落盘、配置根日志,向输出写入凭据 | 核心直接依赖保持 AnyIO,可选能力延迟导入,宿主控制日志和机密;数据库公共协议不暴露 SQL 连接。依赖方向、诊断。 |
| DD-24 | 编解码自测往返就宣称互通,跳过必需环境后宣称兼容,API 先交付后补文档 | 独立向量、真实解释器和双后端、制品安装与公共文档同步验收;缺少证据明确记录。验收、CI/CD。 |
重新讨论的门槛
改变上述范围时,先在本仓库 Issue 中记录具体使用方需求、现有公共接口为何不足、影响的 DD 编号,以及所需的协议/格式版本、依赖和验收。确认后同步总体设计、本页、相应契约、示例和测试。不得因为参考项目已有某能力、生成工具认为“更完整”或实现起来顺手,就自动扩大范围。
工具与索引的实现选择不等于产品范围决策:基准证明需要优化时可以改内部布局,质量检查可以按阶段落地;不预先规定必须使用 C/Rust、特定 trie 或更多检查工具。任何优化仍受上述一致性、可用性、时效和安装隔离要求约束。