Foi lançada a versão 1.0 da plataforma P2P Radicle, voltada para a criação de um serviço descentralizado de desenvolvimento e armazenamento de código, semelhante ao GitHub e GitLab, mas sem ligado a servidores específicos, resistente à censura e funcionando com os recursos dos participantes da rede P2P. O lançamento da versão 1.0 marcou a estabilização do protocolo e a preparação da plataforma para uso generalizado. A partir desta versão, o protocolo será alterado mantendo a compatibilidade retroativa, e as ferramentas incluirão recursos para atualização contínua dos sistemas existentes para a nova versão. O desenvolvimento do projeto foi feito em Rust e é distribuído sob as licenças Apache 2.0 e MIT. Compilações foram preparadas para Linux e macOS. Também estão sendo desenvolvidos um cliente de desktop, uma interface web e um interface de linha de comando.
O Radicle permite que o desenvolvimento e a distribuição de código fiquem independentes de plataformas e corporações centralizadas, cuja vinculação traz riscos adicionais (ponto único de falha, a empresa pode fechar ou mudar as condições de operação). Para gerenciar o código no Radicle, é utilizado o Git tradicional, ampliado com ferramentas de definição de repositórios na rede P2P. Todos os dados são, em primeiro lugar, salvos localmente (conceito local-first) e sempre acessíveis no computador do desenvolvedor, independentemente do estado da conexão de rede.
Os participantes fornecem acesso ao seu código e a artefatos associados, como patches e discussões sobre correções de bugs (issues), que são salvos localmente e replicados em nós de outros desenvolvedores interessados conectados à rede P2P descentralizada compartilhada. Como resultado, forma-se um repositório Git global descentralizado, cujos dados são replicados e duplicados em diferentes sistemas dos participantes.
O protocolo Gossip é utilizado para detectar nós vizinhos na rede P2P, enquanto o protocolo Heartwood, baseado em Git, é empregado para replicação de dados entre os nós. Como o protocolo se baseia em Git, a plataforma pode ser facilmente integrada às ferramentas existentes de desenvolvimento baseadas em Git. Para identificar nós e verificar repositórios, utiliza-se criptografia baseada em chaves públicas, sem a necessidade de contas.
Cada repositório em uma rede P2P possui um identificador único e é auto-certificado, ou seja, todas as ações no repositório, como adição de commits e comentários em issues, são assinadas pelo proprietário com uma assinatura digital, permitindo verificar a precisão dos dados em outros nós sem a utilização de autoridades certificadoras centralizadas. Para acessar o repositório, basta que haja pelo menos um nó online que tenha sua cópia replicada.
Os nós na rede P2P podem se inscrever em repositórios específicos e receber atualizações. É possível criar repositórios privados, acessíveis apenas a nós determinados. A gestão e propriedade do repositório utilizam o conceito de 'delegados'. Um delegado pode ser um usuário individual, um bot ou um grupo, associado a um identificador especial. Delegados podem aceitar patches no repositório, fechar issues e definir permissões de acesso ao repositório. Vários delegados podem ser vinculados a cada repositório.
Nos sistemas dos usuários, os repositórios Radicle são armazenados como repositórios git normais, que contêm namespaces adicionais para armazenar dados de peers e forks com os quais se está trabalhando atualmente. Discussões, patches propostos e componentes para organização de revisões também são salvos no repositório git na forma de objetos colaborativos (COB - Collaborative Objects) e replicados entre peers.
Radicle 1.0 inclui:
- A implementação de um protocolo extensível para organizar a operação da rede P2P e a sincronização de dados.
- Elementos de interação social, como issues, patches e revisões de código.
- Um protocolo de autenticação e autorização baseado em chaves públicas, funcionando sem autoridades certificadoras centralizadas. servidores.
- Um interface CLI familiar para usuários acostumados com Git.
- Uma interface web para navegação em repositórios e nós.
- Ferramentas para garantir privacidade, incluindo suporte a repositórios privados e a capacidade de operação através da rede anônima Tor.
- Suporte para compilações repetidas para verificar se os arquivos executáveis distribuídos do Radicle são compilados a partir dos códigos-fonte declarados.
Funcionalidades ainda em desenvolvimento:
- Ferramentas integradas para Integração Contínua (CI) e Entrega Contínua (CD).
- Interface de console Radicle TUI (Interface de Usuário do Terminal).
- Funcionalidades avançadas de revisão de alterações.
- Sistema de notificação de mudanças no repositório.
- Suporte a perfis de usuários e a capacidade de vincular vários dispositivos.
- Suporte a tags.
- Utilitários para moderação e gerenciamento de nós.
- Aplicativo desktop.
Fonte: opennet.ru
