版本说明
0.1.0rc1 发布候选(未上传 PyPI)
首版面向独立的 Python 应用和服务,提供 RPKI 载荷的接收、管理、查询与验证。当前候选版本为 0.1.0rc1。交付绑定确切提交及同一批 sdist/wheel,原始候选验收见交付记录;TestPyPI 上传、对应提交、制品 SHA-256 和安装验证见测试发布记录。版本号本身不代表检查通过,TestPyPI 测试发布与正式 PyPI 发布分别验收。
已实现能力
- 同步 JSON 解析、不可变来源快照、前缀覆盖查询、ROV、实验性 ASPA 验证和独立的保守 BMP 分析;详细结果包含依据及明确的截断标记。
- RTR 客户端、TCP/TLS 与可选 SSH、文件与 HTTP JSON 来源、多来源合并和备用组;运行中增加、删除或替换来源、修改配置,以及按来源注入自定义 JsonReader。
- 生效 VRP/ASPA 遍历、固定快照批量查询、发布后事件订阅;数据不可用与正常
notfound/unknown分开表达。旧快照、HTTP token、重新读取和恢复都不延长原始授权期限。 - 可选 SQLite 与 DuckDB 完整状态持久化、恢复、持久化版本回执和 SQLite 本机共享读取;持久化失败保留有效内存状态,必要的线程及事务清理受客户端生命周期管理。
- 可选 HTTP 查询服务、类型化远程 SDK、轻量 CLI、状态与指标、完整快照交换、协议录制和离线回放。CLI 机器结果写 stdout,日志和错误写 stderr。
公共签名与类型见源码生成 API 参考,第三方调用方式及可执行示例见使用流程。核心直接依赖仅 AnyIO;CLI、HTTP、数据库、服务、SSH 与 Trio 按 extras 安装。
协议与数据兼容
RTR 默认使用 v1(RFC 8210)。实验性 v2 通过 max_version=2 显式启用,默认使用固定的 8210bis-27 profile;历史 -10 或 -13 需要通过 v2_profile 显式选择。相同 wire version 不表示 ASPA 布局相同,客户端不自动猜测草案。各 profile 的规范差异、独立向量与实际互操作边界见 RTR 契约。
ASPA 按固定的 aspa-verification-28 和 aspa-profile-29 解释。授权、能力、活动来源及期限区分 IPv4/IPv6;两族视图有歧义时,调用方必须显式传入 AFI。历史单族授权不会合并成两族共同授权。标准路径验证与上下文受限的 BMP 分析采用独立接口和结果类型。
配置、普通 HTTP 响应和录制 schema 为 1;完整快照交换与数据库 schema 为 2,以保留地址族语义。旧格式的接纳或拒绝规则见交换格式与持久化,不能仅按包版本推断格式兼容。
映射 IPv6 的公共 JSON 和摘要统一使用混合表示,例如 ::ffff:192.0.2.0/120,避免不同 CPython 补丁版本产生不同摘要。显式快照导入先校验原摘要,再接受已知旧十六进制拼写;未发布开发数据库中的旧十六进制摘要不自动迁移。授权仍属于 IPv6,含接口 zone 的网络输入明确拒绝。
运行与部署边界
目标解释器为常规 CPython 3.11–3.14。核心和远程 SDK 使用 asyncio 或 Trio,HTTP 服务限 asyncio 且由单一拥有者维护来源。内置 SSH 同样限 asyncio,要求显式可信主机密钥及公钥/密码认证,不继承 SSH config 或 agent;支持加密私钥,固定请求 rpki-rtr subsystem。宿主应用拥有事件循环和任务组。SQLite 共享读取限本机文件系统,DuckDB 的其他进程通过服务查询。
目标平台为 Windows 11 x64、macOS x64/ARM64、Linux x64/ARM64;不包含 Windows ARM64 或 32 位 x86。本次 CI/CD 与必需运行验收仅覆盖 Linux x86_64。其余四种组合提供 Windows 11、macOS 与 Linux ARM64本机验收命令;当前候选未执行的组合保持未验证,不阻塞本次交付,也不声明全平台通过。历史执行结果不替代最终候选的同批制品验收。
HTTP 来源总截止默认为 1200 秒,持久化 flush 等待默认为 600 秒;服务请求、SDK 请求和快照 token 保留上限分别为 120、180、600 秒。这些期限独立于数据有效期和就绪等待;必要清理可能继续等待已开始的线程或事务安全结束。规模测量、内存余量和负载限制见性能基线,配置上限不构成 RSS 或吞吐保证。
本库接收上游验证器产生的载荷,不执行 RPKI 证书链验证或仓库抓取,也不提供面向路由器的生产 RTR 服务端。首版功能边界见 Decision / Decline。
容量和性能适用范围
已测基线是单来源约 102 万 VRP、3,355 ASPA 的加载、查询与两数据库完整落盘/恢复;2 CPU、4 GiB 受限环境下的进程峰值约 1.48–1.60 GiB。查询专项另覆盖 100 万 VRP 与 116,385 ASPA 支持。这里的数量是授权数据量,不是可验证 BGP 路由总条数或持续 QPS 承诺。
三来源各百万条、90%重合的初始加载及同步落盘已经完成过;保留旧快照、持续更新、批量查询及完整导出并发时,已有默认配置测量出现来源、flush 或 SDK 超时。首版不承诺该综合负载的稳定容量,也不把扩大实验预算的完成结果等同于默认配置通过。静态百万/千万条装载、独立HTTP导出和独立热配置的结果,均不能外推为同规模综合服务吞吐。
按用户确认,首版收尾复用已有验证并只对两数据库各执行一次最大规模单轮综合任务;失败、未完成阶段及资源峰值保留在容量证据。运行器与实际测量范围见性能基线。配置提供有界接纳和明确失败,尚无跨硬件的时延或吞吐保证。