小樱 发表于 2023/10/20 18:19

请问比特彗星是如何获取种子内每个单文件的ed2k链接的?有些v2种子提示长效种子暂未支持是什么意思? filehash

请问比特彗星是如何获取种子内每个单文件的ed2k链接的?有些v2种子提示长效种子暂未支持是什么意思? filehash

长效种子(Long-Term),和电驴(ed2k)的下载链接存储在torrent文件中,可以用记事本打开文件来查看

如果torrent文件中未包含时,客户端在下载该BT种子任务完成后会进行二次校验进行生成ed2k与长效种子的hash值并且提交给tracker服务器( 相关高级选项为:bittorrent.hash_check_for_ltseed ),此时他人下载相同的BT种子时,就算这个BT种子并没有包含hash,但是可以通过tracker服务器来获得hash信息,从而让客户端立即触发长效种子下载

v1 v2种子都具备这个特性,可以观察torrent文件来验证


这个是在制作种子文件的时候需要勾选长效种子和ed2k两个选项,如果使用制作种子文件的bt客户端不支持,那么生成出来的torrent文件就不会包含这些hash信息

指的是BT软件提供的官方tracker服务器,用作支持长效种子,这个过程是私有协议的tracker(类似PT需要passkey才能进行接入tracker,所以登录彗星账号后可以获得更多的长效种子数量),并不是传统形式的公共tracker任何人均可使用,可参考下方长效种子的bep协议规范

在启用专家模式后,客户端左侧处,可以看到完整的长效种子列表
长效种子实现主要应该是这几个bep协议规范,可以读一下
http://www.bittorrent.org/beps/bep_0017.html
http://www.bittorrent.org/beps/bep_0019.html
http://www.bittorrent.org/beps/bep_0038.html

http://wiki.bitcomet.com/inside_bitcomet#:~:text=this%20topic.-,Hash%20Checking%20Conditions,-BitComet%20will%20perform
http://wiki.bitcomet.com/long-term_seeding

之前找libtorrent开发者聊过,由于实现长效种子功能需要bt客户端官方开发者提供服务器部署tracker,这种长效种子方案没有去中心化实现,所以由于服务器成本原因,目前其它bt软件还未支持上长效种子功能。


在上面发的相关页面里,也可以完全了解到长效种子等是如何实现的,看完文章后基本就能知道是什么回事了,例如这一段话,就是我上面说的tracker实现
LT-Seeding clients use a server (the equivalent of a tracker, in the BitTorrent protocol) for querying and finding peers (LT-Seeds) for the tasks which have LT-Seeding enabled. This is done by using a unique LT-hash which is being computed for every file of the task.


其实和迅雷那一套差不多,但是实现方案还是不一样,比特彗星是基于bep协议规范开发,只有任务列表存在BT任务的时候,并且任务启用了开关才会进行长效上传,同时优先保证BT网络传输,对长效种子自动限速。

这也是为什么连接到长效下载的时候,,可能有时候只有几KB的速度,过两个小时在下载发现又快起来了,因为对方在给BT网络上传中,长效上传被自动限速了

迅雷是付费机制,客户端是扫盘上传,在客户端内没有任何任务列表的时候,依旧会对某个文件产生上传速率,并且其它客户端需要付费才能接入这个P2P网络,或者免费试用60秒之类,同时迅雷会提供网心云矿工来充当P2P服务器,帮助付费用户提供下载,所以一般情况来说,相同的资源下载迅雷反而可以获得更好的速率,因为网心云上保种的人多。

页: [1]
查看完整版本: 请问比特彗星是如何获取种子内每个单文件的ed2k链接的?有些v2种子提示长效种子暂未支持是什么意思? filehash