Представен е релиз на P2P платформата Radicle 1.0, целяща да създаде децентрализирана услуга за съвместна разработка и съхранение на код, подобна на GitHub и GitLab, но не привързана към конкретни сървъри, устойчива на цензура и работеща с ресурсите на участниците в P2P мрежата. Релиз 1.0 отбелязва стабилизация на протокола и готовност на платформата за широко ползване. От този релиз нататък протоколът ще бъде променян с запазване на обратна съвместимост, а инструментариумът ще включва възможности за безпроблемно обновление на съществуващите системи до новата версия. Разработките на проекта са написани на Rust и се разпространяват под лицензите Apache 2.0 и MIT. Сборките са подготвени за Linux и macOS. Допълнително се развиват десктоп клиент, уеб интерфейс и конзолен интерфейс.
Radicle позволява разработването и разпространението на код да не зависят от централизирани платформи и корпорации, което носи допълнителни рискове (едина точка на провал, компанията може да затвори или да промени условията за работа). За управление на кода в Radicle се използва познатият Git, разширен с инструменти за дефиниране на хранилища в P2P мрежата. Всички данни първо се запазват локално (концепцията local-first) и винаги са достъпни на компютъра на разработчика, независимо от състоянието на интернет връзката.
Участниците предоставят достъп до своя код и свързаните с него артефакти, като пачове и обсъждания на корекции на грешки (issues), които се съхраняват локално и се репликират на възли на други заинтересовани разработчици, свързани с общата децентрализирана P2P мрежа. В резултат на което се формира глобален децентрализиран Git хранилище, чиито данни са репликирани и дублирани на различни системи на участниците.
За определяне на съседни възли в P2P мрежата се използва протоколът Gossip, а за репликиране на данни между възлите - протоколът Heartwood, основан на Git. Тъй като протоколът е базиран на Git, платформата лесно може да се интегрира с съществуващите инструменти за разработка на Git. За идентификация на възлите и верификация на репозиториите се използва криптография на база публични ключове, без необходимост от потребителски акаунти.
Всяка репозитория в P2P мрежата има свой уникален идентификатор и е самосертифицирана, т.е. всички действия в репозитория, като добавяне на комити и оставяне на коментари по проблеми, се удостоверяват от собственика с цифров подпис, позволяващ да се уверим в коректността на данните на другите възли без използване на централизираните удостоверяващи центрове. За да получите достъп до репозитория, е достатъчно поне един възел да е онлайн, на който да има репликирана копия.
Възлите в P2P мрежата могат да се подписват за определени репозитории и да получават актуализации. Възможно е създаването на частни репозитории, достъпни само за определени възли. За управление и владеене на репозитория се използва концепцията „делегати“. Делегат може да бъде както отделен потребител, така и бот или група, свързани с специален идентификатор. Делегатите могат да приемат пачове в репозитория, да затварят проблеми и да задават права за достъп до репозитория. Към всеки репозитор може да бъдат привързани няколко делегати.
На системите на потребителите Radicle репозиториите се съхраняват като обикновени git репозитории, в които съществуват допълнителни пространства за данни на пирите и форковете, с които се извършва текущата работа. Обсъждания, предложени патчи и компоненти за организиране на рецензии също се съхраняват в git репозиторите във вид на съвместни обекти (COB - Collaborative Objects) и се репликират между пирите.
Radicle 1.0 включва:
- Реализация на разширяем протокол за организиране на работата на P2P мрежа и синхронизация на данни.
- Елементи за социално взаимодействие, като issue, патчи и рецензии на код.
- Протокол за удостоверяване и авторизация, основан на публични ключове, работещ без централизирани удостоверяващи органи. сървъри.
- CLI интерфейс, познат на потребителите, запознати с Git.
- Уеб интерфейс за навигация из репозиориите и възлите.
- Инструменти за осигуряване на конфиденциалност, включващи поддръжка на частни репозитории и възможност за работа през анонимната мрежа Tor.
- Поддръжка на повтарящи се сборки за проверка, че разпространяемите изпълними файлове Radicle са компилирани от заявените изходни кодове.
Все още неизпълнени функционалности, които са в разработка:
- Вградени инструменти за непрекъсната интеграция (CI) и непрекъсната доставка (CD).
- Конзолният интерфейс Radicle TUI (Terminal User Interface).
- Разширени възможности за преглед на изменения.
- Система за доставка на уведомления за промени в репозитория.
- Поддръжка на потребителски профили и възможност за свързване на множество устройства.
- Поддръжка на тагове.
- Утилити за модериране и управление на възли.
- Десктоп приложение.
Източник: opennet.ru
