The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Представлена распределённая система доставки web-контента CacheP2P

24.10.2016 10:10

Опубликован первый выпуск проекта CacheP2P, в рамках которого развивается распределённая система доставки контента, построенная из клиентских браузеров, которые выполняют роль узлов для отдачи прокэшированных страниц. Исходные тексты проекта распространяются под лицензией MIT.

Для использования CacheP2P достаточно добавить на страницы загрузку предоставляемой проектом JavaScript-библиотеки, которая сформирует сеть для отдачи контента из браузерного кэша посетителей сайта. Каждый новый посетитель становится участником сети, зеркалирует у себя открытые страницы и открывает совместный доступ к прокэшированным страницам для других пользователей, позволяя получить эти страницы без прямого обращения к сайту. Подобная P2P-сеть может использоваться как для обхода блокировок, так и для снижения нагрузки на сервер и сохранения доступа в случае выхода сервера из строя.

Распределённая сеть из клиентских браузеров строится при помощи технологии WebTorrent, предоставляющей реализацию клиента BitTorrent, работающего на стороне браузера в форме web-приложения, не требующего для работы внешней серверной инфраструктуры и браузерных плагинов. Для организации прямого P2P-канала связи между браузерами применяется протокол WebRTC. CacheP2P рассматривает каждый URL в качестве отдельного торрента, для которого формируется идентификатор TorrentID, хэш SHA1 для верификации прокэшированных вариантов страниц и параметры для определения времени жизни данных в кэше.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: WebTorrent, самодостаточный torrent-клиент, работающий внутри браузера
  3. OpenNews: WebRTC позволяет узнать внутренний IP-адрес пользователя
  4. OpenNews: Выпуск децентрализованной торрент-системы Tribler 6.4 с поддержкой анонимизации
  5. OpenNews: Проект ZeroNet развивает технологию децентрализованных сайтов, которые невозможно закрыть
  6. OpenNews: Выпуск открытой P2P-системы синхронизации файлов Syncthing 0.14
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45364-cachep2p
Ключевые слова: cachep2p, p2p, webtorrent
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:50, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я хочу зайти на rutracker (и он установил себе CachP2P). Допустим, у меня сайт заблокирован, но у Васи есть VPN - он его себе открыл и закэшировал. Как я теперь найду Васю?
     
     
  • 2.4, Вася (??), 10:54, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А ты как думаешь? Через треккер, очевидно. Технология bittorrent же.
     
     
  • 3.10, name (??), 11:36, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    DHT уже не тот?
     
     
  • 4.28, Аноним (-), 18:09, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А если серьёзно, то видимо с этой хренью никакого сертификата подделывать не надо, или специальные российские сертификаты вводить, достаточно загрузить страницу первым, и можно проводить MITM.
    На самом деле подобные технологии нужны только для тяжелого контента.
     
     
  • 5.30, Аноним (-), 21:29, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Новость не читаем, сразу отвечаем?

    >хэш SHA1 для верификации прокэшированных вариантов страниц

     
  • 2.20, Аноним (-), 14:59, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не надо искать этого Васю, потому что серьёзные люди найдут его раньше тебя, и все, кто ищет Васю, попадут на них.
     

  • 1.2, Аноним (-), 10:54, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    чем это лучше строящихся поверх IPFS аналогов или даже вебсерверной версии собснов bittorent-а, например ? :)
     
     
  • 2.7, Аноним (-), 11:29, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну это, видимо, такой костыль на время, пока IPFS еще не захватил вселенную.
     
  • 2.18, arzeth (ok), 14:43, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не знаю, но по крайней мере размером лучше:
    $ curl -sL https://unpkg.com/cachep2p/cachep2p.min.js | gzip -c4 | wc -c
    81601
    $ curl -sL https://unpkg.com/ipfs/dist/index.min.js | gzip -c4 | wc -c
    449445
    Однако, может быть эта разница нивелируется, если IPFS быстрее работает (у js-ipfs под капотом не WebTorrent) — надо побенчмарчить, только не знаю как, надо ведь много сидов откуда-то взять.
     
     
  • 3.33, Аноним (-), 03:10, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А js-ipfs уже работоспособен? Ну, в любом случае, IPFS — штука гораздо более универсальная, так что соотношение размеров неудивительно.
     

  • 1.3, Аноним (-), 10:54, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Хорошо, пусть доставляет!
     
  • 1.6, Аноним (-), 11:21, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    т.е. я могу данные из кеша других пользователей запрашивать? зашибись, чо... а можно список сайтов, на которых эта либа установлена? чтобы случайно на них не зайти...
     
  • 1.8, Аноним84701 (?), 11:34, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    http://www.cachep2p.com/documentation.html

    > Security hashes allow you to define the only content that is valid and that is in sync with the latest content of your website.
    > Step 4
    > Add the three files to the <footer> of all the pages:

    [CODE]
    <script src="cachep2p.min.js"></script>
    <script src="cachep2p.security.js"></script>
    <script src="init.js"></script>[/CODE]
    > It's important to have them in the correct order.

    Я правильно понимаю, что при некотором "везении" и расположении рук клепателя сайта (причем, даже не главного, а какого нибудь очередного "оптимизатора", котороый слышал звон и решил осчастливить всех подряд) чуть поближе к седалищу, будет кэшироваться и отдаваться посторонним и то, что для взора этих самых посторонних совсем не предназначено (типа "site/pm/1/read")?

     
  • 1.9, QuAzI (ok), 11:34, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень нужен инструмент, который даже не то что обходить будет цензуру, а позволит достучаться к заведомо утерянной информации. Регулярно умирают сайты, закрываются интересующие статьи на хабре, пропадает контент за давностью времени - это всё очень сильно бесит.
    Как в этой штуке реализована поддержка динамики?
    Как убедиться, что содержимое страницы актуально, а не тухляк недельной давности?
    Как убедиться, что нет посторонних вставок?
     
     
  • 2.11, freehck (ok), 11:57, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Как в этой штуке реализована поддержка динамики?

    Никак, вестимо. Пока есть люди, у которых открыт/в кэше нужный тебе контент - контент есть. Как только интерес пропадает, контента уже нету. Недельной давности контент не выживет.

    > Как убедиться, что содержимое страницы актуально, а не тухляк недельной давности?

    Кэш браузера учитывает http-заголовки expire, так что можно дать определённые гарантии, что не тухляк.

    > Как убедиться, что нет посторонних вставок?

    Контент ведь ищется по контрольным суммам, как в DHT. Суммы берутся от содержимого страницы.

     
     
  • 3.12, QuAzI (ok), 12:02, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Контент ведь ищется по контрольным суммам, как в DHT. Суммы берутся от содержимого страницы.

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

    Вообще по хорошему хотелось бы иметь что-то типа набора метатегов с указанием зеркал, где можно найти эту же страницу в случае смерти основного сайта. Плюс поддержка таких "множественных" ссылок браузерами при добавлении страницы в закладки. Что-то похожее есть в металинке - если основная ссылка не работает - есть альтернативные, ну или можно форснуть нужный источник. В том числе torrent, как один из источников. Конечно с динамикой в этом плане беда, но хотя бы базовое со статическим содержимым (статьи, документация и т.п.) будет гораздо живее, чем сейчас.

     
     
  • 4.17, Sw00p aka Jerom (?), 14:42, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Новостные сайты идут лесом, эт технология больше подойдёт сайтам вроде википедии. Хотя эта же технология есть банальный CDN
     
     
  • 5.22, QuAzI (ok), 15:27, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Новостные сайты идут лесом, эт технология больше подойдёт сайтам вроде википедии. Хотя
    > эта же технология есть банальный CDN

    Опишите кейс, когда банальный CDN в долгосрочной перспективе (т.е. автора сбил автобус и он больше не платит за CDN) решит вопрос с доступностью контента в случае выпадания основного сайта?

     
     
  • 6.31, Sw00p aka Jerom (?), 21:54, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В случае если вас беспокоит понятие высокой доступности, то необходимо применить один из методов обеспечения высокой доступности - резервирование (избыточность). (в данном конкретном случае (человеческий фактор) - завести второго админа, соучредителя, фин менеджера и тд)

    Пс: в случае с браузерным п2п кешированием лучше использовать MRU.

     
  • 4.23, freehck (ok), 15:27, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>> Контент ведь ищется по контрольным суммам, как в DHT. Суммы берутся от содержимого страницы.
    > Контрольные суммы нужно откуда-то получить. Если я и так делаю запрос к
    > основному сайту чтобы получить данные, то мне уже поздно опрашивать пиров,
    > проще и надёжнее сразу получить готовые данные. Если конечно речь всё
    > ещё про веб, а не тупо файлопомойку с варезом.

    Проще - да. Но вот с надёжностью есть сомнения. Если ресурс массовый, то возможно будет иметь смысл отправить каркас с хэш-суммами, а загрузку данных по этим хэшам оставить на откуп браузеру пользователя. Это может выйти:
    а) быстрее для пользователя
    б) менее накладно для опрашиваемого ресурса.

    > Конечно с динамикой
    > в этом плане беда, но хотя бы базовое со статическим содержимым
    > (статьи, документация и т.п.) будет гораздо живее, чем сейчас.

    А вот это кстати интересный вопрос. Если будет возможность такие вот magnet-ссылки формировать для веб-содержимого, это было бы весьма неплохо.

     
  • 2.19, FSA (??), 14:43, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > позволит достучаться к заведомо утерянной информации

    archive.org, не? Правда его самого надо открывать через обход блокировки. Уроды те, кто это сделал!

     
     
  • 3.21, QuAzI (ok), 15:09, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> позволит достучаться к заведомо утерянной информации
    > archive.org, не? Правда его самого надо открывать через обход блокировки. Уроды те,
    > кто это сделал!

    1) Он архивирует далеко не всё, что народ читает
    2) На нём тоже есть случаи когда не весь контент заархивирован
    3) Он тоже может умереть/заблокироваться и т.п.
    т.е. пиром больше, пиром меньше - в данном случае разница не шибко велика.

     
     
  • 4.34, FSA (??), 05:50, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >>> позволит достучаться к заведомо утерянной информации
    >> archive.org, не? Правда его самого надо открывать через обход блокировки. Уроды те,
    >> кто это сделал!
    > 1) Он архивирует далеко не всё, что народ читает
    > 2) На нём тоже есть случаи когда не весь контент заархивирован
    > 3) Он тоже может умереть/заблокироваться и т.п.
    > т.е. пиром больше, пиром меньше - в данном случае разница не шибко
    > велика.

    Я не сравниваю с сабжем, я просто предлгаю другой инструмент человеку.

     
  • 2.29, Balancer (ok), 19:24, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Регулярно умирают сайты, закрываются интересующие статьи на хабре, пропадает контент за давностью времени - это всё очень сильно бесит.

    Вот тут особенно хорош ZeroNet. Пока копия сайта есть хоть у одного пользователя, он доступен всем.

     
  • 2.32, Ergil (ok), 22:38, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > закрываются интересующие статьи на хабре,

    sohabr.net и расширение «Всегдабр» тебе в помощь. И ничего пропадать не будет.

     

  • 1.13, Kroz (ok), 13:45, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Идея классная. Я бы даже сказал, что это Internet Next Generation.

    Но пока что возникает много вопросов:
    - сохранение контента: как/кто будет решать что хранится на моем компе? Говорили про "хорошие сайты, которые исчезают": а если сайт хороший, но я на него зашел один раз и просто добавил в букмарки на будущее: как долго он просуществует на моем компе?
    - privacy 1: как/кто будет решать кому отдавать. Если раздавать всем, то по сути каждый может узнать, хранится ли на твоем компе определенный контент или нет.
    - privacy 2: как будет решаться проблема "персонализированного" контента?
    - performance: какое будет время от момента ввода URL до момента начала загрузки?

    Думаю, многое можно взять у прокси-серверов (а ведь де факто это распределенный прокси-сервер), но не всё.

    В любом случае, технология интересна.

     
     
  • 2.15, QuAzI (ok), 14:07, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> просто добавил в букмарки на будущее: как долго он просуществует на моем компе?

    Да, это самый бедовый вопрос. Некоторый контент сохраняю через ScrapBook X, но он во первых не синхронизируется никак даже между только моими ПК/смартфоном/планшетом (что уже само по себе не удобно), во вторых никак не учитывает динамику. Страница запоминается "как есть", с таким же успехом можно в PDF пулять и на DropBox, только большинство PDF-илок не дают выделить из страницы нужное и сохраняют всё тупо как картинку (весит как не в себя).

     
     
  • 3.24, Michael Shigorin (ok), 15:45, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Страница запоминается "как есть", с таким же успехом можно
    > в PDF пулять и на DropBox, только большинство PDF-илок не дают
    > выделить из страницы нужное и сохраняют всё тупо как картинку
    > (весит как не в себя).

    Продайте козу, бишь не пуляйте в PDF? :)

     

  • 1.14, Аноним (-), 13:59, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Мне интересно как теперь пользователи из Европы и США, с их автоматическими системами обнаружения скачивания торрентов, будут доказывать, что просто зашли на сайт
     
     
  • 2.16, Mail (?), 14:31, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Доказывает следствие.
     
     
  • 3.25, Michael Shigorin (ok), 15:47, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Доказывает следствие.

    Это смотря где.

     

  • 1.26, Аноним (-), 16:39, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже которая по счёту. Сможет преуспеть только если будет встраиваться в браузеры и обладать эксклюзивным контентом.
     
  • 1.27, AlexAT (ok), 17:04, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    SHA1 для верификации? Надёжненько

    А вообще идея мне нравится, можно снизить нагрузку на доставку определённых частей контента. Не для маленьких HTML/JS, конечно, нет - задержки на поиск с вероятностью 99% окажутся неприемлемы.

     
  • 1.35, Нет (?), 08:10, 25/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я не хочу участвовать в отдаче своего кэша всем подряд. Но я зашел на сайт, к которому Вася прикрутил этот скрипт. Будет ли меня браузер уведомлять, что теперь я раздаю свой кэш? Нет.
    Будет ли хоть одна нормальная контора доверять раздачу контента от своего имени посторонним людям (да, я прочитал про sha-1)? Нет.

    Как технология - красиво, интересно.
    Как применение - пока не увидел ничего более достойного, чем распространение вирусов. Лендинги с ними и так долго не живут, а растащить свой дерьмо-контент по всему интернету, чтобы труднее было прибить - милое дело.

     
  • 1.36, Аноним (-), 15:55, 26/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > распределённая система доставки контента, построенная из клиентских браузеров, которые выполняют роль узлов для отдачи прокэшированных страниц

    webRTC отключил глобально для всех.

    JS по умолчанию отключён.

    Если этого будет мало для получения контента напрямую без посредников, добавлю их JS скрипты в фильтры для privoxy.

     
     
  • 2.37, Аноним (-), 14:40, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Держите нас в курсе.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру