24.10.2021

Первый публичный выпуск децентрализованной платформы совместной разработки Radicle


Представлен первый бета выпуск P2P-платформы Radicle и связанного с ней десктоп-клиента Radicle Upstream. Проект нацелен на создание децентрализованного сервиса совместной разработки и хранения кода, похожего на GitHub и GitLab, но не привязанного к конкретным серверам, не подверженного цензуре и работающего с использование ресурсов участников P2P-сети. Код проекта написан на Rust (клиент на TypeScript, Svelte и Electron) и распространяется под лицензией GPLv3. Сборки подготовлены для Linux (AppImage) и macOS.

Radicle позволяет не зависеть при разработке и распространении открытого кода от централизованных платформ и корпораций, привязка к которым вносит дополнительные риски (единая точка отказа, компания может закрыться или изменить условия работы). Для управления кодом в Radicle используется привычный Git, расширенный средствами определения репозиториев в P2P-сети. Все данные в первую очередь сохраняются локально и всегда доступны на компьютера разработчика, независимо от состоянии сетевого подключения. Для защиты информации используется криптография на основе открытых ключей, без применения учётных записей. Список репозиториев участников P2P-сети можно посмотреть на seed-узле проекта.

В основе P2P-сети лежит протокол Radicle Link, основанный на Git и обеспечивающий репликацию данных между участниками. Участники предоставляют доступ к своему коду и коду интересующих их проектов, избыточные копии которых сохраняются локально и реплицируются на системы других заинтересованных разработчиков. В итоге формируется глобальный децентрализованный Git-репозиторий, данные которого реплицированы и продублированы на разных системах участников.

Протокол поддерживает два типа объектов идентификации — участник и проект. Участник связывается с персоной, запустившей узел в P2P-сети (peer), а проект описывает репозиторий, над которым может работать несколько участников. В сети выстраивается социальный граф связи участников и проектов — участники отслеживают интересующие их проекты и других участников. Объекты отслеживаемых участников становятся доступны другим участникам, которые следят за текущим участником.

Разработка ведётся в стиле «базара» — вместо поддержания канонического эталонного представления (master) в Radicle присутствует несколько параллельных веток (upstream) со своими сопровождающими и участниками, которые обмениваются между собой патчами. Вместо привязки к внешнему эталонному репозиторию, в Radicle работа отталкивается от монорепозитория на локальной машине каждого разработчика, в который можно извлекать изменения из репозиториев отслеживаемых участников и передавать свои изменения в репозитории отслеживающих участников.

Концептуально, проект становится совокупностью представлений кода на системах всех участников разработки. На практике организуется иерархия доставки изменений на основе цепочки доверия — для получения изменений в свою локальную копию репозитория разработчик добавляет других разработчиков в качестве источников (remotes), что автоматически формирует подписку на появляющиеся в их репозиториях новые коммиты. Все изменения в P2P-сети заверяются цифровой подписью и могут быть верифицированы другими участниками.

Наиболее простым способом подключения к сети является установка десктоп-приложения Radicle Upstream, которое позволяет создать ключи для идентификации нового участника, разместить свой код и наладить взаимодействие с другими разработчиками. В настоящее время реализация ограничена совместной работой над кодом, но в будущем планируют добавить средства для организации обсуждений, рецензирования изменений и отслеживания ошибок, а также реализовать поддержку приватных репозиториев с доступом на основе сквозного шифрования.

Источник: https://www.opennet.ru/opennews/art.shtml?num=54207

Добавить комментарий