小樱 发表于 2024/11/22 18:17

qbittorrent无法下载超级种子的BT资源,挂机半天依然是0%进度的bug

qbittorrent无法下载超级种子的BT资源,挂机半天依然是0%进度的bug

qb的问题,比特彗星用的bep协议,优先传递稀有区块,qb申请不到他要的区块就停止交互直接吸血式的断开了
这点上面说过了,是qb的bug,触发条件是做种方使用超级种子,qb的github上面有人汇报的,至今还没人修复
qb不遵守bt协议规范,所以发生了这种bug,你也知道,你在qb上面启用超级种子,流量也是嘎嘎嘎的跑,根本没起效果,qb本身就有bug
https://www.bittorrent.org/beps/bep_0016.html
如果你是指本机进度 0% 这是正常的 这不是bug,如果你是指对方下载进度是0这个是qb的bug 上一次比特彗星更新优先传递稀有区块,qb申请不到他要的区块就停止交互直接吸血式的断开了
qb那在github已经有反馈bug 或者直接让比特彗星做个兼容 启用超级种子后 ,像你说的,先检测上传到任务大小的10%流量时,在进行超级种子算法   也就是判断分享率>0.1时 超级种子才开始工作
出现这个原因是因为qb有bug,所以比特彗星可以加个高级设置,判断产生多少百分比任务大小的上行流量后再启用超级种子,不太合适放在高级设置以外的地方 超级种子是一种协议规范的算法,普通用户并接触不到,超级种子只对资源发布者有效 难道你希望你的用户下载完成后去开启这个功能吗
超级种子的算法是为了节省发布者流量 通过算法抑制区块 基本上上传1T种子只要1T流量或者1.1T流量就能成功出种,如果用户下载完成去开启这个功能 他就没办法帮你很好的分流了,所以你可以在启用超级种子的时候同时配合上传限速 进一步延长用户下载所需时间
超级种子就是这个效果,只传递最稀缺的区块,用户a有0%~40%的进度 用户b有70%~80%那么你就会向a与b上传40-60%,80-100%这两个部分
如果发现启用超级种子后用户进度不一致,出现这种原因是你的下载用户可能是qb,对方正在吸血只下载不上传,或者上传速度极慢,你可以另开一个客户端新建下载任务的方式来测一下他到底有没有进行上传,有没有给你上传速度(你的下载速度)
如果对方qb客户端禁止了上传,那么你上传给他的0%~40%这部分等于是无效流量 目前算法并没有什么很好的检测方法,只有你自己开一个新的客户端运行,然后以下载的方式来检测看他有没有上传,这种情况配合IP黑名单来实现做种反吸血可能会比较好
反正我反馈了几个bug,qb给我的回复都是让我联系libtorrent,多半是没能力修,所以说开源软件都是垃圾,全靠社区,项目领导人开发者都不管,只能靠感兴趣的人去提交代码修复
超级种子判断产生分享率上传流量感觉可以判断健康度1%可能更好点,每10秒检查一次健康度,健康度大于1%的时候写入xml文件一个永久字段 xxx=1,然后超级种子启用时,每10秒检测一次,直到值为1就自动转换启用超级种子模式,如果为0那么启用超级种子的时候使用普通BT上传模式,不知道自动转换两者模式需不需要停止在开启任务,比如字段 availablepieces="1",健康度代表用户是否能正常下载完成,是否有人拥有完成区块
这样就不怕新制作种子的时候,如果用户列表只有qbittorrent就是0%永远下载不了的问题了
就是说启用超级种子时,先BT普通模式发送100%的进度给对方,这样qb才能申请区块进行下载,拿到1%的健康度数据后,就自动进度从100%倒退0%,改为发送0%的超级种子模式在继续做种
比如健康度=100%你就可以撤种,只要用户不是跑掉删除了任务,用户就能下载完成成功,这个健康度是实时更新的,对方删除了,你的健康度显示会变少,所以你会看到一时高一时低的情况,因为对方跑掉了
所以我说的是永久字段,检测到后开启超级种子才会生效,如果没有这个字段,启用超级种子的时候依旧使用普通BT上传模式,这样就不会发生qb下载进度始终为0%的情况,给qb做一个兼容性支持
你的问题不是启用超级种子的时候,发布种子后,如果用户列表全是qb就进度一直是0%没法下载吗,直到有一个其它客户端的用户成功下载了一个区块,他就会传递给其它qb用户,这样qb才能进行与超级种子做种者通讯成功,实现后续的下载

