May 4, 2026

Meshname como uma alternativa permanente e eficiente em termos de energia ao DNS

image

O Meshname é um sistema de nomenclatura universal projetado para redes mesh baseadas em IPv6, como a Yggdrasil e a CJDNS. Ele funciona como uma alternativa descentralizada, permanente e leve ao DNS tradicional, permitindo que usuários resolvam domínios sem depender de autoridades centrais ou de sistemas baseados em blockchain.

Abaixo estão os detalhes fundamentais do seu funcionamento:

1. Filosofia e Diferenciais

Diferente de sistemas como o Alfis, o Meshname não utiliza blockchain, o que elimina a necessidade de mineração para proloongação de domínios ou o alto consumo de CPU e tráfego P2P para sincronização. Ele se assemelha em conceito aos serviços .onion da rede Tor ou aos túneis .b32.i2p da rede I2P, focando na conversão direta entre endereços e nomes.

2. Formatos de Protocolo

O Meshname opera através de duas implementações distintas:

  • .meship: Realiza uma conversão matemática direta de um endereço IPv6 para o formato binário e depois para base32. Para que isso funcione, o usuário só precisa de um servidor local meshnamed rodando para realizar a tradução reversa e permitir a navegação. Por exemplo, um endereço IP bruto da rede Yggdrasil pode ser convertido em um domínio como aibgruhq2w4i2hi2kvpc62zrja.meship.
  • .meshname: Este formato é mais avançado e exige que o servidor meshnamed esteja presente no nó de destino. Ele é utilizado quando há necessidade de registros adicionais (como registros NS para servidores XMPP), sendo que esses dados são armazenados no servidor em formato JSON.

3. Uso Prático e Implementação

Como os nomes Meshname são derivados diretamente de endereços criptográficos, eles costumam ser longas sequências de caracteres (descritos pelos desenvolvedores como "feios"), mas garantem que o nome seja único e intrinsecamente ligado à identidade do nó.

  • Software: O servidor original foi escrito em Go, mas também possui implementações em C++ e extensões em Ruby.
  • Comandos: Um usuário pode descobrir o domínio correspondente a qualquer IP através do comando meshnamed -getname <endereço_ip>.
  • Integração: O sistema pode ser configurado para trabalhar em conjunto com o dnsmasq ou o systemd-resolved no Linux, permitindo que o navegador resolva domínios .meship ou .meshname automaticamente.

Em resumo, o Meshname converte a complexidade dos endereços IPv6 de redes mesh em nomes resolvíveis localmente, priorizando a estabilidade e a economia de recursos sobre a legibilidade humana dos domínios.

Qual a diferença entre meship e meshname

A diferença fundamental entre os nomes .meship e .meshname reside na forma como o endereço é resolvido e nos requisitos técnicos de onde o software servidor deve estar rodando. Ambos fazem parte do sistema Meshname, que converte endereços IPv6 de redes mesh (como Yggdrasil) em domínios resolvíveis.

Abaixo estão as distinções detalhadas:

1. Nomes .meship

Este formato é uma conversão matemática direta do endereço IP.

  • Funcionamento: O endereço IPv6 é convertido para um formato binário e depois codificado em base32. Por exemplo, um IP específico pode se tornar algo como aibgruhq2w4i2hi2kvpc62zrja.meship.
  • Requisito de Software: Exige apenas que o usuário tenha o servidor meshnamed rodando localmente (como um stub resolver) para realizar a tradução inversa e permitir que o navegador encontre o site.
  • Uso: É ideal para navegação simples onde o objetivo é apenas substituir o uso do IP bruto por um nome fixo.

2. Nomes .meshname

Este formato é mais avançado e funciona de forma semelhante ao DNS tradicional, permitindo registros de dados.

  • Funcionamento: Permite a inclusão de informações adicionais além do simples mapeamento de IP. Os registros são armazenados no servidor em formato JSON.
  • Requisito de Software: Diferente do .meship, o uso de .meshname exige que o servidor meshnamed esteja presente no nó de destino (o servidor que hospeda o site ou serviço).
  • Recursos Adicionais: Suporta tipos de registros extras, como registros NS (Name Server), que são necessários para configurar serviços mais complexos, como servidores XMPP.

Resumo Comparativo

Característica.meship.meshname
Base do nomeConversão direta (IP -> Base32)Registros definidos no servidor
Instalação localNecessária (para resolução)Necessária (para resolução)
Instalação no destinoNão necessáriaObrigatória
Suporte a registros extrasNão (apenas mapeamento de IP)Sim (ex: registros NS para XMPP)
Formato de armazenamentoMatemático/AlgorítmicoArquivos JSON no destino

Instalação

Compilação

git clone https://github.com/zhoreeq/meshname.git
cd meshname
make
sudo install meshnamed /usr/local/bin

Systemd

[Unit]
Description=Distributed naming system for IPv6 mesh networks
Wants=network.target
After=network.target

[Service]
User=nobody
Group=nogroup
ProtectHome=true
ProtectSystem=true
SyslogIdentifier=meshnamed
ExecStart=/usr/local/bin/meshnamed -listenaddr [::1]:53535
Restart=always
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target

Configurando o DNS

Escolha uma das opções abaixo, DNS Mask ou Resolved

Resolved

[Resolve]
DNS=[::1]:53535
Domains=~meshname ~meship
sudo systemctl restart systemd-resolved

DNS Mask (Opcional ao Resolved)

port=53
domain-needed
bogus-priv
server=/meshname/::1#53535
server=8.8.8.8

Uso

Você pode obter o domínio de qualquer endereço IP usando o comando:

$ meshnamed -getname 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148
aibgruhq2w4i2hi2kvpc62zrja

Assim, com um servidor local ativo meshnamed, em vez de:

http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]

Você pode acessar o site em:

aibgruhq2w4i2hi2kvpc62zrja.meship