Tesseras

Fase 2: Memórias Sobrevivem

2026-02-14

Uma tessera não está mais presa a uma única máquina. A Fase 2 entrega a camada de replicação: os dados são divididos em fragmentos com codificação de apagamento, distribuídos entre múltiplos pares e reparados automaticamente quando nós ficam offline. Um livro-razão de reciprocidade bilateral garante troca justa de armazenamento — sem blockchain, sem tokens.

O que foi construído

tesseras-core (atualizado) — Novos tipos de domínio de replicação: FragmentPlan (seleciona a camada de fragmentação baseada no tamanho da tessera), FragmentId (hash da tessera + índice + contagem de shards + checksum), FragmentEnvelope (fragmento com seus metadados para transporte na rede), FragmentationTier (Small/Medium/Large), Attestation (prova de que um nó possui um fragmento em um dado momento) e ReplicateAck (confirmação de recebimento de fragmento). Três novas traits de porta definem os limites hexagonais: DhtPort (encontrar pares, replicar fragmentos, solicitar atestações, ping), FragmentStore (armazenar/ler/deletar/listar/verificar fragmentos) e ReciprocityLedger (registrar trocas de armazenamento, consultar saldos, encontrar melhores pares). O tamanho máximo de uma tessera é 1 GB.

tesseras-crypto (atualizado) — O ReedSolomonCoder existente agora alimenta a codificação de fragmentos. Os dados são divididos em shards, shards de paridade são computados, e qualquer combinação de shards de dados pode reconstruir o original — desde que o número de shards ausentes não exceda a contagem de paridade.

tesseras-storage (atualizado) — Dois novos adaptadores:

Nova migração (002_replication.sql) adiciona tabelas para fragmentos, planos de fragmentação, detentores, mapeamentos detentor-fragmento e saldos de reciprocidade.

tesseras-dht (atualizado) — Quatro novas variantes de mensagem: Replicate (enviar um envelope de fragmento), ReplicateAck (confirmar recebimento), AttestRequest (pedir a um nó que prove que possui os fragmentos de uma tessera) e AttestResponse (retornar atestação com checksums e timestamp). O engine trata essas mensagens em seu loop de despacho.

tesseras-replication — O novo crate, com cinco módulos:

tesd (atualizado) — O daemon agora abre um banco de dados SQLite (db/tesseras.db), executa migrações, cria instâncias de FsFragmentStore, SqliteReciprocityLedger e FsBlobStore, envolve o engine DHT em um DhtPortAdapter, constrói um ReplicationService e lança o loop de reparo como tarefa em segundo plano com desligamento gracioso.

Testes — 193 testes em todo o workspace:

Decisões de arquitetura

O que vem a seguir

Os nós conseguem se encontrar e manter vivas as memórias uns dos outros. Em seguida, damos às pessoas uma forma de segurar suas memórias nas mãos.