健康度表示 BT 外部来源对数据的覆盖程度或平均副本数,不是本地文件的下载进度或完整性检查结果。本文介绍 v2.24 新增的文件健康度及相应的任务健康度提示。
计算包括已连接 BT Peer 声称拥有的分块,以及 Peer 池中未连接完整 BT 种子的估算贡献。不计本地副本、长效种子和电驴来源。
每个估算的未连接完整种子按一份完整副本计算。该估算来自已知种子数减去已连接种子数(最低为零),不等同于直接采用 Tracker 报告的种子总数。
健康度允许超过 100%。低于 100% 表示本次统计范围仍有外部来源缺口;达到或超过 100% 表示按来源声明及估算已覆盖该范围,但不保证实际连接、传输或下载一定成功。本地文件即使已经完整,健康度仍可能为 0%。
| 对象 | 尚未完成时 | 完成后 |
|---|---|---|
| BT任务 | 当前待下载的分块 | 整个任务的全部分块 |
| 单个文件 | 尚未拥有的分块在该文件中的字节区间 | 整个文件 |
任务的“完成”指没有待下载分块。只选择部分文件下载时,选中内容完成后,任务健康度也会改为统计整个任务,包括未选择的文件。
文件以涉及的全部分块是否已被程序判定为拥有来确定完成状态,包含校验通过和程序信任的已有数据。共享分块尚未被判定为拥有时,即使该文件对应的部分字节已写入磁盘,该区间仍计入剩余数据。是否勾选下载不改变文件健康度规则。
先确定上述范围,再判断它是否全部有外部来源。任务按分块数量等权,文件按与分块相交的实际字节数加权。
设:
当 A = B 或 U > 0 时,认为本次范围全部有外部来源。
| 情况 | 统计范围 | 健康度 |
|---|---|---|
| 未完成,剩余部分有来源缺口 | 待下载分块/剩余文件区间 | floor(100 × A / B)% |
| 未完成,剩余部分全部有来源 | 同上 | floor(100 × (R + U × B) / B)% |
| 已完成,全范围有来源缺口 | 全任务/全文件 | floor(100 × A / B)% |
| 已完成,全范围全部有来源 | 同上 | floor(100 × (R + U × B) / B)% |
floor 表示向下取整。例如 2 / 3 显示为 66%。有缺口时计算覆盖率,不能用少数热门分块的很多副本掩盖缺失分块;全部覆盖后才计算平均副本数。
任务共有四块,未完成时只有最后两块待下载。下表副本数仅指已连接外部 Peer,不计本地。
| 状态 | 四块的副本数 | U | 计算 | 健康度 |
|---|---|---|---|---|
| 未完成,剩余有缺口 | [5, 5, 0, 3] | 0 | 1 / 2 | 50% |
| 未完成,剩余全覆盖 | [5, 5, 1, 3] | 0 | (1 + 3) / 2 | 200% |
| 已完成,外部有缺口 | [0, 0, 0, 3] | 0 | 1 / 4 | 25% |
| 已完成,外部全覆盖 | [1, 1, 1, 3] | 0 | 6 / 4 | 150% |
| 未完成,有未连接完整种子 | [5, 5, 0, 3] | 1 | (3 + 1 × 2) / 2 | 250% |
| 状态 | B | A | R | U | 健康度 |
|---|---|---|---|---|---|
| 未完成,剩余有缺口 | 8 MiB | 3 MiB | 9 MiB | 0 | 37% |
| 未完成,剩余全覆盖 | 8 MiB | 8 MiB | 12 MiB | 0 | 150% |
| 已完成,外部有缺口 | 8 MiB | 3 MiB | 9 MiB | 0 | 37% |
| 已完成,外部全覆盖 | 8 MiB | 8 MiB | 12 MiB | 0 | 150% |
| 未完成,有未连接完整种子 | 8 MiB | 3 MiB | 9 MiB | 1 | 212% |
1 MiB = 1,048,576 字节。公式按实际字节计算,表中单位仅为方便阅读。
如果文件跨两块,分别占 1 MiB 和 3 MiB,只有第一块有来源且 U = 0,文件健康度为 25%,不是按两块等权得到的 50%。因此,即使任务只有一个文件,最后一块长度差异也可能使任务健康度与文件健康度不同。选择性下载还可能使两者采用不同的统计范围。
提示会说明完成状态、统计范围是否全部有外部来源、当前使用的公式,以及实际分子和分母。任务操作数单位是分块,文件操作数单位是字节。操作数来自同一份统计结果,不从整数百分比反推。
例如文件剩余 8 MiB,全部有外部来源,副本总量为 12 MiB,则显示副本量与剩余量之比为 150%。文件提示同时提供可读容量和括号中的精确字节数;精确数字使用逗号分组,括号内不附加 B 后缀。全覆盖公式的分子已包含未连接完整种子的估算贡献。
提示底部说明:已计入未连接完整 BT 种子的估算贡献,不计入本地副本。