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

    Чуть больше двух лет назад я написал статью-исследование "Темная материя интернета". Основная идея той статьи — использовать ресурсы миллионов обычных пользователей интернета для того, чтобы снять большую часть нагрузки с веб-сайтов, подобно тому, как в сетях 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-решений для основных серверных платформ, которые любой веб-мастер сможет самостоятельно установить на свой сайт, исчезнут все вопросы касательно возможной слежки и контроля над распространением конента.

    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 29

      +17
      Разгрузим дата-центры с серверами, нагрузим обычных провайдеров? :)
        +17
        И несчастных пользователей, часть которых даже об этом не будет подозревать :(
          +3
          Если бы при входе сайт спрашивал что-то типа «Включить пиринговую сеть? (позволяет ускорить загрузку)», тогда бы не было проблем.
          Youtube бы этот скрипт пошёл на пользу, я думаю
            +1
            как будто кто-то знает значение слова «пиринговая»
              0
              Ну тогда уже не «Включить пиринговую сеть? (позволяет ускорить загрузку)», а «Выключить пиринговую сеть? (медленно)» :)
            +2
            Первая мысль,
            а если нечто подобное начнут внедрять как вирусные ифреймы?
            получим FastFlux 2.0?
              +4
              Ещё один вопрос к этой технологии — как отнесутся пользователи к тому, что с их компьютера будут раздаваться файлы.
              Более интересен вопрос, как отнесутся к этому правообладатели на контент (копирасты в простонаречии).
              В Европе (в частности Германии) пользователь торрента может получить иск + счет к оплате за то, что он распространял фильм, музыку и т.д. (просто раздав через свой торрент). Доказательством является время, IP-адресс и хэш фильма. Суды проигрываются, т.к. судебная система изночальна лояльна к копирасту.
              Поэтому сценарий PeerCDN — послушал музыку из инета (лежит в кеше браузера) и раздал другим — подходит под распространение.
              Если такое будет делать мой браузер, я буду вынужден или отключить это как-то или поменять его на другой. Пока без вариантов.
                +7
                Придётся немцам переходить на ie6
                  0
                  Если я правильно понял детали реализации, то достаточно будет просто добавить скрипт в фильтры адблока или чего-нибудь подобного.
                    +4
                    Есть достаточно приятная новость из Германии первоисточник. Суть в том, что суд земель постановил, что провайдеры должны предоставлять необходимую информацию правообладателям, но только в том случае, если они ее собирают и хранят. Таким образом провайдеры теперь не обязаны хранить информацию и соответственно ее выдавать, думаю в скором времени в Германии будет рост «абузостойких» провайдеров.
                      +1
                      К сожалению по закону провайдеры пока обязаны сохранять данные…
                      Кстати, есть и другой общеевропейский закон «Директива ЕС о хранения данных телекоммуникаций с целью борьбы с преступностью и терроризмом».
                      Так что собирать логи они пока так и так обязаны.
                      Кто силен в немецком может почитать полную хронику событий вокруг законов о сохраненнии данных. Детектив тот еще…
                      0
                      Да именно так — распространение. Особенно если именно сам послушал и знал что это пиратка. С другой стороны, если кэшировать например 1GB того что решит система, то это снимает ответственность с пользователя.
                      +2
                      Я не очень хорошо знаю подробности работы WebRTC, как у него с NAT-ом дела?
                        +4
                        Есть поддержка ICE/STUN/TURN.
                        +2
                        1. Интересно как долго будет рендериться страничка со всеми этими телодвижениями, а ведь могут быть еще и ситуации когда сервер говорит что вот у этого есть контент качай с него. Начинает качать и выясняется, что вот буквально миллисекунду назад он протух или был удален, или пользователь отвалился и значит ищем нового, а за ним можем искать еще одного.

                        2.
                        работе через мобильный интернет

                        А как они это определят. По браузеру что ли? А если я включу в настройках показывать мне полный сайт (или как оно там),

                        3.
                        или при низком уровне заряда батареи

                        А это api доступно во всех версиях браузеров которые они собираются поддерживать?
                          0
                          ИМХО стартап пуст с точки зрения практического применения. Сеть не знает о том быстр ли нод или нет. В то время как абстрактный акамаи гарантирует хоть что-то, с этой технологией вы можете попасть на пир сидящий через grps какой-то. Особенно это пагубно с маленькими файлами — скриптами и css, там задержка более критична нежели сама загрузка.
                            +1
                            Здесь, как показано на картинке и в пояснении, ключевую роль играют сервер подписей и трекер. Произвольный сайт-раздатчик не может с технологией работать, потому что пир не сможет доказать свою подлинность. Поэтому опасаться, что все поголовно и бесконтрольно начнут раздавать, не стоит. Ну, допустим, какой-то сайт сам устроит эти 2 сервера. Тогда за раздачу через других он сам будет полностью ответственен. Если бы не него поддержка трекера и подписей, никакой прямой раздачи между пирами не было бы.
                              0
                              Я говорю о задержке, а не о секьюрности. Прежде чем думать о секьюрити, нужно подумать о скорости. И тут нет ни какой гарантии в peer-to-peer нет. CDN известен своим латенси, тут же больше на большие куски, скажем видео. Но и то как-то сомнительно это все, что видео из ютуба будет медленее, чем видео непойми с чьего компьютера, непойми с какой текущей загрузкой IO, сети и т.п.
                              0
                              TorrentStream вроде как уже работает и давно. Чем это лучше? Не надо ставить левый софт и плагин?
                                0
                                Надо не забыть эти скрипты в AdBlock добавить будет.

                                Мне не жалко для других потратить толику трафика (скажем, другим пользователям Хабра картинки поотдавать), но бывают ситуации, когда я лишнему трафику буду совсем не рад (GPRS-канал и платный трафик, мало ли бывает), а легкого автоматического варианта решить «не грузить слабого клиента» у системы вроде как нет.
                                  +1
                                  В PeerCDN обещают бережно относиться к ресурсам пользовательских браузеров и отключать раздачи при работе через мобильный интернет или при низком уровне заряда батареи.
                                    –1
                                    А что если какой-либо юзер не хочет быть частью CDN по каким-либо иным, например, религиозным соображениям? Ведь никто его (юзера) не спрашивает, можно ли использовать его вычислительные свойства/канал или нет…
                                      +1
                                      Не нашел на сайте прямого подтверждения этому, равно как и опровержения. Может, подождем релиза или просто официальных данных по этому вопросу?
                                      0
                                      Суровые парни! И добряки в душЕ! :)

                                      А если серьезно, то, как только я поверю, что мой браузер сообщит скрипту на страничке уровень моей батареи, я тут же уберу этот замечательный «CDN» из AdBlock.

                                      А вот с каналом (с толщиной) так не прокатит. Начнем с того, что нигде на машине она не присутствует в готовом виде. Они еще косвенно могут узнать по принципу speedtest.net/, погоняв туда-сюда тестовый массив информации, но сам такой замер (в т.ч. и на 3G) может стоить владельцу компа пару метров трафика.

                                      У MS, вроде, даже прямо из скрипта и «так можно было узнать», но что там получилась бы за цифра? «100Мб», как можно подумать, посмотрев скорость сетевой платы (я, кстати, до сих пор встречаю людей, уверенных, что 100 Мб — это скорость их ADSL-интернета :) )?

                                      В общем, вопросы есть, посмотрим, что у ребят получится.
                                        0
                                        Ну, например, в той же FirefoxOS вполне себе есть API для получения информации о заряде батареи. Да, я знаю, что это ОС для смартфонов, но что мешает со временем это перенести и на десктопные браузеры?

                                        А определить, что в данный момент у пользователя не самый лучший вариант в плане канала можно и проще. Пинг обычно сильно выше при использовании GPRS/EDGE/3G.

                                        В любом случае, дождемся более подробной информации — увидим, пока все это — догадки и домыслы.
                                          0
                                          Ну, например, в той же FirefoxOS вполне себе есть API для получения информации о заряде батареи. Да, я знаю, что это ОС для смартфонов, но что мешает со временем это перенести и на десктопные браузеры?

                                          Уже что-такое есть habrahabr.ru/post/145608/
                                    0
                                    Совсем недавно скайп ругали за то, что он из всех юзеров делал ноды, а из юзеров с толстым каналом — «суперноды». Очень много радости доставляло тем, у кого канал очень толстый, но при этом ограничение по трафику или оплата за трафик. И обращу внимание, что такое ещё совсем не вымерло, даже за бугром. Когда Мелкомягкие выкупили скайп, супернодами стали сайтых мелкомягких, и, вроде, лучи ненависти в адрес скайпа поубавились.

                                    Теперь всё возвращается. Ну чо, успехов. Да здравствует адблок!
                                      0
                                      Запустили.
                                      docs.peercdn.com/
                                        0
                                        Проект закрыли?
                                        Что-то куча вот таких рекламных статей, но ни скриппта ни кода сервера нигде нет.

                                        Only users with full accounts can post comments. Log in, please.