Выпуск libtorrent 2.0 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° BitTorrent 2

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ выпуск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libtorrent 2.0 (извСстна Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ libtorrent-rasterbar), ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° BitTorrent, ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния потрСблСния памяти ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° CPU. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° задСйствована Π² Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ…, ΠΊΠ°ΠΊ Deluge, qBittorrent, Folx, Lince, Miro ΠΈ Flush (Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ libtorrent, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² rTorrent). Код libtorrent написан Π½Π° языкС C++ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD.

Выпуск ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° BitTorrent v2, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ осущСствлён ΡƒΡ…ΠΎΠ΄ ΠΎΡ‚ использования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° SHA-1, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ SHA2-256. SHA2-256 примСняСтся ΠΊΠ°ΠΊ для контроля цСлостности Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ для записСй Π² индСксах (info-dictionary), Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с DHT ΠΈ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°ΠΌΠΈ. Для ΠΌΠ°Π³Π½ΠΈΡ‚Π½Ρ‹Ρ… ссылок Π½Π° Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ с Ρ…ΡΡˆΠ°ΠΌΠΈ SHA2-256 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ прСфикс «urn:btmh:» (для SHA-1 ΠΈ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Ρ… Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ «urn:btih:»).

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° (ΠΏΠΎΠ»Π΅ с Ρ…ΡΡˆΠ΅ΠΌ 32 Π±Π°ΠΉΡ‚Π° вмСсто 20 Π±Π°ΠΉΡ‚) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификации BitTorrent v2 ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ вСлась Π±Π΅Π· оглядки Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π² состав Π±Ρ‹Π»ΠΈ приняты Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сущСствСнныС измСнСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ использованиС Ρ…Π΅Ρˆ-Π΄Π΅Ρ€Π΅Π²Π° ΠœΠ΅Ρ€ΠΊΠ»Π° Π² индСксах для сокращСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° torrent-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π»ΠΎΠΊΠΎΠ².

Из ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² BitTorrent v2 Ρ‚Π°ΠΊΠΆΠ΅ выдСляСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ привязкС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ…ΡΡˆ-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ выравнивания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ частям (Π±Π΅Π· добавлСния Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ заполнСния послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°), Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ дублирования Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ выявлСния Ρ€Π°Π·Π½Ρ‹Ρ… источников для Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ кодирования структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого числа ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Для сглаТивания сосущСствования BitTorrent v1 ΠΈ BitTorrent v2 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Ρ… torrent-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠΌΠΈΠΌΠΎ структур с Ρ…ΡΡˆΠ°ΠΌΠΈ SHA-1, индСксы с SHA2-256.
Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» BitTorrent v1. ОТидаСмая Π² libtorrent 2.0 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° WebTorrent ΠΈΠ·-Π·Π° Π½Π΅Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π° Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выпуска, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΊΠΎΠ½Ρ†Π° Π³ΠΎΠ΄Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru