Пару лет назад стало известно, что группа энтузиастов разрабатывает P2P-браузер с поддержкой протокола Hypercore. Этот браузер получил название Beaker 1.0. Цель проекта — предоставить возможность пользователям разрабатывать и размещать свои сайты не где-то там, а «прямо в браузере». То есть можно создать локальную папку и поделиться URL-адресом, который откроет доступ сторонним пользователям к новому ресурсу.
Узлы сети в этом случае — сами пользователи браузера. Beaker базируется на JavaScript c использованием движка Chromium и платформы Electron. Распространияется Beaker под лицензией MIT. Разработчики подготовили сборки для Linux, macOS и Windows.
А что за протокол такой — Hypercore?
Это весьма удобная технология, которая комбинирует в себе еще две технологии — блокчейна и BitTorrent. Как и говорилось выше, пользователи могут загружать файлы сайта и участвовать в их раздаче. Но отличием от BitTorrent является возможность изменения файлов без создания нового адреса.
Чтобы создать собственный сайт, нужно просто подготовить код, развернуть окружение Hyperdrive и разместить на него ссылку. Доступ к ресурсу обеспечивается при помощи URL «hyper://». Как только ссылка открыта, контент загружается с системы автора — и сразу после загрузки файлов новый пользователь может стать новым узлом в системе раздачи.
Основа протокола — лог, который доступен только для добавления новых данных. Он не допускает изменений уже добавленной информации. Эти логи могут распространяться среди участников в сети в P2P-режиме. При этом каждый узел может загрузить только лишь интересующие отрывки лога и после — участвовать в их раздаче.
Целостность лога проверяется при помощи структуры «Дерево Меркла» (Merkle Tree). В этом случае каждая ветка верифицирует все ветки и узлы, которые находятся ниже. Такая верификация стала возможной благодаря хэш-функции BLAKE2b-256.
Как создавать сайты?
В браузере уже есть все необходимое. Это редактор кода и инструменты для синхронизации каталогов с содержимым сайта. А еще есть web-терминал и специализированный API для чтения и загрузки файлов. Терминал представляет собой командную оболочку для навигации по окружению Hyperdrive.
Разработчики предусмотрели возможность связывания нескольких окружений и их слияния, создание форков и участие в раздаче окружений других пользователей.
Кроме создания независимых от хостинга сайтов, браузер используется также для приватного обмена данным, обучения веб-программированию, тестированию прототипов сайтов и упрощения взаимодействия в командах web-разработчиков.