- Stack de rede baseada em criptografia que funciona em diversos meios, como LoRa, packet radio e WiFi, e oferece comunicação estável mesmo em ambientes de velocidade ultrabaixa e alta latência
- Inclui recursos com foco em segurança, como criptografia de ponta a ponta, anonimato do remetente, roteamento multihop com autoconfiguração e confirmação de entrega impossível de falsificar
- Não depende da stack IP e pode rodar em espaço de usuário no ambiente Python 3 sem módulos de kernel
- Com o objetivo de construir redes autônomas e de baixo custo, permite interligar milhares de redes independentes sem controle central ou censura
- Como ferramenta open source para infraestrutura de comunicação distribuída e redes off-grid, tem alto valor prático para desenvolvedores e pesquisadores
Visão geral do Reticulum
- Reticulum é uma stack de rede baseada em criptografia que permite construir redes locais e de longa distância usando hardware comum
- Funciona mesmo em ambientes de alta latência e baixa largura de banda
- Oferece criptografia de ponta a ponta, anonimato do remetente, transporte multihop com autoconfiguração, endereçamento eficiente e confirmação de entrega impossível de falsificar
- O objetivo é permitir que qualquer pessoa se torne operadora da sua própria rede, construindo redes autônomas e interconectáveis sem controle central
- Reticulum não foi projetado como uma única rede, mas como uma ferramenta para construir milhares de redes independentes
- Também pode operar sobre IP, permitindo tunelamento pela internet ou por redes privadas
- Executa em ambiente Python 3, sem necessidade de módulos de kernel ou drivers
Principais recursos
- Suporte a endereçamento globalmente único e roteamento multihop com autoconfiguração
- Permite transmitir dados por diferentes meios físicos e topologias
- Anonimato do remetente garantido: os pacotes não incluem endereço de origem
- Comunicação baseada em criptografia assimétrica X25519 e assinaturas Ed25519
- Usa conjunto de chaves Curve25519 de 512 bits
- Suporte a Forward Secrecy, criptografia AES-256-CBC e autenticação SHA256 HMAC
- Sistema de interfaces escalável, com possibilidade de adicionar interfaces personalizadas
- API simples para facilitar o desenvolvimento de aplicações distribuídas
- Suporte a transferência de grandes volumes de dados, com compressão automática, checksum e ajuste de transmissão
- Mecanismo leve de Request/Response e estabelecimento eficiente de links (3 pacotes, 297 bytes)
Implementação de referência e protocolo
- O código Python deste repositório é a implementação oficial de referência e o padrão para a definição do protocolo
- Distribuído sob a Reticulum License, e o protocolo foi doado ao domínio público em 2016
- A compatibilidade é definida por interoperabilidade completa com a implementação de referência
Exemplos de uso
- rnsh: sessão de shell remota baseada em Reticulum
- LXMF: protocolo distribuído de envio de mensagens
- LXST: framework de transmissão em tempo real de áudio e sinais
- Nomad Network: plataforma de comunicação mesh criptografada off-grid
- Sideband: aplicativo GUI com transferência de arquivos, chamadas de voz e mapas
- MeshChat: cliente LXMF baseado na web, com suporte a imagens, voz e transferência de arquivos
Meios e dispositivos compatíveis
- Funciona em qualquer meio que suporte no mínimo um canal half-duplex acima de 5 bps e MTU de 500 bytes
- Pode usar LoRa, packet radio, WiFi, Ethernet e links ópticos de comunicação, entre outros
- RNode é uma interface LoRa para Reticulum, podendo ser montada manualmente ou comprada pronta
- É possível montar configurações mistas de LoRa, packet radio e WiFi em dispositivos como o Raspberry Pi
Interfaces compatíveis
- Suporte a Ethernet, LoRa (RNode), packet radio TNC, modems KISS, dispositivos seriais, TCP/UDP e pipes stdio
- Também é possível adicionar módulos de interface personalizados, e PRs validados em uso real são bem-vindos
Desempenho e status
- Faixa de desempenho pretendida: 250 bps~1 Gbps; atualmente, cerca de 150 bps~500 Mbps
- Principais funções do protocolo totalmente implementadas, com API e formatos em estado estável
Bootstrap de conexão
- Reticulum é uma rede autônoma, não um serviço por assinatura
- A conexão inicial pode ser feita por meio de um diretório público de pontos de entrada mantido pela comunidade
- Ex.:
directory.rns.recipes, rmap.world
Componentes criptográficos
- Conjunto de chaves de 512 bits baseado em Curve25519, assinaturas Ed25519 e troca de chaves X25519
- Uso de HKDF, AES-256-CBC, HMAC-SHA256 e SHA-256/512
- Fornecido por padrão via OpenSSL e PyCA/cryptography
- Também inclui implementação pura em Python, embora com nível menor de validação de segurança
1 comentários
Opiniões no Hacker News
Já lidei bastante com redes mesh em várias comunidades regionais, mas nunca vi uma rede grande usando Reticulum de fato
O principal motivo para as comunidades não aderirem é que este projeto é, na prática, centrado em um único desenvolvedor, então o histórico de mudanças no Git fica só com coisas como “Update”, “Better Version”, “Cleanup”, o que torna quase impossível acompanhar o que mudou
Disse que daqui para frente só haverá atualizações esporádicas e imprevisíveis, e não haverá mais nenhum suporte nem gestão da comunidade
No fim, virou mais um projeto open source de uma pessoa só que sofreu burnout
Soou como uma despedida
Reticulum é uma stack de rede completa em nível de produção, com criptografia e anonimato como pontos centrais
Não é algo exclusivo de LoRa, e sim independente da camada de transporte
Mas há dois problemas
Uma biblioteca pequena com API em C provavelmente seria melhor
Ainda assim, apps como Columba estão melhorando aos poucos
Atualmente há umas quatro tentativas de criar versões em linguagens de baixo nível, como C++, Zig, Rust e Go
Entre elas, a implementação em Rust do Beechat parece a mais madura, mas quase não há casos reais de uso
O “jeito antigo” era confiar no ícone de cadeado do navegador, e o “jeito Zen” é verificar manualmente a impressão digital do hash
Mas essa abordagem tem uma UX horrível
Até eu, sendo técnico, tive dificuldade para configurar, então um usuário comum não vai usar isso
No fim, se a ideia é chegar ao público em geral, aquele cadeado verde faz falta
Fiquei surpreso que ninguém mencionou o Yggdrasil, que é um protocolo de roteamento
Ele usa endereços baseados em criptografia e funciona sobre TCP/IP ou LoRa também
Estou usando há algumas semanas como substituto do Tailscale, e a latência é parecida, além de ter sido bem estável
Fiquei curioso sobre a diferença em relação ao Reticulum
Site oficial do Yggdrasil
Na prática, o que mais me importa é a garantia de entrega das mensagens
O Reticulum usa “Store and Forward” como modo padrão
Mesmo que a mensagem não seja entregue na hora, ela é enviada depois quando surgir conexão
Mas eu queria saber se, quando as mensagens chegam fora de ordem, o cliente inclui metadados para ordená-las corretamente
O Reticulum chegou à versão 1.0.0 e realmente funciona bem
Para começar, dá para usar o meshchat ou o Sideband no Android
Também dá para trocar fotos e chat por voz via LoRa, e se a largura de banda for insuficiente ou o link cair, ele muda automaticamente para outro meio de transporte
O que me deixa confuso é que a especificação oficial do protocolo não parece estar pública
Se é para chips de rádio como LoRa, deveria rodar em microcontroladores, mas versões em Python ou Rust std não servem para esse tipo de ambiente
Pela licença, isso não parece ser software livre de fato
Há cláusulas de “não causar dano a humanos” e “proibido uso por IA”
Os três exigem uma configuração de nós mestre–escravo com estrutura de árvore geradora múltipla, como no eBGP
Parece que alguém é fã de Anathem