栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2012年3月13日 星期二

HiFile 云云(悶蛋部份)

超超超級悶蛋的編程話題。

昨天開始 HiFile Server side 的開發。先是研究如何建立 bittorrent 的 tracker 伺服器。為此我對 ThePirateBay 做了一點考察。

原來 ThePirateBay 早就已經關閉了自己的 Tracker,要網民使用 DHT/PEX。另外,他們亦開始鼓勵網民由 torrent 轉用 magnet link。
關於 DHT,其實我對 DHT 的效能抱有相當大的懷疑。我很難理解一個全新的 peer,如何能不靠中心伺服器去找到現存的 peer group。這對我來說實在是太科幻。雖然開 tracker 好像很大負擔,但若果 HiSocial 成功,網上也就會出現更多自設的 HiSocial 伺服器,分擔 tracker 的負荷。因此現時的 HiFile 還是會加入傳統的 tracker。
關於 magnet link。我在 ThePirateBay 在同一個 file 拿了 magnet link 和 torrent,分別在多個 BT client 做實驗。magnet link 那邊遲遲都未開始下載,torrent 卻早就下載完了。因此 HiFile 到底應不應該供應 torrent,也沒有甚麼好值得考慮的。

結果還是要有 tracker 和 torrent,這是最傳統的 Bittorrent 做法。DHT/PEX 是 client side 的事,等到做 client side 時才慢慢研究。至於 magnet link,可以的話也會技援,反正又不會造成太多負擔。

而 tracker 方面,我留意到兩套 tracker 軟件。一是 opentracker,另一個是 XBTT。
其實最初是希望用元祖 bittorrent 的 tracker,但 bittorrent 那幫傢伙已經不再把軟件開源,所以不用考慮了。
opentracker 效能非常高,就連 ThePirateBay 都曾經由自家製 tracker server 轉用到 opentracker。不過 opentracker 的 torrent 管制有點麻煩。每次更新 torrent whitelist,都必須把整個 whitelist 寫進一個大檔案,由 tracker 軟件讀取。如果 whitelist 有上萬個 torrent,每分鐘更新一兩次,這種做法根本不可行。
XBTT 亦自稱高效,但效能如何真的只有實驗才知道。還好這東東是通過 MySQL 讀取 torrent whitelist,而 HiSocial 現時就是使用 MySQL,整合上沒有甚麼大問題。所以現時應該會採用 XBTT。但 XBTT 現時的開發狀態有點奇怪。Ubuntu/Debian 沒有 deb,要自己編譯(opentracker如是)。而 project host 由 sourceforge 轉到 google code,遲遲都沒有正式 release,只是叫人抽 SVN,感覺不太可靠...

如果 XBTT 沒有發生甚麼怪事的話,將來可以試試把它推上 launchpad。

沒有留言: