BEP 0031 为 BEP 0003 的失败响应提供了一个额外字段 retry in,单位为秒,代表指定秒后客户端应当再次重试上个操作,例如 Tracker 服务器过载,客户端应当稍后再试。 此外,retry in 还可以被指定为 never,代表客户端不应再进行任何尝试,例如客户端请求的这个地址并不是一个 Tracker 服务器,或者指定的种子未在此 Tracker 上注册等等场景。 示例(使用 JSON 格式以提高可读性) { "failure reason": "Server is busy, please try again later.", "retry in": 600 }
BEP 0007 为 BitTorrent 协议引入了 IPV6 支持。 新增查询参数 ipv4 - 客户端向 Tracker 汇报自己的 IPV4 地址 ipv6 - 客户端向 Tracker 汇报自己的 IPV6 地址 key - 参考标志 客户端会生成一个随机的 key,并配合自己的 peer_id 来允许 Tracker 在多次 announce(宣告)期间识别你的客户端。 注1:这个 key 似乎不是很需要的样子,毕竟识别唯一身份 peer_id 可能就够了。 注2:BEP 中说不推荐使用 ipv4/ipv6 参数,可能会允许坏客户端引发拒绝服务攻击(DDoS),但实际上,大部分客户…
在开发 BitSapling/Sapling 的过程中,我意识到中文互联网似乎没有很好介绍 BitTorrent 协议的文章(当然,英文文献也并不是很多),同时 BitTorrent 官方的 BEP 介绍也含糊不清,特开新的一个文章系列来记录各个 BEP 的 Tracker 部分的具体实现方式。 BEP 0003 - The BitTorrent Protocol Specification 0003 号 BEP 是 BitTorrent 协议中最基础的规范,它规范了一个 BitTorrent Tracker 最基础的功能。 Bencode 编码 在 BT 协议中,客户端、.torrent 文…
Barbatos Realms 最近在搞统一认证,聚合 Blessing Skin, Xenforo, Wordpress 等一系列乱七八糟的各种程序到 Wordpress 上。 偷懒为先,最好的解决方案自然是 OAuth 2,上述程序都有它的 Client 实现,对接甚是方便,但主要问题是,谁来做 Server (Provider)? 探索 WordPress 现有解决方案 以 OAuth 为关键字搜索,基本上都是 Client,而作为 Server 的只有 miniOrange 这一家独占。 我打赌不少人肯定都试过 miniOrange 的 Server 但问题在于,免费版本接近无法使用,…
在我们自建这套系统之前,我们一直依赖 Crowdin 提供的 Over-The-Air Content Delivery 功能,为安装在众多服务器上的 QuickShop Hikari/Reremake 在线更新本地化语言文件。 那么好端端的,你们怎么突然自建了 很简单,付不起钱了?。 作为个人开发者维护的完全免费的软件,每年找要我们 100 USD 我们可吃不消,更何况用户越来越多。 最初 Crowdin 免费提供该功能,但在中途修改为了付费服务(然而我并不知情),直到22年12月圣诞节期间,Crowdin 团队年底清算的时候给我发来了一封邮件: Crowdin CDN payment (s…
本来计划是今年过年都好好见个面,好好过个年。 但好巧不巧,由于过年前,家里姥姥和奶奶都阳了一遍,由于担心重复感染,于是世界拒绝了我。 就在没事干的时候,我看到了我手边淘汰下来的 OnePlus 9R…… 没事干,刷个机 一加作为国内少数几个还给普通人几乎零门槛的BL解锁的品牌,拿到手的手机不刷个机那简直是对不起一加这个名字。 大年初一的晚上,我把手机插上了 USB 线…… 隔壁家叔叔今年大年初一还在 9008,你可千万不能变成那样 刷机目标是 Nameless AOSP,其基于 OOS 12/13 底层,所以需要先刷到氧,再升级到氧 OS,再升级氧 OS 13,最后刷入 Nameless。 备…
更换了邮件推送端口,邮件通知重新上线
由于未知的神秘力量,从22年12月16日起,本站所在的腾讯轻量服务器无法连接到 smtpdm.aliyun.com
的SSL 465
端口发信,现已修复。
过去未能成功发送的邮件已被站点程序丢弃,还烦请手动查看下留言是否有新的回复。
今天编译项目时遇到了这样一个错误:Malformed \uxxxx encoding java.lang.IllegalArgumentException: Malformed \uxxxx encoding. 显然,有个文件损坏了,但是可惜的是 Maven 没有告诉我们到底是哪个文件损坏了。 可以直接扬了 .m2 本地仓库,但是成本太高。依赖很多的情况下,就国内的网络情况不拉个一晚上怕是拉不下来需要的依赖。 着手解决 首先切换到 Terminal 终端,cd 到故障 Maven 项目/模块 目录下面,使用 mvn package -X 重新触发一次编译。 mvn package -X 这次可…
最近一直在玩 PT,感叹 NexusPHP 的性能、代码质量和安全都实在是相当感人了,这种上古软件能活到今天也算是一个奇迹了。所以在自己悄悄搓 PT 程序。 对于一个 Private Tracker 程序,重要功能那自然是读取解析 Torrent,并把其中的 Tracker 换成我们自己的。本想用库来实现,但相当遗憾的是我没找到能够满足我需求的 Vanilla Java 的实现。 既然没有现成的,那就自己来搓一个。 由于我个人只需要解析 Bittorrent v1 版本的 torrent 文件就够了,所以 v2 不在讨论范围内,不过都是大同小异。 Bencode 编码 Torrent 的种子是…