Radicle, una plataforma P2P, ha lanzado la versión 1.6. 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 alimentado por los recursos 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. Los desarrollos del proyecto están escritos en Rust y se distribuyen bajo las licencias Apache 2.0 y MIT. Las compilaciones están disponibles para Linux y macOS. Tambié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. Al estar basado en Git, la plataforma se integra fácilmente con las herramientas de desarrollo de Git existentes. La criptografía de clave pública, sin usar credenciales, se utiliza para identificar nodos y verificar repositorios. La autenticación y la autorización se realizan mediante claves públicas, sin necesidad de servidores de autorización centralizados.
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:
- La implementación del nodo Radicle (radicle-node) se ha migrado para usar la biblioteca de E/S de Mio. Los paquetes netservices, io-reactor y popol, que impedían el nivel requerido de compatibilidad multiplataforma, se han eliminado de las dependencias. Se ha añadido un nuevo módulo reactor que reescribe io-reactor con Mio.
- La transición a Mio permitió implementar soporte para la plataforma Windows, que aún es experimental.
- El código para analizar argumentos de la línea de comandos se ha migrado a la biblioteca clap, que unifica el comportamiento al analizar argumentos y agrega características a la utilidad rad, como generación automática de sugerencias de comandos, recomendaciones de resolución de errores, resaltado de salida y autocompletado de comandos.
- radicle-node ahora admite el mecanismo de credenciales systemd para transmitir de forma segura claves de acceso (xyz.radicle.node.secret) y contraseñas para descifrarlas (xyz.radicle.node.passphrase), además de utilizar la variable de entorno RAD_PASSPHRASE, la opción de línea de comandos "--secret" y los parámetros del archivo de configuración.
- El requisito de versión mínima compatible del compilador Rust se ha aumentado a 1.85.
Fuente: opennet.ru

