Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

完善中文文档,使其更加正式和清晰 #18

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions docs/btn/connect.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
# 连接 BTN

要参与 BTN 计划,只需要将 BTN 客户端连接到 BTN 服务器就好了。本文使用 PeerBanHelper 作为 BTN 客户端,Sparkle 作为 BTN 服务端进行演示
若要参与 BTN 计划,您只需将 BTN 客户端与 BTN 服务器进行连接即可。本文将以 PeerBanHelper(简称 PBH)作为 BTN 客户端,Sparkle 作为 BTN 服务端为例进行演示

## Sparkle

Sparkle 是 PBH-BTN 的官方 BTN 服务器。
Sparkle 是 PBH-BTN 组织的官方 BTN 服务器。

### 注册账号,创建 UserApp
### 注册账号并创建 UserApp

浏览器打开 [https://btn-prod.ghostchu-services.top](https://btn-prod.ghostchu-services.top) 并使用 GitHub 授权登录,就会自动创建一个账号
请在浏览器中打开 [https://btn-prod.ghostchu-services.top](https://btn-prod.ghostchu-services.top) 并使用 GitHub 授权登录,系统将自动为您创建一个账号

点击顶部菜单的 “用户应用程序” 链接来到管理页面
接着,点击页面顶部的“用户应用程序”链接,进入管理页面

![homepage](./assets/btn-homepage.png)

点击 “创建新用户应用程序”,输入一个备注,然后点击按钮创建
点击“创建新用户应用程序”,输入一个备注信息后,点击按钮完成创建

![management](./assets/userapp-management.png)

现在记下页面上显示的 `AppID` 和 `AppSecret`,因为一旦关闭这个页面,`AppSecret` 就不会再显示了
请务必记录页面上显示的 `AppID` 和 `AppSecret`,因为一旦关闭该页面,`AppSecret` 将不再显示

![created](./assets/userapp-created.png)

## 在 PBH 上加入 BTN 网络
## 在 PeerBanHelper 上加入 BTN 网络

转到 设置 -> 基础设置 选项。
请前往设置 -> 基础设置 选项。

![btn1](./assets/btn1.jpg)

向下滑动找到 BTN 设置,打开 “启用 BTN 模块”,并填写刚刚在上面获取的 AppID 和 App Secret:
向下滑动至 BTN 设置部分,勾选“启用 BTN 模块”,并填入之前获取的 AppID 和 App Secret:

![btn2](./assets/btn2.jpg)

滚动到底部,点击“保存”按钮,然后重启 PeerBanHelper 使其生效
滚动至页面底部,点击“保存”按钮,并重启 PeerBanHelper 以使设置生效

![btn3](./assets/btn3.jpg)
![btn3](./assets/btn3.jpg)
69 changes: 27 additions & 42 deletions docs/btn/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,75 +4,60 @@ sidebar_position: 1

# 什么是 BTN

在开始了解什么是 BTN 之前,我们首先需要了解一下历史上的各种反吸血手段
在深入探讨 BTN 之前,我们有必要先回顾一下反吸血技术的发展历程

## 反吸血的前世今生
## 反吸血技术的发展

### 史前时代
### 初始阶段

最开始时,人们使用基于 PeerID 和 ClientName 的黑名单来屏蔽特定一类客户端,阻止他们连接到下载器来反吸血。
这种反吸血方式粗暴好用,但前提是下载器不会对 PeerID 和 ClientName 伪装,一旦进行了伪装,则此功能则完全失效。
最初,人们采用基于 PeerID 和 ClientName 的黑名单策略,以阻止特定类型的客户端连接到下载器进行吸血。这种策略虽然简单有效,但前提是下载器不会对这些标识符进行伪装,一旦伪装成功,该策略即失效。

### 流量检测时代
### 流量监测阶段

后来,BitComet 等下载器引入了流量监测方式。如果下载文件的时候,一个 Peer 超过一段时间没有发送给下载器任何片段,就认为是吸血并封禁。
然而对于 101. 打头的这批吸血者,它们会给很小的上传流量,但足以骗过这种流量监测的反吸血方式。此外此方式对做种用户毫无作用。
随后,BitComet 等下载器引入了流量监测机制。如果某个 Peer 在一段时间内未向下载器发送任何数据片段,则被视为吸血行为并被封禁。然而,对于以 101. 开头的 IP 地址段的吸血者,它们通过发送微量上传流量来规避这种监测,同时该策略对做种用户无效。

### 以牙还牙的算法反吸血时代
### 算法反吸血阶段

LibTorrent 引入了一种以牙还牙,针锋相对的反吸血算法。如果一个 Peer 不愿意提供文件片段,这个 Peer 在 LT 的优先级就会慢慢降低,直至完全不传输数据。
和流量监测相似,一点上传就足以骗过检测,且对做种用户毫无用处(因为做种不会下载任何片段)。
LibTorrent 引入了一种以牙还牙的反吸血算法。如果一个 Peer 不愿提供数据片段,其在 LibTorrent 中的优先级将逐渐降低,直至完全停止数据传输。与流量监测类似,微量上传足以绕过检测,且对做种用户无影响。

### 启发式检测算法
### 启发式检测阶段

由 PeerBanHelper 提出的启发式检测算法(进度检查器/PCB)可以有效的检测如进度回退、过量下载这类作弊手段。但其也有自己的缺点——反应慢。
当检测被触发的时候,吸血者已经恶意下载了不少量的数据。因此通过这种方式反吸血尽管效果不错,但效率较低。只能用作尽可能减少损失。
PeerBanHelper 提出了启发式检测算法(如进度检查器/PCB),能有效检测进度回退、过量下载等作弊行为。然而,该算法反应较慢,当检测触发时,吸血者已下载大量数据。因此,尽管效果显著,但效率较低,主要用于减少损失。

## 所以怎么办
## 应对策略

答案是:共享 IP 规则
面对上述挑战,共享 IP 规则应运而生。最初,人们通过口口相传传递高风险 IP 段,但随着吸血者频繁更换 IP,这种方法时效性有限。因此,需要一种能够快速响应的数据分析和 IP 封禁技术

最开始我们通过人传人互相传递高风险 IP 段。但随着游击战的开始,IP 你封我换,而很遗憾这又是一个时效性很高的东西。在还没来得及让更多人知道新规则之前,吸血者可能就已经更换到了下一个 IP 地址。
因此,必须有一种可以快速和及时响应的数据分析和 IP 封禁技术出现。
## BTN 的诞生

## 答案是 BTN
BTN(全称 BitTorrent Threat Network)由 BTN 服务器和 BTN 客户端组成,通过 [BTN 协议](https://github.com/PBH-BTN/BTN-Spec) 实现数据交换。

BTN(全称 BitTorrent Threat Network),它由 BTN 服务器和 BTN 客户端组成。通过 [BTN 协议](https://github.com/PBH-BTN/BTN-Spec) 交换数据
BTN 客户端通过 PCB 等方式发现异常 Peer 后,会定时通过 BTN 协议上报给服务器。服务器收集大量客户端数据,生成异常 IP 列表,并通过 BTN 协议下发给不同客户端,从而在吸血行为发生前将其屏蔽

BTN 客户端通过 PCB 等方式发现了异常 Peer 后,便会通过 BTN 协议定时上报到服务器。这样我们就可以集合大量客户端的数据,生成一份异常 IP 列表,并通过 BTN 协议再下发给不同的客户端,在开始吸血之前就将它们屏蔽在外。
## BTN 的功能

## BTN 能做什么?
### 收集与分析封禁报告

### 收集、分析封禁报告

BTN 能够接收客户端上报的封禁报告,如果一个 IP(/段)被多个人封禁,那么它就是一个高风险 IP 地址。BTN 会自动将其封禁,并通知其它客户端也一起封禁它。
BTN 接收客户端上报的封禁报告,如果一个 IP(或 IP 段)被多人封禁,则视为高风险 IP 地址。BTN 会自动封禁该 IP,并通知其他客户端进行同步封禁。

### 阻止分散吸血

一些吸血者很聪明,它们在不同的人那里下载相同文件。
这样从每一个人的角度来看,吸血者都只在自己这里下载了一次文件,但实际上吸血者已远远下载了超过文件本身体积大量的数据。

BTN 通过分析每个 IP(段)在每个种子上的总下载量,检查是否有分散吸血的情况,并将它们自动封禁。
部分吸血者采取分散策略,在不同用户处下载相同文件。从单个用户角度看,吸血者仅下载一次文件,但实际上已远超文件本身体积。BTN 通过分析 IP(或 IP 段)在每个种子上的总下载量,检测分散吸血行为,并自动封禁。

### 发现新型客户端

在数据上报时,BTN 还会检查是否是一个从未见过的新客户端。并记录首次出现和最后一次见到的时间。
这有利于推断恶意吸血者进行吸血活动的大致时间范围。

在 24 年 8 月,还帮助我们发现了一起使用随机 PeerID 的吸血客户端。

### 避免 PBH 被针对绕过
在数据上报过程中,BTN 检查是否出现新客户端,并记录首次出现和最后一次见到的时间。这有助于推断恶意吸血者的活动时间范围。例如,在 2024 年 8 月,BTN 帮助我们发现了一起使用随机 PeerID 的吸血客户端。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

需要更新时间引用

文档中提到"2024年8月"作为未来时间点,但现在已是2024年11月。建议修改为过去时态。

-例如,在 2024 年 8 月,BTN 帮助我们发现了一起使用随机 PeerID 的吸血客户端。
+例如,在 2024 年初,BTN 帮助我们发现了一起使用随机 PeerID 的吸血客户端。
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
在数据上报过程中,BTN 检查是否出现新客户端,并记录首次出现和最后一次见到的时间。这有助于推断恶意吸血者的活动时间范围。例如,在 2024 年 8 月,BTN 帮助我们发现了一起使用随机 PeerID 的吸血客户端。
在数据上报过程中,BTN 检查是否出现新客户端,并记录首次出现和最后一次见到的时间。这有助于推断恶意吸血者的活动时间范围。例如,在 2024 年初,BTN 帮助我们发现了一起使用随机 PeerID 的吸血客户端。


除了封禁数据,BTN 客户端还会定时拍摄一次下载器上的实时状态快照。这样我们能够检测是否有恶意吸血者通过新的方式绕过了现有的检测。
### 避免 PeerBanHelper 被绕过

## 隐私安全的顾虑
除了封禁数据,BTN 客户端还会定时拍摄下载器的实时状态快照。这有助于检测恶意吸血者是否通过新方式绕过现有检测。

听起来要做到这些要向服务器上传大量数据。答案是:是的。
## 隐私与安全

要进行这些分析操作,BTN 必须收集和上传大量必须数据,所有上传的数据类型可在 [BTN 协议规范](https://github.com/PBH-BTN/BTN-Spec) 中找到。
要实现上述功能,BTN 必须收集和上传大量数据。所有上传的数据类型可在 [BTN 协议规范](https://github.com/PBH-BTN/BTN-Spec) 中找到。

特别需要提及的是:在上传时,我们不会上传种子的 info_hash 和种子的名称。取而代之的是不可逆哈希过的 torrent_identifier 和种子大小。这样我们就不会知道您提交的种子是什么(我们也不关心这些),我们只关注是否是相同的种子/不同的种子
特别说明:在上传数据时,我们不会包含种子的 info_hash 和名称,而是使用不可逆哈希生成的 torrent_identifier 和种子大小。这样,我们无法得知您提交的种子内容(我们也不关心),只关注是否为相同或不同的种子

如果您不愿意提供数据,BTN 客户端也通常有提交控制选项。将其关闭就可以只接收规则,不提交数据了
如果您不愿提供数据,BTN 客户端通常提供提交控制选项。关闭该选项后,您仍可接收规则,但不上传数据

永远记住:只连接到你信任的 BTN 服务器。
请始终牢记:只连接到您信任的 BTN 服务器。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

建议补充安全建议

在提醒用户只连接可信服务器时,建议提供更具体的验证方法。

-请始终牢记:只连接到您信任的 BTN 服务器。
+请始终牢记:只连接到您信任的 BTN 服务器。建议通过以下方式验证服务器可信度:
+1. 确认服务器的 SSL 证书是否有效
+2. 验证服务器域名是否在官方文档列表中
+3. 检查服务器的安全记录和社区反馈
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
请始终牢记:只连接到您信任的 BTN 服务器。
请始终牢记:只连接到您信任的 BTN 服务器。建议通过以下方式验证服务器可信度:
1. 确认服务器的 SSL 证书是否有效
2. 验证服务器域名是否在官方文档列表中
3. 检查服务器的安全记录和社区反馈

60 changes: 33 additions & 27 deletions docs/downloader/BiglyBT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,84 +2,90 @@
sidebar_position: 2
---

# BiglyBT/Azureus(Vuze)
# BiglyBT/Azureus (Vuze)

:::tip

PeerBanHelper 与 BiglyBT 完全兼容,支持最佳
PeerBanHelper 与 BiglyBT 完全兼容,且支持效果最佳

:::

PeerBanHelper 将借助 BiglyBT 的插件系统连接到 BiglyBT。

请注意你的 BiglyBT 运行的 Java 版本必须是 Java 11+ 版本。如果是 Java 8 或者更低版本,则无法使用,必须[切换 Java 版本](https://github.com/BiglySoftware/BiglyBT/wiki/Java-Versions)。

PeerBanHelper 将通过 BiglyBT 的插件系统连接到 BiglyBT。
:::warning
您的 BiglyBT 必须运行在 Java 11 或更高版本上。如果是 Java 8 或更低版本,则无法使用,必须[切换 Java 版本](https://github.com/BiglySoftware/BiglyBT/wiki/Java-Versions)。
:::
## 确认 BiglyBT 的 Java 版本

1. 点击 BiglyBT/Vuze/Azureus “帮助” 菜单,并点击 “关于 BiglyBT/Vuze/Azureus”
2. 查看右侧的 “系统信息” 窗口,查看 `Java ` 后面的版本号,如果是 `8` 或者 `1.8` 则不受支持。你需要升级 Java 版本。
1. BiglyBT/Vuze/Azureus 中,点击“帮助”菜单,然后选择“关于 BiglyBT/Vuze/Azureus”
2. 在弹出的窗口中,查看右侧的“系统信息”部分,确认`Java`后面的版本号。如果版本号是`8``1.8`则不受支持,您需要升级 Java 版本。

![step1](assets/BiglyBT-step1.png)
![step2](assets/BiglyBT-step2.png)

## 升级 Java 版本(按需
## 升级 Java 版本(如需

如果很不幸,你是 Java 8 版本的受害者,则需要升级 Java 版本。
如果您的 BiglyBT 运行在 Java 8 上,您需要升级 Java 版本。

升级的方式很简单,首先从 [Azul Zulu](https://www.azul.com/downloads/?version=java-21-lts&os=windows&architecture=x86-64-bit&package=jdk#zulu) 下载 Java 21 的 JDK。通过这个链接打开时,页面会自动为您筛选适合的 JDK,直接下载安装即可。
升级方法很简单,首先从 [Azul Zulu](https://www.azul.com/downloads/?version=java-21-lts&os=windows&architecture=x86-64-bit&package=jdk#zulu) 下载 Java 21 的 JDK。打开该链接时,页面会自动为您筛选适合的 JDK,直接下载安装即可。

## 安装 PBH-BiglyBT/PBH-Azureus 适配器

下载 BiglyBT 适配器:[PBH-BTN/PBH-Adapter-BiglyBT](https://github.com/PBH-BTN/PBH-Adapter-BiglyBT/releases),下载时请选择以 .jar 结尾的 JAR
下载 Azureus/Vuze 适配器:[PBH-BTN/PBH-Adapter-Azureus](https://github.com/PBH-BTN/PBH-Adapter-Azureus/releases)
下载 BiglyBT 适配器:[PBH-BTN/PBH-Adapter-BiglyBT](https://github.com/PBH-BTN/PBH-Adapter-BiglyBT/releases),请选择以 `.jar` 结尾的 JAR 包进行下载。
下载 Azureus/Vuze 适配器:[PBH-BTN/PBH-Adapter-Azureus](https://github.com/PBH-BTN/PBH-Adapter-Azureus/releases)

接下来的过程大同小异
接下来的安装步骤类似

选择 “工具 -> 插件 -> 从文件安装……”
1. 在 BiglyBT 中,选择“工具”->“插件”->“从文件安装……”

![step3](assets/BiglyBT-step3.png)

选中刚刚下载的 JAR 包下一步安装
2. 选中刚刚下载的 JAR 包,点击“下一步”进行安装

![step4](assets/BiglyBT-step4.png)

如果 BiglyBT 询问您为谁安装,请根据自己的需要选择。如无特殊要求,请选择默认的选项
3. 如果 BiglyBT 询问安装对象,请根据您的需求选择。如无特殊要求,请选择默认选项

![step5](assets/BiglyBT-step5.png)

弹出插件安装对话框后,请点击 “安装” 按钮。
4. 在弹出插件安装对话框后,点击“安装”按钮。

![step6](assets/BiglyBT-step6.png)

如果弹出安全警告,请您允许继续安装
5. 如果出现安全警告,请允许继续安装

![step7](assets/BiglyBT-step7.png)

直到提示安装成功,此时 PeerBanHelper BiglyBT Adapter 适配器的安装过程就完成了。请根据下面的教程继续配置
6. 直到提示安装成功,此时 PeerBanHelper BiglyBT Adapter 的安装过程就完成了。请继续按照下面的教程进行配置

![step8](assets/BiglyBT-step8.png)

## 配置 PBH-BiglyBT/PBH-Azureus 适配器

为了安全起见,PBH-Adapter-BiglyBT 将会生成一个随机 Token,你需要获取这个随机 Token 才能在 PeerBanHelper 中连接到您的 BiglyBT 下载器。
点击 “工具->选项” 打开选项窗口。点击 “插件” 左侧的倒三角标志,展开插件配置菜单。
为了安全起见,PBH-Adapter-BiglyBT 会生成一个随机 Token。您需要获取这个 Token,才能在 PeerBanHelper 中连接到您的 BiglyBT 下载器。

1. 点击“工具”->“选项”打开选项窗口。
2. 点击“插件”左侧的倒三角标志,展开插件配置菜单。

![step9](assets/BiglyBT-step9.png)

找到 “PeerBanHelper 适配器 - 配置界面”,点击进入配置页面。
3. 找到“PeerBanHelper 适配器 - 配置界面”,点击进入配置页面。

![step10](assets/BiglyBT-step10.png)

配置 API 端口号,并记下 Token。**随后点击保存按钮,请务必点击一次,否则重启后 Token 将重新生成。**
4. 配置 API 端口号,并记下 Token。**务必点击一次“保存”按钮,否则重启后 Token 将重新生成。**

:::warning
**重要提示**:请确保点击保存按钮,否则重启 BiglyBT 后,Token 将重新生成,导致之前的配置失效。
:::

![step11](assets/BiglyBT-step11.png)

## 连接到 PeerBanHelper

在添加下载器的页面,选择 BiglyBT(Azureus/Vuze 用户也请选择这个)
在 PeerBanHelper 的添加下载器页面,选择 BiglyBT(Azureus/Vuze 用户也请选择这个选项)。

选择 “BiglyBT”,并填写刚刚设置的端口号和记下的 Token
1. 选择“BiglyBT”,并填写刚刚设置的端口号和记下的 Token

![step12](assets/BiglyBT-step12.png)

确定保存即添加完成
2. 点击确定保存,即完成添加
Loading