Go में शुरुआत से BitTorrent client बनाना
(blog.jse.li)ट्रैकर-आधारित client (DHT, magnet आदि को छोड़कर) बनाने की प्रक्रिया को चरण-दर-चरण समझाया गया है
-
.torrentफ़ाइल parsing -
peer discovery
-
tracker response parsing
-
peer के साथ payload exchange (Concurrency, Pipe Lining आदि)
4 टिप्पणियां
मैंने torrent इस्तेमाल किया है, लेकिन यह कैसे बनाया जाता है यह जानने की जिज्ञासा थी—अच्छी जानकारी के लिए धन्यवाद।
मैंने यह सोचकर खोजा कि आजकल torrents का इस्तेमाल गैरकानूनी कामों के अलावा कहीं होता भी है या नहीं।
Twitter सर्वर deployment के लिए इस्तेमाल किया जाने वाला open source Murder अब मेंटेन नहीं किया जाता।
https://github.com/lg/murder
Blizzard बड़े client distribution के लिए torrent protocol का इस्तेमाल करता था, लेकिन वह भी 2015 के बाद हटा दिया गया।
https://us.battle.net/forums/en/bnet/topic/16283439122
फिर भी Internet Archive में फ़ाइल डाउनलोड के लिए इसका कुछ इस्तेमाल होता दिखता है।
https://help.archive.org/hc/en-us/…
माइनर Linux-आधारित OS डिस्ट्रीब्यूशन्स हासिल करते समय भी यह कभी-कभी काफ़ी काम आता है.
काफ़ी सारे Linux-आधारित OS torrent के ज़रिए डाउनलोड करने का विकल्प देते हैं,
और बाद में अगर उस OS का development बंद हो जाने जैसी वजहों से direct download संभव न रहे,
तो torrent के माध्यम से उन दूसरे users से इसे पाया जा सकता है जिन्होंने पहले ही डाउनलोड करके seeding बनाए रखी हो।
Go से बने BitTorrent full client और libraries इसके अलावा भी कई हैं.
https://github.com/cenkalti/rain
https://github.com/anacrolix/torrent