Como criar um cliente BitTorrent em Go do zero
(blog.jse.li)Explica passo a passo como criar um cliente baseado em tracker (excluindo DHT, magnet etc.)
-
Fazer o parsing de arquivos
.torrent -
Descobrir peers
-
Fazer o parsing da resposta do tracker
-
Trocar payload com peers (
Concurrency,Pipe Liningetc.)
4 comentários
Eu usava torrents, mas ficava curioso sobre como isso é feito; obrigado pelas boas informações.
Pesquisei porque fiquei pensando se hoje em dia ainda existe algum uso para torrent que não seja ilegal.
O
Murder, open source que o Twitter usava para implantação de servidores, não recebe mais manutenção.https://github.com/lg/murder
A Blizzard usava o protocolo torrent para distribuir clientes grandes, mas isso também foi descontinuado depois de 2015.
https://us.battle.net/forums/en/bnet/topic/16283439122
No máximo, ainda dá para citar o Internet Archive, que usa isso para download de arquivos.
https://help.archive.org/hc/en-us/…
Às vezes isso também é bastante útil para conseguir distribuições menores de sistemas operacionais baseados em Linux.
Muitos sistemas operacionais baseados em Linux oferecem a opção de download via torrent,
então, se mais tarde não for mais possível fazer o download direto por motivos como a descontinuação do desenvolvimento daquele sistema,
você ainda pode baixar via torrent de outros usuários que já fizeram o download e continuam mantendo o seed.
Existem vários outros clientes BitTorrent completos e bibliotecas feitos em Go além destes.
https://github.com/cenkalti/rain
https://github.com/anacrolix/torrent