Radicle позволяет не зависеть при разработке и распространении кода от централизованных платформ и корпораций, привязка к которым вносит дополнительные риски (единая точка отказа, компания может закрыться или изменить условия работы). Для управления кодом в Radicle используется привычный Git, расширенный средствами определения репозиториев в P2P-сети. Все данные в первую очередь сохраняются локально (концепция local-first) и всегда доступны на компьютере разработчика, независимо от состояния сетевого подключения.
Участники предоставляют доступ к своему коду и связанным с кодом артефактам, таким как патчи и обсуждения исправления ошибок (issues), которые сохраняются локально и реплицируются на узлы других заинтересованных разработчиков, подключённые к общей децентрализованной P2P-сети. В итоге формируется глобальный децентрализованный Git-репозиторий, данные которого реплицированы и продублированы на разных системах участников.
Для определения соседних узлов в P2P-сети применяется протокол Gossip, а для репликации данных между узлами протокол Heartwood, основанный на Git. Так как протокол основан на Git, платформу легко интегрировать с существующими инструментами для разработки на Git. Для идентификации узлов и верификации репозиториев используется криптография на основе открытых ключей, без применения учётных записей. Аутентификация и авторизация осуществляется на основе открытых ключей без централизованных удостоверяющих серверов.
Каждый репозиторий в P2P-сети имеет свой уникальный идентификатор и самосертифицирован (self-certifying), т.е. все действия в репозитории, такие как добавление коммитов и оставление комментариев к issue, заверяются владельцем цифровой подписью, позволяющей убедиться в корректности данных на других узлах без использования централизованных удостоверяющих центров. Для получения доступа к репозиторию достаточно, чтобы в online находился хотя бы один узел, на котором имеется его реплицированная копия.
Узлы в P2P-сети могут подписываться на определённые репозитории и получать обновления. Возможно создание приватных репозиториев, доступных только определённым узлам. Для управления и владения репозиторием используется концепция «делегатов» (delegates). Делегатом может быть как отдельный пользователь так и бот или группа, привязанные к специальному идентификатору. Делегаты могут принимать в репозиторий патчи, закрывать issue и задавать права доступа к репозиторию. К каждому репозиторию может быть привязано несколько делегатов.
Radicle-репозитории хранятся на системах пользователей в виде обычных git-репозиториев, в которых присутствуют дополнительные пространства имён для хранения данных пиров и форков, с которыми осуществляется текущая работа. Обсуждения, предлагаемые патчи и компоненты для организации рецензирования тоже сохраняются в git-репозитории в виде совместных объектов (COB — Collaborative Objects) и реплицируются между пирами.
В новом выпуске:
- Реализации узла Radicle (radicle-node) переведена на использование библиотеки ввода/вывода Mio. Из зависимостей исключены пакеты netservices, io-reactor и popol, которые мешали добиться должного уровня многоплатформенности. Добавлен новый модуль reactor, в рамках которого io-reactor переписан на базе Mio.
- Переход на Mio позволил реализовать поддержку платформы Windows, которая пока имеет статус экспериментальной.
- Код для разбора аргументов командной строки переведён на библиотеку clap, что унифицировало поведение при разборе аргументов и привнесло в утилиту rad такие возможности как автоматическая генерация подсказки по командам, вывод рекомендаций по устранению ошибок, подсветка вывода и автодополнение команд.
- В radicle-node добавлена поддержка механизма systemd Credentials для безопасной передачи ключей доступа (xyz.radicle.node.secret) и паролей для их расшифровки (xyz.radicle.node.passphrase) в дополнение к использованию переменной окружения RAD_PASSPHRASE, опции командной строки «—secret» и параметров в файле конфигурации.
- Требования к минимально поддерживаемой версии компилятора Rust повышены до 1.85.
Источник: http://www.opennet.ru/opennews/art.shtml?num=64614
