github PBH-BTN/PeerBanHelper v5.0.0

latest releases: v7.1.4, v7.1.3, v7.1.2...
4 months ago

欢迎来到 v5.0.0 正式版!

破坏性更改

  • 数据库部分得到了大修,不兼容之前的数据库文件。封禁历史记录、封禁列表和统计数据将不会继承,其它配置等数据将会平滑升级

新功能

  • GeoIP 模块现在也使用来自 ljxi/GeoCN 的 IP 数据
    • 位于中国大陆的 IP 地址位置现在将能够精确到区县
    • 位于中国大陆的 IP 地址现在将显示网络类型,支持以下网络类型的显示:
      • 宽带
      • 基站
      • 政企专线
      • 业务平台
      • 骨干网
      • IP专网
      • 网吧
      • 物联网
      • 数据中心
    • 此功能需要配置 GeoIP 库
  • 各个功能模块的封禁时间现在可以独立调整,或跟随全局设定
  • 封禁列表现在显示触发封禁的规则
  • 用户现在能够在封禁列表界面上解除对特定 IP 的封禁
  • 前后端现在全面支持 i18n,欢迎提交翻译 PR!
  • PBH WebUI 现在添加了暴力破解防护
  • PBH WebAPI 现在默认禁止 CORS 跨站请求,除非用户手动启用
  • 现在允许用户从外部文件系统加载 WebUI 文件
  • Peers 列表现在将显示 Peer Flags (仅在支持的下载器上显示)
  • 配置文件 (config.yml) 新增代理服务器设置
  • PeerID 统计图表现在支持合并同类客户端查看
  • 封禁日志现在可以按时间指定查询,时间粒度新增按小时

用户交互体验改进

  • GUI 日志框现在更换为了 ListView,并根据日志等级,为日志行染色,错误、提示、警告一目了然
  • 新用户安装时不再弹窗提醒退出,而是直接启动,并在控制台引导进入 WebUI (并显示 WebUI Token)
  • 配置文件升级时,将对丢失配置文件注释的配置项重新复制注释
  • WebUI Peers 列表的种子和 Peers 现在按实时上传速度,倒序排序,方便用户快速定位高上传带宽的种子/Peers
  • 多项 WebUI 细节优化
  • 下载器出现错误时,WebUI 将提供更加有用的悬浮 Tooltip 提示信息
  • 下载器出现错误时,控制台将提供更加有用的日志提示信息

性能优化

  • 现在 Peers 封禁检查操作支持多线程并发
  • GeoIP 查询任务现在采用懒加载机制,仅在需要时才查询 IP 的 Geo 信息
  • 重构缓存系统,极大的改善了缓存命中率,并降低了 CPU 时间
  • 现在 PBH WebUI 与 PBH 通讯、PBH 与下载器通讯,皆支持 gzip, deflate 压缩
  • 调整 AviaorScript 缓存,不缓存编译结果以节省 RAM 使用
  • 对于频繁返回的 CheckResult,进行静态重用
  • 其它性能优化

错误修复

  • 测试下载器配置创建的临时 Downloader 没有正确关闭导致资源泄漏
  • 修复 WebUI 发生更改时,因缓存头设置指定错误,用户可能看到白屏的问题(您需要手动清理一次浏览器缓存,才能使此修复生效)
  • 修复封禁日志、封禁列表中,当流量数据为 -1 时,渲染为 NaN Undefined 的问题
  • 修复用户同时添加 Transmission 和其它非 Transmission 下载器时,Transmission 封禁可能会失效的问题
  • 修复初始化 BTN 失败后,PBH 不再尝试重新初始化 BTN 的问题
  • 修复提交封禁列表失败后,本次提交的封禁列表被就地丢弃,而不是排队到下次重试窗口的问题
  • 修复 qBittorrent 的部分不交换 Client Name 的 Peers,获取 Client Name 无效/无意义的问题,现在将截取其 16 进制 PeerID 对应的前 8 个 ASCII 字符的字节,并转化为可读文字
  • 修复 Transmission 和 qBittorrent 混合使用时,操作列表可能混入其它下载的数据,导致 Transmission RPC 调用时出现类型转换错误崩溃,并导致种子无法被重启、还原状态
  • 修复编辑订阅规则后,编辑成功但却提示错误的问题
  • 修复订阅规则中存在以 # 开头的注释行时,订阅规则解析可能失败的问题
  • 修复 qBittorrent 下载器有时处理 PeerID 可能返回错误结果导致伪装检测脚本检测出错的问题
  • 修复触发 BanWave Watchdog 时,创建对话框时出现 JavaFx 线程错误
  • 修复创建 HTTP 协议为 HTTP 2.0 的下载器配置时,出现错误的问题

杂项

  • 微调 qBittorrent 增量封禁逻辑
  • 调整 docker-compose.yml / Docker 示例命令,给予 PBH 更多时间用来安全退出
  • 封禁列表不再保存到 banlist.dump,而是存储到数据库
    • 现在每个小时都会自动保存一次封禁列表
    • 现在 PBH 启动完成后,不会清空暂存的封禁列表
  • 32 位有关的支持库文件现在不再参与编译
  • 现在存储时不再硬编码字符串,而是存储翻译组件,以支持前端动态 i18n
  • 用户脚本现在支持返回 String 类型返回值作为封禁理由
    • 如果返回值以 @ 打头,则设置 Action 为 SKIP
  • Heap 最大内存从 256MB 调整为 386MB,除了 PBH 需要更多一点的内存以外,386 这个数字灵感来自 Intel 80386 CPU 名称
  • PeerID/ClientName 模块不再等待流量,而是在有 PeerID/ClientName 获取成功后,立刻停止等待,进行检查

Docker 用户

DockerHub: ghostchu/peerbanhelper:v5.0.0
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v5.0.0

Don't miss a new PeerBanHelper release

NewReleases is sending notifications on new releases.