Tesseras

Fase 1: Nós Se Encontram

2026-02-14

Tesseras não é mais uma ferramenta apenas local. A Fase 1 entrega a camada de rede: nós se descobrem através de uma DHT Kademlia, comunicam-se sobre QUIC e publicam ponteiros de tesseras que qualquer par na rede pode encontrar. Uma tessera criada no nó A agora pode ser encontrada a partir do nó C.

O que foi construído

tesseras-core (atualizado) — Novos tipos de domínio de rede: TesseraPointer (referência leve aos detentores de uma tessera e localização dos fragmentos), NodeIdentity (ID do nó + chave pública + nonce de prova de trabalho), NodeInfo (identidade + endereço + capacidades) e Capabilities (bitflags do que um nó suporta: DHT, armazenamento, relay, replicação).

tesseras-net — A camada de transporte, construída sobre QUIC via quinn. A trait Transport define a porta: send, recv, disconnect, local_addr. Dois adaptadores a implementam:

O protocolo de fio usa MessagePack com prefixo de comprimento: um cabeçalho de 4 bytes big-endian seguido de um payload rmp-serde. WireMessage carrega um byte de versão, ID de requisição e um corpo que pode ser requisição, resposta ou erro de protocolo. Tamanho máximo de mensagem é 64 KiB.

tesseras-dht — Uma implementação completa de Kademlia:

tesd — Um binário de nó completo. Analisa argumentos de CLI (endereço de bind, pares de bootstrap, diretório de dados), gera uma identidade de nó válida por PoW, abre um endpoint QUIC, faz bootstrap na rede e roda o motor DHT. Desligamento gracioso com Ctrl+C via tratamento de sinais do tokio.

Infraestrutura — Configuração OpenTofu para dois nós bootstrap no Hetzner Cloud (instâncias cx22 em Falkenstein, Alemanha e Helsinki, Finlândia). Script de provisionamento cloud-init cria um usuário dedicado tesseras, escreve um arquivo de configuração e configura um serviço systemd. Regras de firewall abrem UDP 4433 (QUIC) e restringem métricas a acesso interno.

Testes — 139 testes em todo o workspace:

Decisões de arquitetura

O que vem a seguir

Os nós conseguem se encontrar. Em seguida, aprendem a manter vivas as memórias uns dos outros.