Se ha lanzado Radicle 1.5, una plataforma P2P. Su objetivo es crear un servicio descentralizado para el desarrollo y almacenamiento colaborativo de código, similar a GitHub y GitLab, pero sin estar vinculado a servidores específicos, sin censura y con el respaldo de los participantes de la red P2P. La plataforma admite elementos típicos de interacción social entre desarrolladores, como incidencias, parches y revisiones de código. El desarrollo del proyecto está escrito en Rust y se distribuye bajo las licencias Apache 2.0 y MIT. Hay compilaciones disponibles para Linux и macOSTambién se están desarrollando el cliente de escritorio, la interfaz web y la interfaz de consola.
Radicle le permite no depender al desarrollar y distribuir código en plataformas y corporaciones centralizadas, cuya vinculación presenta riesgos adicionales (un punto único de falla, la empresa puede cerrar o cambiar las condiciones de trabajo). Para gestionar el código, Radicle utiliza el familiar Git, ampliado con herramientas para definir repositorios en una red P2P. Todos los datos se guardan primero localmente (concepto de primero local) y siempre están disponibles en la computadora del desarrollador, independientemente del estado de la conexión de red.
Los participantes brindan acceso a su código y a artefactos relacionados con el código, como parches y problemas, que se almacenan localmente y se replican en nodos de otros desarrolladores interesados conectados a una red P2P descentralizada común. Como resultado, se forma un repositorio Git global descentralizado, cuyos datos se replican y duplican en diferentes sistemas participantes.
El protocolo Gossip se utiliza para identificar nodos vecinos en la red P2P, y el protocolo Heartwood, basado en Git, se utiliza para replicar datos entre nodos. Dado que el protocolo se basa en Git, la plataforma se integra fácilmente con las herramientas de desarrollo de Git existentes. Se utiliza criptografía de clave pública para identificar nodos y verificar repositorios, sin necesidad de credenciales. La autenticación y la autorización se realizan mediante claves públicas sin autoridades centralizadas. servidores.
Cada repositorio de la red P2P tiene su propio identificador único y se autocertifica, es decir. Todas las acciones en el repositorio, como agregar confirmaciones y dejar comentarios para emitir, están certificadas por el propietario con una firma digital, lo que le permite verificar la exactitud de los datos en otros nodos sin el uso de autoridades de certificación centralizadas. Para acceder al repositorio basta con que al menos un nodo esté en línea y tenga una copia replicada del mismo.
Los nodos de una red P2P pueden suscribirse a repositorios específicos y recibir actualizaciones. Es posible crear repositorios privados accesibles sólo para ciertos nodos. El concepto de "delegados" se utiliza para gestionar y poseer un repositorio. Un delegado puede ser un usuario individual, un bot o un grupo vinculado a un identificador especial. Los delegados pueden aceptar parches para el repositorio, cerrar problemas y establecer derechos de acceso al repositorio. Cada repositorio puede tener varios delegados asociados.
Los repositorios de Radicle se almacenan en los sistemas de los usuarios como repositorios Git normales, con espacios de nombres adicionales para almacenar datos de los pares y las bifurcaciones en las que se trabaja. Las discusiones, los parches propuestos y los componentes de revisión también se almacenan en el repositorio Git como Objetos Colaborativos (COB) y se replican entre los pares.
En el nuevo lanzamiento:
- Se mejoró la compatibilidad con repositorios vacíos, que no contienen un directorio de trabajo con una copia de los archivos del proyecto, sino que almacenan únicamente el historial de revisiones y metadatos, como ramas y etiquetas. El comando "rad clone" ahora incluye la opción "--bare", que permite clonar un repositorio en una vista sin árbol de trabajo. La utilidad "git-remote-rad" ha mejorado la gestión de repositorios vacíos al usar los comandos "git push" y "git fetch" al acceder a un servidor rad externo.
- Se agregó una configuración "patch.branch" que se puede usar en la utilidad git-remote-rad ("git-remote-rad -o patch.branch[= ]") al agregar un parche para crear automáticamente una rama en el repositorio ascendente, sin la necesidad de utilizar el comando "rad patch checkout".
- Se ha mejorado la salida del comando "rad patch show". Ahora muestra la versión original del parche, que antes solo se mostraba al especificar el indicador "--verbose". Todas las revisiones se muestran ahora en una sola línea de tiempo, sin separar los cambios del autor original ni de otros colaboradores.
- Se agregó la capacidad de generar registros en un formato estructurado, habilitada a través de las opciones "--log-logger structured" y "--log-format json".
Fuente: opennet.ru
