Разработчики выпустили новую версию P2P-платформы Radicle 1.7, направленную на создание децентрализованного сервиса для совместной разработки и хранения кода. Платформа предлагает альтернативу централизованным системам, таким как GitHub и GitLab, не привязываясь к конкретным серверам и обеспечивая устойчивость к цензуре.
Основные элементы социального взаимодействия разработчиков, такие как issue, патчи и рецензии на код, поддерживается платформой. Проект написан на языке Rust и распространяется под лицензиями Apache 2.0 и MIT. Сборки доступны для Linux и macOS, а также ведётся разработка десктоп-клиента, web-интерфейса и консольного интерфейса.
Radicle позволяет разработчикам избегать зависимости от централизованных платформ, что снижает риски, связанные с едиными точками отказа или изменением условий работы. Управление кодом осуществляется через Git, дополненный средствами для определения репозиториев в P2P-сети. Данные сохраняются локально на компьютерах разработчиков (концепция local-first) и доступны независимо от состояния сетевого подключения.
Участники сети предоставляют доступ к своему коду и связанным артефактам, таким как патчи и обсуждения ошибок (issues), которые сохраняются локально и реплицируются на узлы других разработчиков. Это формирует глобальный децентрализованный Git-репозиторий, данные которого дублируются на разных системах участников.
Для определения соседних узлов используется протокол Gossip, а для репликации данных — Heartwood, основанный на Git. Это позволяет легко интегрировать Radicle с существующими инструментами разработки на основе Git. Идентификация и верификация узлов осуществляются через криптографию на основе открытых ключей без использования централизованных серверов.
Каждый репозиторий в P2P-сети имеет уникальный самосертифицированный идентификатор. Все действия, такие как добавление коммитов и оставление комментариев к issue, заверяются цифровой подписью владельца. Это обеспечивает целостность данных на других узлах без необходимости в централизованных удостоверяющих центрах.
Репозитории могут быть приватными и доступны только определённым узлам. Управление репозиторием осуществляется через концепцию "делегатов", которые могут принимать патчи, закрывать issue и задавать права доступа. Делегатами могут быть как отдельные пользователи, так и боты или группы.
Radicle-репозитории хранятся в виде обычных git-репозиториев с дополнительными пространствами имён для данных пиров и форков. Обсуждения, патчи и компоненты для организации рецензирования сохраняются в репозиториях в виде совместных объектов (COB) и реплицируются между пирами.
В новой версии 1.7 были внедрены следующие улучшения:
- Переработана реализация подписанных ссылок (sigrefs), добавлена защита от повторного использования подписей, что формирует непрерывную цепочку изменений.
- Расширены возможности блокировки узлов, теперь блокировка применяется на этапе установки соединения и приёме данных от заблокированного узла.
- Разрешено использование любых ссылок на внешние объекты Git, кроме временных веток.
- Повышена информативность сообщений об ошибках, связанных с недостаточными правами пользователя.
- Улучшена эффективность ввода/вывода за счёт изменения параметров БД SQLite.
- Устранена уязвимость, информация о которой будет раскрыта 23 марта. На данный момент сообщается, что команда разработчиков не выявила следов эксплуатации этой проблемы в публичных репозиториях.