Wprowadzono wydanie platformy P2P Radicle 1.0, mającej na celu stworzenie zdecentralizowanej usługi współpracy i przechowywania kodu, podobnej do GitHub i GitLab, ale niezwiązanej z konkretnymi serwerami, niepodlegającej cenzurze i działającej przy użyciu zasobów uczestników sieci P2P. Wydanie 1.0 oznacza stabilizację protokołu i gotowość platformy do powszechnego użytku. Począwszy od tego wydania, protokół będzie zmieniany z zachowaniem kompatybilności wstecznej, a narzędzia będą zawierały możliwości bezproblemowej aktualizacji istniejących systemów do nowej wersji. Opracowania projektu są napisane w języku Rust i są rozpowszechniane na podstawie licencji Apache 2.0 oraz MIT. Kompilacje zostały przygotowane dla systemów Linux i macOS. Dodatkowo rozwijane są klient desktopowy, interfejs webowy oraz interfejs konsolowy.
Radicle pozwala na niezależność w rozwijaniu i dystrybucji kodu od scentralizowanych platform i korporacji, których powiązania wprowadzają dodatkowe ryzyka (pojedynczy punkt awarii, firma może zniknąć lub zmienić warunki współpracy). Do zarządzania kodem w Radicle wykorzystywany jest znany Git, rozszerzony o mechanizmy określania repozytoriów w sieci P2P. Wszystkie dane są przede wszystkim przechowywane lokalnie (koncepcja local-first) i zawsze dostępne na komputerze dewelopera, niezależnie od stanu połączenia sieciowego.
Uczestnicy udostępniają dostęp do swojego kodu oraz powiązanych z kodem artefaktów, takich jak poprawki oraz dyskusje dotyczące błędów (issues), które są przechowywane lokalnie i replikowane na węzły innych zainteresowanych deweloperów podłączonych do wspólnej zdecentralizowanej sieci P2P. W efekcie tworzy się globalne, zdecentralizowane repozytorium Git, którego dane są replikowane i duplikowane na różnych systemach uczestników.
Do określania sąsiednich węzłów w sieci P2P stosowany jest protokół Gossip, a do replikacji danych między węzłami protokół Heartwood, oparty na Git. Ponieważ protokół oparty jest na Git, platformę łatwo zintegrować z istniejącymi narzędziami do programowania na Git. Do identyfikacji węzłów i weryfikacji repozytoriów используется криптография na podstawie otwartych kluczy, bez użycia kont użytkowników.
Każde repozytorium w sieci P2P ma swój unikalny identyfikator i jest samoświadome (self-certifying), co oznacza, że wszystkie działania w repozytorium, takie jak dodawanie commitów i pozostawianie komentarzy do problemów, są poświadczane przez właściciela podpisem cyfrowym, co pozwala na upewnienie się o poprawności danych na innych węzłach bez użycia scentralizowanych centrów certyfikacji. Aby uzyskać dostęp do repozytorium, wystarczy, że w trybie online będzie przynajmniej jeden węzeł, na którym znajduje się jego zreplikowana kopia.
Węzły w sieci P2P mogą subskrybować określone repozytoria i otrzymywać aktualizacje. Możliwe jest tworzenie prywatnych repozytoriów, które są dostępne tylko dla określonych węzłów. Do zarządzania i posiadania repozytorium stosuje się koncepcję „delegatów” (delegates). Delegatem może być zarówno pojedynczy użytkownik, jak i bot lub grupa przypięta do specjalnego identyfikatora. Delegaci mogą przyjmować poprawki do repozytorium, zamykać problemy i ustalać prawa dostępu do repozytorium. Do każdego repozytorium może być przypisanych kilku delegatów.
Na systemach użytkowników repozytoria Radicle są przechowywane w postaci zwykłych repozytoriów git, w których znajdują się dodatkowe przestrzenie nazw do przechowywania danych peerów i forków, z którymi prowadzi się bieżącą pracę. Dyskusje, proponowane poprawki i komponenty do organizacji przeglądów również są przechowywane w repozytorium git w postaci wspólnych obiektów (COB — Collaborative Objects) i replikowane między peerami.
Radicle 1.0 zawiera:
- Realizację rozszerzalnego protokołu do organizacji pracy sieci P2P i synchronizacji danych.
- Elementy interakcji społecznych, takie jak zgłoszenia, poprawki i recenzje kodu.
- Protokół uwierzytelniania i autoryzacji oparty na otwartych kluczach, działający bez scentralizowanych certyfikatorów. serwerów.
- Interfejs CLI, znany użytkownikom zaznajomionym z Git.
- Interfejs webowy do nawigacji po repozytoriach i węzłach.
- Środki zapewniające prywatność, w tym wsparcie dla prywatnych repozytoriów i możliwość pracy przez anonimową sieć Tor.
- Wsparcie dla powtarzalnych kompilacji w celu weryfikacji, że rozpowszechniane pliki wykonywalne Radicle zostały stworzone z deklarowanych źródeł.
Nadal w fazie rozwoju możliwości, które jeszcze nie są gotowe:
- Wbudowane narzędzia do ciągłej integracji (CI) i ciągłej dostawy (CD).
- Interfejs konsolowy Radicle TUI (Terminal User Interface).
- Rozbudowane możliwości przeglądania zmian.
- System powiadamiania o zmianach w repozytorium.
- Wsparcie dla profili użytkowników i możliwość powiązania wielu urządzeń.
- Wsparcie dla tagów.
- Narzędzia do moderowania i zarządzania węzłami.
- Aplikacja desktopowa.
Źródło: opennet.ru
