增強的magnet支持[補充於8-23 13:33]

本帖最後由 zh99998 於 2010-8-24 18:42 編輯

現在的BitComet只支持btih形式的magnet鏈接,但是magnet鏈還是有其他形式的,例如

magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C

(magnet官網上的示例)

magnet:?xt=urn:ed2k:354B15E68FB8F36D7CD88FF94116CDC1 &xl=10826029&dn=mediawiki-1.15.1.tar.gz &xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY &xt=urn:btih:QHQXPYWMACKDWKP47RRVIV7VOURXFE5Q &tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26 &as=http%3A%2F%2Fdownload.wikimedia.org%2Fmediawiki%2F1.15%2Fmediawiki-1.15.1.tar.gz &xs=http%3A%2F%2Fcache.example.org%2FXRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5 &xs=dchub://example.org

(wiki上的示例)

這些現在bitcomet都是不支持的,直接提示鏈接格式錯誤
使用sha1形式magnet要比btih方便的多,因為不需要藉助.torrent種子了
現在的btih形式,想作任何更改,哪怕只是改個tracker,都得重新制種,維護非常不方便

參考資料:
中文wiki:http://zh.wikipedia.org/zh-cn/Magnet鏈接
英文wiki:http://en.wikipedia.org/wiki/Magnet_uri (這個頁面里有主流magnet對各種標籤的支持情況)
magnet官網:http://magnet-uri.sourceforge.net/

現在比較需要的是對urn:sha1(啊當然其他的可以直接從文件算出來的校驗值也可以,只要不是btih就好)和xs的支持,其餘的似乎無關緊要,dn、tr、xl看起來已經支持了

另外,以下有關加速的建議供參考
magnet本身沒有長效種子的概念,希望bitcomet能加入長效種子支持,對所有非btih的鏈接默認為允許長效種子(如果怕被說成吸血,可以在補充格式x.中加入對那個的禁用)
如果用了非btih的鏈接就不再屬於BitTorrent那個p2p網絡了,希望BitComet能給融合起來,而且由於用了非btih就是直接指向文件的了再融合http(s)/ftp的那個p2sp網絡和ed2k也是可行的

最後感謝gavin496大人和BitComet開發組一直以來對咱的幫助

謝謝你的建議,已經將帖子轉給 leader 了。

磁鏈里的 SHA-1 是給 Gnutella P2P共享軟件使用的哈希,與 BitTorrent 無關,BT下載只能使用 BTIH。帶有 BTIH 的磁鏈支持無torrent文件、無tracker的BT下載,通過DHT網絡查找peer,也支持長效種子。

本帖最後由 zh99998 於 2010-8-23 13:33 編輯

嗯,我的意思就是說,不使用BT下載,而是直接使用magnet的p2p
BitComet做的東西也不一定非要跟BitTorrent有關的吧?否則也就不會去支持http/ftp/ed2k了
對於用戶來說,他們不需要知道個種下載方式是來源於BT的還是Gnutella的,對於開發者/網站管理者來說也不需要知道,能用才是關鍵
當然,如果有版權問題的話,換個md5、crc32或者什麼別的校驗值也都是可以的

至於【帶有 BTIH 的磁鏈支持無torrent文件】這完全是錯誤的吧- -只是在下載者看起來不需要種,對於上傳者來說是需要種的,並且維護起來很糾結
1.制種麻煩,需要專門的制種軟件、專門的計算magnet軟件,BitComet沒有提供API和批量制種(怨念),BC的命令行也bug滿滿根本無法使用(怨念),用模擬拖拽連續多次制種BC就會抽掉(怨念),別的制種工具基本功能不全,我上次制種是專門拿虛擬機裝了ubuntu跑mktorront外加自己寫腳本才制出來的,然後再搬回windows下再自己寫個腳本,忍受了N次程序崩潰之後終於全都塞進BitComet里(繼續怨念),然後才複製出了磁鏈
2.對種子進行任何改動,哪怕只是換個tracker或換個webseed,都需要重新制種,重新計算magnet鏈接,重新制種之後,需要再保持上傳以跟把種子提交給tracker,並且,還會由於兩個種而導致效率的降低

如果是用magnet直接獲取資源,那麼事情就變得相當簡單,制種只需要算一下sha1或者md5,修改只需要替換一下鏈接里的tr標籤就全搞定
因此,這種方式會取代傳統獲取種子文件方式而成為主流

另外還有最重要的,加入對這個的支持並不會對原獲取種子文件的方式產生任何不良影響,如果magnet鏈接里提交的是btih,那麼就採用獲取種子文件方式,sha1等就直接用magnet來下載


再次感謝gavin496大人、BitComet開發組和給咱刷色的set00off君

這個估計暫時不會做改動了,以後的版本可能會有改。謝謝你的建議和支持!