Lançamento do libtorrent 2.0 com suporte ao protocolo BitTorrent 2

Uma versão principal do libtorrent 2.0 (também conhecido como libtorrent-rasterbar) foi introduzida, oferecendo uma implementação do protocolo BitTorrent com eficiência de memória e CPU. A biblioteca é usada em clientes de torrent como Deluge, qBittorrent, Folx, Lince, Miro e Flush (não deve ser confundida com a outra biblioteca libtorrent, que é usada no rTorrent). O código libtorrent é escrito em C++ e distribuído sob a licença BSD.

O lançamento se destaca pela adição de suporte ao protocolo BitTorrent v2, que deixa de usar o algoritmo SHA-1, que apresenta problemas de seleção de colisão, em favor do SHA2-256. SHA2-256 é usado tanto para controlar a integridade de blocos de dados quanto para entradas em índices (dicionário de informações), o que viola a compatibilidade com DHT e rastreadores. Para links magnéticos para torrents com hashes SHA2-256, um novo prefixo “urn:btmh:” é proposto (para SHA-1 e torrents híbridos, “urn:btih:” é usado).

Como a substituição da função hash quebra a compatibilidade do protocolo (o campo hash tem 32 bytes em vez de 20 bytes), a especificação BitTorrent v2 foi inicialmente desenvolvida sem compatibilidade com versões anteriores em mente e outras mudanças significativas foram adotadas, como o uso de árvores hash Merkle em índices para reduzir o tamanho dos arquivos torrent e verificar os dados baixados no nível do bloco.

As mudanças no BitTorrent v2 também incluem a transição para atribuição de árvores hash separadas para cada arquivo e o uso de alinhamento de arquivos em partes (sem adicionar preenchimento adicional após cada arquivo), o que elimina a duplicação de dados quando há arquivos idênticos e facilita a identificação fontes diferentes para arquivos. Maior eficiência na codificação da estrutura de diretórios de torrent e otimizações adicionais para lidar com um grande número de arquivos pequenos.

Para suavizar a coexistência do BitTorrent v1 e BitTorrent v2, foi implementada a capacidade de criar arquivos torrent híbridos, que incluem, além de estruturas com hashes SHA-1, índices com SHA2-256. Esses torrents híbridos podem ser usados ​​com clientes que suportam apenas o protocolo BitTorrent v1. Devido a problemas de estabilidade não resolvidos, o suporte esperado para o protocolo WebTorrent na libtorrent 2.0 foi adiado até a próxima versão principal, que não será lançada até o final do ano.

Fonte: linux.org.ru