WebTorrent, самодостаточный torrent-клиент, работающий внутри браузера

18.01.2016 10:29

В рамках проекта WebTorrent подготовлен первый BitTorrent-клиент, реализованный в форме запускаемого внутри браузера web-приложения, не требующего для работы внешней серверной инфраструктуры и браузерных плагинов. Интеграция кода WebTorrent на сайты позволяет сформировать децентрализованную сеть распространения контента, функционирующую через связывание между собой браузеров посетителей этих сайтов. WebTorrent написан на языке JavaScript и использует технологию WebRTC для организации прямого P2P-канала связи между браузерами. Исходные тексты проекта распространяются под лицензией MIT.

В качестве примера практического использования WebTorrent, на основном сайте проекта организован показ свободного фильма Sintel, который размещён в форме torrent-а, содержимое которого загружается с систем пользователей, просматривающих данный фильм. Особенностью WebTorrent, отличающей данную технологию от обычных Torrent-клиентов, является интеграция с Web и существенное упрощение работы. От пользователя не требуется установка и запуск дополнительных программ. Передача данных осуществляется непосредственно из браузеров других посетителей, без обращения к промежуточным серверам, которые потенциально могут стать жертвой MITM-атаки.

Подобная технология может стать подспорьем для создания YouTube-подобных видеохостингов, в которых посетители участвуют в хранении контента, или для построения новых децентрализованных сетей хранения, информация в которых распределена по системам пользователей. WebTorrent также может применяться в качестве комбинированной сети доставки контента (CDN) для таких ресурсов как Wikipedia и Internet Archive, в которой популярный контент передаётся с привлечением пользователей, а редкий контент продолжает отдаваться с сайта напрямую. WebTorrent уже применяется в сервисе обмена файлами Instant.io, децентрализованном варианте GitHub GitTorrent, системе размещения сайтов без серверов PeerCloud, платформе запуска web-приложений из торрентов Webtorrentapp и гибридном настольном torrent-клиенте webtorrent-hybrid.

WebTorrent поддерживает magnet-ссылки, API для расширения протокола, автоматическое обнаружение пиров через dht, tracker и ut_pex, вещание видео с задействованием HTML5-тега video и передачу файлов в виде потоков, допускающих смену позиции в потоке до завершения загрузки. Дополнительно поставляется вариант WebTorrent для Node.js, который поддерживает потоковое вещание в AirPlay, Chromecast и VLC.