Разработчики выпустили P2P-платформу Radicle 1.0 для децентрализованной совместной разработки и хранения кода без привязки к конкретным серверам. При разработке проекта использовался язык Rust, а распространяется он под лицензиями Apache 2.0 и MIT.
Уже готовы сборки для Linux и macOS, а параллельно развивают настольный клиент, веб- и консольный интерфейс.
Для управления кодом в Radicle используется Git, а также средства определения репозиториев в P2P-сети. Все данные сохраняются локально и доступны независимо от подключения к сети.
Участники могут давать доступ к своему коду, патчам и обсуждениям исправлений, которые дублируются на узлы других заинтересованных разработчиков, подключённые к общей децентрализованной P2P-сети.
Для определения соседних узлов в P2P-сети применяется протокол Gossip, а для репликации данных между узлами протокол Heartwood, основанный на Git. Платформу можно интегрировать с существующими инструментами для разработки на Git. Для идентификации узлов и верификации репозиториев используется криптография на основе открытых ключей.
Каждый репозиторий получает свой уникальный идентификатор и самосертифицирован (self-certifying). Все действия в нём заверяются владельцем цифровой подписью. Для получения доступа к репозиторию достаточно, чтобы хотя бы один узел был онлайн.
Узлы в P2P-сети могут подписываться на определённые репозитории и получать обновления. Также можно создавать приватные репозитории, доступные только определённым узлам. Для управления используется концепция делегатов. В этой роли может выступать как отдельный пользователь так и бот или группа, привязанные к своему идентификатору. К каждому репозиторию может быть привязано несколько делегатов.
На системах пользователей Radicle-репозитории хранятся в виде обычных git-репозиториев, а внутри присутствуют дополнительные пространства имён для хранения данных пиров и форков, с которыми осуществляется текущая работа. Обсуждения, предлагаемые патчи и компоненты сохраняются в репозитории в виде совместных объектов.
В Radicle 1.0 включили:
реализацию расширяемого протокола для организации работы P2P-сети и синхронизации данных;
элементы социального взаимодействия;
протокол аутентификации и авторизации на основе открытых ключей;
CLI-интерфейс;
веб-интерфейс для навигации по репозиториям и узлам;
средства для обеспечения конфиденциальности, в том числе возможность работы через анонимную сеть Tor;
поддержку повторяемых сборок для проверки заявленных исходных текстов.
В будущем разработчики обещают также:
встроенные инструменты для непрерывной интеграции и доставки;
расширенные возможности рецензирования изменений;
систему уведомлений об изменениях в репозитории;
поддержку профилей пользователей и возможность привязки нескольких устройств;
поддержку тегов;
утилиты для модерирования и управления узлами.
Источник: habr.com