Conheça melhor a Radicle, uma plataforma descentralizada de desenvolvimento colaborativo, que ainda está em versão beta mas promete muito.
O lançamento da primeira versão beta da plataforma Radicle P2P e seu cliente de desktop Radicle Upstream foi anunciado recentemente.
O projeto visa criar um serviço descentralizado de desenvolvimento colaborativo e armazenamento de código, semelhante ao GitHub e GitLab, mas não vinculado a servidores específicos, além de não estar sujeito a censura e trabalhar com os recursos dos participantes do Rede P2P.
Radicle, uma plataforma descentralizada de desenvolvimento colaborativo
A Radicle permite não depender de plataformas e corporações centralizadas para o desenvolvimento e distribuição de código aberto, para o qual o link apresenta riscos adicionais (ponto único de falha, uma empresa pode fechar ou alterar as condições de trabalho).
Para gerenciar o código no Radicle, é utilizado o conhecido Git, estendido por meio da definição de repositórios em uma rede P2P.
Todos os dados são armazenados principalmente localmente e estão sempre disponíveis no computador do desenvolvedor, independentemente do estado da conexão de rede. Para proteger as informações, utiliza-se criptografia baseada em chaves públicas, sem o uso de contas.
A lista de repositórios participantes da rede P2P pode ser vista no nó semente do projeto.
No coração da rede P2P está o protocolo Radicle Link baseado em Git que replica dados entre os participantes. Os participantes fornecem acesso ao seu código e ao código dos projetos em que estão interessados, cópias redundantes dos quais são armazenadas localmente e replicadas nos sistemas de outros desenvolvedores interessados.
Como resultado, um repositório Git descentralizado global é formado, os dados do qual são replicados e duplicados em diferentes sistemas participantes.
O protocolo suporta dois tipos de objetos de identificação: participante e projeto. O participante entra em contato com a pessoa que lançou o nó na rede P2P (peer) e o projeto descreve um repositório no qual vários participantes podem trabalhar.
A rede cria um gráfico social de comunicação entre participantes e projetos: os participantes acompanham os projetos de seu interesse e de outros participantes.
Os itens dos participantes seguidos são disponibilizados para outros participantes que estão seguindo o participante atual.
O desenvolvimento é realizado no estilo “bazar”, em vez de manter a visão mestre canônica no Radicle, há vários ramos paralelos com seus mantenedores e contribuidores trocando patches entre si.
Em vez de se vincular a um repositório de referência externo, o Radicle conta com um único repositório na máquina local de cada desenvolvedor, onde você pode puxar as alterações dos repositórios dos contribuidores rastreados e enviar suas alterações para os repositórios dos contribuidores de rastreamento.
Conceitualmente, um projeto se torna uma coleção de visualizações de código nos sistemas de todos os participantes do desenvolvimento.
Na prática, uma hierarquia de entrega de mudanças é organizada com base em uma cadeia de confiança: para receber mudanças em sua cópia local do repositório, o desenvolvedor adiciona outros desenvolvedores como fontes (remotas), que automaticamente formam uma assinatura para os novos commits que aparecem em seus repositórios.
Todas as alterações na rede P2P são assinadas digitalmente e podem ser verificadas por outros participantes.
A maneira mais fácil de se conectar à rede é instalar o aplicativo de desktop Radicle Upstream, que permite criar chaves para identificar um novo membro, hospedar seu código e se comunicar com outros desenvolvedores.
Atualmente, a implementação é limitada ao trabalho conjunto no código e no sistema de rastreamento de bugs, mas no futuro eles planejam expandir as ferramentas para organizar discussões e revisar alterações, bem como implementar suporte para repositórios privados com acesso baseado em criptografia ponta a ponta. extremo.
Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar o seguinte endereço.
O código proxy para a operação do nó é escrito em Rust, no cliente gráfico em TypeScript, Svelte e Electron. Os desenvolvimentos do projeto são distribuídos sob a licença GPLv3. Os pacotes estão prontos para Linux (AppImage) e macOS.