PBH-BTN / PeerBanHelper

自动封禁不受欢迎、吸血和异常的 BT 客户端,并支持自定义规则。PeerId黑名单/UserAgent黑名单/IP CIDR/假进度/超量下载/进度回退/多播追猎/连锁封禁/伪装检测 支持 qBittorrent/Transmission/Deluge/BiglyBT
GNU General Public License v3.0
539 stars 15 forks source link

由BTN实例下发banPeer信息的功能 #158

Open PluieM opened 2 weeks ago

PluieM commented 2 weeks ago

是否增加一个由BTN实例下发banPeer指令,客户端收到后直接ban掉指定Peer的功能 场景1:实时共享黑名单,A客户端发现的恶意Peer,可以上报后由BTN实例广播给同实例下的其他Peer 场景2:共同校验,可以通过累计某一个Peer在同实例同一个torrent下的多个客户端上的下载量来校验是否伪造了进度,应该能更快发现恶意Peer的同时大幅降低同一个BTN实例下的客户端被恶意peer吸血的量

Ghost-chu commented 2 weeks ago

BTN 协议被设计为尽量避免使用长连接,因此不适用于实时通信。

对于上报问题,只要您启用了数据提交,封禁名单就会被 PBH 上传。

对于共同校验问题,目前通过人工方式分析多人上报。如果感兴趣,也欢迎申请加入 BTN 服务端开发工作。目前服务端还十分简陋,功能有限,无法做到自动分析。

PluieM commented 2 weeks ago

在服务端维护一个简单的队列 {offset, peerInfo, timestamp} 这样,然后由客户端根据offset去拉取(类似kafka的消息push机制),这样既不用维持长连接,应该也能达到一个实时通信的效果。请问怎么申请服务端开发呢?

Ghost-chu commented 2 weeks ago

场景1:实时共享黑名单,A客户端发现的恶意Peer,可以上报后由BTN实例广播给同实例下的其他Peer

客户端有时并不是完全可信的