群友
不单单是qb一个,用户列表里,一排十几个不同客户端,都是0%。


可能底层都是libtorrent,所以有共同的问题,只要传输到任何一个区块成功,那么就会开始跑进度了,这个bug有提交过给qb,但是qb还没修复,问题原因就是qb申请不到他要的区块就停止交互直接吸血式的断开了

群友
你还没有理解我的话。我有三个种子,在做 超级种子 模式。其中一个种子可以开启 超级种子 模式。你说的qb和其他客户端一样,也有速度和超级种子百分比进度!有一个种子是可以qb可以看到百分比。但是一个之外的,其他的种子就不行了。很奇怪的bug,另外两个种子。在做超级种子的时候。在用户列表里看到。各种各样的客户端。全部都没有 超级种子进度 百分比。


直到有一个其它客户端的用户成功下载了一个区块,他就会传递给其它qb用户,你可以自己测试下,比如说你把那个种子发给我,我下载一个区块,磁力链接也可以,然后其他人使用qb进度就会开始涨

群友
不是qb一个人没有涨。是用户列表里,不同的客户端,所有的用户都没有涨,哪怕是自家的比特彗星下载用户,也是0%。我说的是超级种子进度百分比。不是下载多少百分比


你能截个图吗?你到底是什么问题,我至今还没明白,如果你是指本机进度 0% 这是正常的 这不是bug,可以查看超级种子协议规范,如果显示自身本机进度0%是正常现象
https://www.bittorrent.org/beps/bep_0016.html
如果没有上传速度,对方用户下载速度为0并且对方一直是0%,这才是qb的bug,你截图这个是正常现象,不是bug

群友
但是b种子和c种子。就一点没动静,如果是因为显示的问题。其实后台没问题,那也可以理解。但是,关键在于 B和C 种子,后台运行,比如说下载速度一直很快,就是一个很普通做种的现象,这说明,根本就没有开启超级种子,或者说 超级种子 开启后,根本就是失效的。我觉得,你制作个种子,在20 GB以上的,或者说在100 GB以上。去测试一下。


你这种情况不是bug,超级种子也没有失效,是正常工作的,只是你没弄懂超级种子到底是什么,原理是什么,我都用1TB的种子,都没有问题的,超级种子是一种协议算法,和种子大小没关系,就算是10MB的任务,也能超级种子
至少从你的截图来看,是没有任何问题,唯一一个已知的bug,我上面说过了,是qb的问题,导致所有人进度为0,并且这个bug是qb产生的,问题方不在比特彗星上
截图这样在右侧显示为0%是正常现象,不是bug,显示0%是正确的,因为0%才是正确的,如果左侧的进度全部为0%,这才是我说的qb发生了bug
这就是我上面说到的,专业功能不应该直接显示给普通用户,原来你是闹了个乌龙,超级种子显示0%是正确的,并不是你想的bug

群友
超级种子,发完一次完整的数据块后,会停止做种?


是的,等待一段时间检测这个区块出现在其它peer上面,才传输下一个区块,所以一般超级种子时候,1G的种子上传1G流量就能出种了

群友
给别人,别人还要发出去,然后才给下载?这算法。。。如果你不给别人,别人没速度,很长时间没速度,人家以为这是个死种,就就删除了,这也太尴尬了吧。


如果你要高速上传就不要开启超级种子,超级种子就是这个效果,故意把种子进度卡住,让大家互相分流上传,所以实现了几乎所有下载者进度一致,原来你没理解什么是超级种子就打开这个功能吗
所以启用超级种子的做种者,根据任务区块数量而定,BT资源往往要一两天才能成功下载出来,用户足够多的话,启用超级种子不会慢的,比如说100个用户,种子一共1000个区块,每人传10个区块就结束了

页: [1]
查看完整版本: qbittorrent无法下载超级种子的BT资源,挂机半天依然是0%进度的bug