Публикувана децентрализирана платформа за съвместна разработка Radicle 1.7

Публикувана е версия 1.7 на P2P платформата Radicle, която има за цел да създаде децентрализирана услуга за съвместна разработка и съхранение на код, подобна на GitHub и GitLab, но без привързаност към конкретни сървъри, неподложена на цензура и работеща с ресурси от участниците в P2P мрежата. Платформата поддържа стандартни елементи на социално взаимодействие за разработчици, като issue, пачове и ревюта на код. Разработките на проекта са написани на Rust и се разпространяват под лицензите Apache 2.0 и MIT. Сборките са подготвени за Linux и macOS. Допълнително се развиват десктоп клиент, уеб интерфейс и конзолен интерфейс.

Radicle позволява да не се зависим от централизирани платформи и корпорации при разработката и разпространението на код, привързаността към които внася допълнителни рискове (една точка на отказ, компанията може да затвори или да промени условията на работа). За управление на кода в Radicle се използва познатият Git, разширен с инструменти за определяне на репозитории в P2P мрежата. Всички данни преди всичко се запазват локално (концепция local-first) и винаги са достъпни на компютъра на разработчика, независимо от състоянието на интернет връзката.

Участниците предоставят достъп до своя код и свързаните с него артефакти, като пачове и обсъждания на проблемите (issues), които се запазват локално и се репликират на възли на други заинтересовани разработчици, свързани с общата децентрализирана P2P мрежа. В резултат се формира глобален децентрализиран Git репозиториум, чиито данни са репликирани и дублирани на различни системи на участниците.

За определяне на съседни възли в P2P мрежата се използва протокол Gossip, а за репликация на данни между възлите - протокол Heartwood, основан на Git. Тъй като протоколът е базиран на Git, платформата лесно може да се интегрира с вече съществуващите инструменти за разработка на Git. За идентификация на възлите и верификация на репозиториите се използва криптография с публични ключове, без използването на акаунти. Аутентизацията и авторизацията се осъществяват на базата на публични ключове без централизирани удостоверяващи органи. сървъри.

Всяка репозиторий в P2P мрежата има уникален идентификатор и е самоутвърдителен (self-certifying), т.е. всички действия в репозитория, като добавяне на комити и оставяне на коментари по проблеми, се удостоверяват от собственика с цифров подпис, който позволява да се уверим в коректността на данните на другите възли без да се използват централизирани удостоверяващи центрове. За достъп до репозитория е достатъчно да е активен поне един възел, на който има негова реплицирана копия.

Възлите в P2P мрежата могат да се абонират за определени репозитории и да получават актуализации. Възможно е създаването на частни репозитории, достъпни само за определени възли. За управление и собственост на репозитория се използва концепцията за „делегати“ (delegates). Делегат може да бъде както отделен потребител, така и бот или група, привязани към специален идентификатор. Делегатите могат да приемат патчи в репозитория, да затварят проблеми и да задават права за достъп до репозитория. Към всеки репозитория могат да бъдат привързани няколко делегати.

Radicle репозиторите се съхраняват на системите на потребителите под формата на обикновени git репозитории, в които присъстват допълнителни имена на пространства за съхранение на данни от пирове и форкове, с които се осъществява текущата работа. Обсъжданията, предлаганите патчи и компоненти за организация на рецензиране също се запазват в git репозитория под формата на съвместни обекти (COB — Collaborative Objects) и се реплицират между пирите.

В новото издание:

  • Преработена е реализацията на подписаните референции (sigrefs — Signed References), при която е добавена защита срещу повторно използване на подписи. Старата структура на репозитория позволяваше замяна на кода с неговата стара версия, повторно използвайки старата валидна подпис. За да се блокира този проблем, в новата реализация е добавен указател към предишния запис, обхванат от текущата подпис, което формира непрекъсната верига от промени, чиято цялост може да бъде проследена спрямо корена.
  • Разширени са възможностите за блокиране на възли, които сега се блокират на ниво управление на свързванията. Ако преди се блокираше само приемането на данни, без да се ограничава свързването на възела, сега блокирането се прилага на етапа на установяване на свързване с блокиран възел и при приемане на свързване от блокиран възел.
  • Позволени са всички референции към външни Git обекти, освен временни клонове. Преди бяха разрешени само референции към външни клонове, тагове, метаданни Radicle, бележки и обекти за съвместна работа.
  • Повишена е информативността на съобщенията за грешки, които възникват при опити за изпълнение на операции, за които потребителят няма достатъчно права.
  • Повишена ефективност на въвеждането и извеждането. Разработчиците откриха, че при дългосрочно работещи възли, комбинацията от настройки «journal_mode = WAL» и «synchronous = FULL» в базата данни SQLite, използвана за съхранение на локалното състояние, води до значителен обем операции за въвеждане и извеждане. За намаляване на натоварването, по подразбиране параметърът «synchronous» сега е зададен на «NORMAL», а в конфигурационния файл на Radicle са добавени настройки, които позволяват на потребителя да променя стойностите на тези параметри.
  • Премахната е уязвимост, информация за която ще бъде разкрита на 23 март. В момента се съобщава само, че екипът на разработчиците е извършил сканиране на всички публично достъпни репозитории на Radicle и не е открил следи от експлоатация на този проблем.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster