Pull to refresh

9-килобайтный скрипт превратит любой браузер с WebRTC в узел распределённой CDN

Reading time 3 min
Views 26K
Чуть больше двух лет назад я написал статью-исследование "Темная материя интернета". Основная идея той статьи — использовать ресурсы миллионов обычных пользователей интернета для того, чтобы снять большую часть нагрузки с веб-сайтов, подобно тому, как в сетях BitTorrent участники помогают друг другу качать файлы. Это могло бы многократно снизить стоимость хостинга, уменьшить зависимость сайтов от рекламы и платных сервисов или пожертвований. Тогда любые попытки реализовать подобную «децентрализованную CDN» наталкивались на необходимость устанавливать специальный софт в виде отдельного приложения или расширения браузера.

Но пару месяцев назад состоялся первый видеозвонок между браузерами Firefox и Chrome, ставший возможный благодаря технологии WebRTC. Вместе эти браузеры имеют долю рынка почти в 60%, а значит всё необходимое, чтобы стать узлом P2P-сети, у большинства пользователей интернета есть уже сейчас или появится в ближайшие недели (когда полноценная поддержка WebRTC войдёт в стабильную сборку Firefox).

Стартап PeerCDN собирается использовать новые возможности для создания распределённой CDN для статического контента, воспользоваться которой можно будет, просто включив в код страницы небольшой (9 кб) скрипт. Никаких плагинов, дополнений и дополнительных телодвижений не нужно, всё происходит прозрачно для клиента. Создатели обещают запустить сервис в течение ближайших недель, а пока можно записаться в список рассылки.




Принцип работы PeerCDN практически ничем не отличается от работы экспериментального дополнения FireCoral, о котором я рассказывал два года назад, поэтому просто приведу цитату с иллюстрацией из той статьи:

FireCoral перехватывает HTTP-запросы, и, если в кэше браузера нет ничего подходящего, обращается к трекеру (1). Трекер либо сообщает(2) клиенту адреса пиров, у которых в кэше есть нужный файл (3), либо отправляет его на сервер-источник, если запрос еще никто не кэшировал, или версия в кэше просрочена (4). Подлинность всего, что FireCoral скачал с пиров, удостоверяется цифровой подписью, которую предоставляет доверенный сервер подписей (5). Завершив обработку запроса, FireCoral сообщает трекеру, что теперь у него тоже есть копия (6).

image



PeerCDN соединяется с пирами через WebRTC, причём умеет прозрачно для пользователя переключаться между загрузкой с пиров и с сервера, если пиры стали недоступны. Кроме того, есть поддержка работы с потоковым видео.

PeerCDN пока не раскрывает подробностей насчёт своей стратегии монетизации, по-видимому, компания намерена зарабатывать, предоставляя свои серверы в качестве трекеров и центров сертификации и авторизации. Естественно, это может вызывать опасения веб-мастеров и пользователей, ведь у PeerCDN будет сосредоточена информация о том, кто какие файлы загружает, и подтверждение их подлинности тоже будет в руках компании. С другой стороны, подобные претензии можно предъявить любой CDN.

Ещё один вопрос к этой технологии — как отнесутся пользователи к тому, что с их компьютера будут раздаваться файлы. В PeerCDN обещают бережно относиться к ресурсам пользовательских браузеров и отключать раздачи при работе через мобильный интернет или при низком уровне заряда батареи. Возможно, сайтам стоит предупреждать пользователя об использовании PeerCDN, подобно тому, как сейчас они предупреждают об использовании сookies.

В любом случае, это очень перспективная технология для сайтов с большим количеством открытого публичного контента, особенно тяжёлого мультимедийного. Фактически речь идёт о возможности создавать для каждого сайта динамически масштабирующуюся CDN, которая будет работать тем лучше и стабильнее, чем больше посетителей на сайте. Причём практически бесплатно. А с появлением подобных PeerCDN standalone-решений для основных серверных платформ, которые любой веб-мастер сможет самостоятельно установить на свой сайт, исчезнут все вопросы касательно возможной слежки и контроля над распространением конента.

Tags:
Hubs:
+47
Comments 29
Comments Comments 29

Articles