Se ha lanzado la versión 1.0 de la plataforma P2P Radicle, que tiene como objetivo crear un servicio descentralizado para la colaboración y el almacenamiento de código, similar a GitHub y GitLab, pero no vinculado a servidores específicos, no sujeto a censura y que utiliza los recursos de los participantes de la red P2P. La versión 1.0 marcó la estabilización del protocolo y la preparación de la plataforma para su uso generalizado. A partir de esta versión, el protocolo se modificará manteniendo la compatibilidad hacia atrás, y las herramientas incluirán funciones para la actualización sin problemas de los sistemas existentes a la nueva versión. Los desarrollos del proyecto están escritos en Rust y se distribuyen bajo las licencias Apache 2.0 y MIT. Se han preparado compilaciones para Linux y macOS. Además, se está desarrollando un cliente de escritorio, una interfaz web y una interfaz de consola.
Radicle permite liberar el desarrollo y la distribución de código de plataformas y corporaciones centralizadas, cuya dependencia introduce riesgos adicionales (un único punto de falla, la empresa puede cerrar o cambiar las condiciones de operación). Para gestionar el código en Radicle se utiliza Git, ampliado con medios para la identificación de repositorios en la red P2P. Todos los datos se guardan principalmente de manera local (concepto local-first) y siempre están disponibles en la computadora del desarrollador, independientemente del estado de la conexión de red.
Los participantes proporcionan acceso a su código y artefactos relacionados, como parches y discusiones sobre corrección de errores (issues), que se guardan localmente y se replican en los nodos de otros desarrolladores interesados, conectados a la red P2P descentralizada compartida. Como resultado, se forma un repositorio Git descentralizado global, cuyos datos están replicados y duplicados en diferentes sistemas de los participantes.
Para determinar nodos vecinos en la red P2P, se aplica el protocolo Gossip, y para la replicación de datos entre nodos, se usa el protocolo Heartwood, basado en Git. Dado que el protocolo se basa en Git, la plataforma se puede integrar fácilmente con las herramientas de desarrollo existentes en Git. Se utiliza criptografía basada en clave pública para identificar nodos y verificar repositorios, sin el uso de cuentas.
Cada repositorio en la red P2P tiene un identificador único y es autodeclarado, es decir, todas las acciones en el repositorio, como agregar commits y dejar comentarios en issues, son firmadas por el propietario con una firma digital, que permite verificar la integridad de los datos en otros nodos sin la necesidad de centros de certificación centralizados. Para acceder al repositorio, basta con que al menos un nodo esté en línea y tenga una copia replicada de él.
Los nodos en la red P2P pueden suscribirse a ciertos repositorios y recibir actualizaciones. Es posible crear repositorios privados, accesibles solo para nodos específicos. Para gestionar y poseer un repositorio se usa el concepto de 'delegados'. Un delegado puede ser un usuario individual, un bot o un grupo, ligados a un identificador especial. Los delegados pueden aceptar parches en el repositorio, cerrar issues y establecer permisos de acceso al repositorio. Se pueden asociar varios delegados a cada repositorio.
En los sistemas de los usuarios, los repositorios de Radicle se almacenan como repositorios git normales, que incluyen espacios de nombres adicionales para almacenar datos de pares y bifurcaciones con los que se trabaja actualmente. Las discusiones, parches propuestos y componentes para la organización de revisiones también se guardan en el repositorio git como objetos colaborativos (COB - Collaborative Objects) y se replican entre pares.
Radicle 1.0 incluye:
- La implementación de un protocolo extensible para organizar el funcionamiento de la red P2P y la sincronización de datos.
- Elementos de interacción social, tales como issues, parches y revisiones de código.
- Un protocolo de autenticación y autorización basado en clave pública, que funciona sin autoridades de certificación centralizadas. servidores.
- Interfaz CLI, familiar para los usuarios que ya están familiarizados con Git.
- Interfaz web para navegar por los repositorios y nodos.
- Herramientas para garantizar la privacidad, que incluyen soporte para repositorios privados y la capacidad de operar a través de la red anónima Tor.
- Soporte para construcciones repetibles para verificar que los archivos ejecutables distribuidos de Radicle se construyeron a partir de los códigos fuente declarados.
Funciones aún no listas, que están en desarrollo:
- Herramientas integradas para integración continua (CI) y entrega continua (CD).
- Interfaz de consola Radicle TUI (Interfaz de Usuario de Terminal).
- Funciones avanzadas de revisión de cambios.
- Sistema para recibir notificaciones sobre cambios en el repositorio.
- Soporte para perfiles de usuarios y posibilidad de vincular múltiples dispositivos.
- Soporte para etiquetas.
- Utilidades para moderar y gestionar nodos.
- Aplicación de escritorio.
Fuente: opennet.ru
