From f186b71ca51e83837db60de13322394bb5e6d348 Mon Sep 17 00:00:00 2001 From: murilo ijanc Date: Tue, 24 Mar 2026 21:41:06 -0300 Subject: Initial commit Import existing tesseras.net website content. --- .../phase4-institutional-onboarding/index.html | 252 +++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 pt-br/news/phase4-institutional-onboarding/index.html (limited to 'pt-br/news/phase4-institutional-onboarding/index.html') diff --git a/pt-br/news/phase4-institutional-onboarding/index.html b/pt-br/news/phase4-institutional-onboarding/index.html new file mode 100644 index 0000000..023892c --- /dev/null +++ b/pt-br/news/phase4-institutional-onboarding/index.html @@ -0,0 +1,252 @@ + + + + + + Fase 4: Onboarding de Nos Institucionais — Tesseras + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ + + Tesseras + +

+ + +
+ +
+ +
+

Fase 4: Onboarding de Nos Institucionais

+

2026-02-15

+

Uma rede P2P composta apenas por individuos e fragil. Discos rigidos morrem, +celulares sao perdidos, pessoas perdem interesse. A sobrevivencia a longo prazo +das memorias da humanidade depende de instituicoes — bibliotecas, arquivos, +museus, universidades — que medem seus tempos de vida em seculos. A Fase 4 +continua com o onboarding de nos institucionais: organizacoes verificadas agora +podem prometer armazenamento, manter indices de busca e participar da rede com +uma identidade distinta.

+

O design segue um principio de confiar mas verificar: instituicoes se +identificam via registros DNS TXT (o mesmo mecanismo usado por SPF, DKIM e DMARC +para email), prometem um orcamento de armazenamento e recebem isencoes de +reciprocidade para que possam armazenar fragmentos para outros sem esperar nada +em troca. Em contrapartida, a rede trata seus fragmentos como replicas de maior +qualidade e limita a dependencia excessiva de qualquer instituicao individual +atraves de restricoes de diversidade.

+

O que foi construido

+

Bits de capacidade (tesseras-core/src/network.rs) — Dois novos flags +adicionados ao bitfield Capabilities: INSTITUTIONAL (bit 7) e SEARCH_INDEX +(bit 8). Um novo construtor institutional_default() retorna o conjunto +completo de capacidades da Fase 2 mais esses dois bits e RELAY. Nos normais +anunciam phase2_default() que nao inclui flags institucionais. Testes de +roundtrip de serializacao verificam que os novos bits sobrevivem a codificacao +MessagePack.

+

Tipos de busca (tesseras-core/src/search.rs) — Tres novos tipos de dominio +para o subsistema de busca:

+ +

Todos os tipos derivam Serialize/Deserialize para transporte e +Clone/Debug para diagnostico.

+

Configuracao institucional do daemon (tesd/src/config.rs) — Uma nova secao +[institutional] no TOML com domain (o dominio DNS a verificar), +pledge_bytes (compromisso de armazenamento em bytes) e search_enabled +(toggle para o indice FTS5). O metodo to_dht_config() agora define +Capabilities::institutional_default() quando a configuracao institucional esta +presente, para que nos institucionais anunciem os bits de capacidade corretos em +respostas Pong.

+

Verificacao DNS TXT (tesd/src/institutional.rs) — Resolucao DNS assincrona +usando hickory-resolver para verificar identidade institucional. O daemon +consulta registros TXT em _tesseras.<dominio> e analisa campos chave-valor: +v (versao), node (node ID em hexadecimal) e pledge (compromisso de +armazenamento em bytes). A verificacao checa:

+
    +
  1. Um registro TXT existe em _tesseras.<dominio>
  2. +
  3. O campo node corresponde ao node ID do proprio daemon
  4. +
  5. O campo pledge esta presente e e valido
  6. +
+

Na inicializacao, o daemon tenta a verificacao DNS. Se bem-sucedida, o no roda +com capacidades institucionais. Se falhar, o no registra um aviso e faz +downgrade para um no completo normal — sem crash, sem intervencao manual.

+

Comando CLI de setup (tesseras-cli/src/institutional.rs) — Um novo +subcomando institutional setup que guia operadores pelo onboarding:

+
    +
  1. Le a identidade do no a partir do diretorio de dados
  2. +
  3. Solicita nome de dominio e tamanho do pledge
  4. +
  5. Gera o registro DNS TXT exato a adicionar: +v=tesseras1 node=<hex> pledge=<bytes>
  6. +
  7. Escreve a secao institucional no arquivo de configuracao do daemon
  8. +
  9. Imprime os proximos passos: adicionar o registro TXT, reiniciar o daemon
  10. +
+

Indice de busca SQLite (tesseras-storage) — Uma migracao +(003_institutional.sql) que cria tres estruturas:

+ +

O adaptador SqliteSearchIndex implementa o port trait SearchIndex com +index_tessera() (inserir/atualizar) e search() (consultar com filtros). +Consultas FTS5 suportam busca em linguagem natural; consultas geo usam +INTERSECT do R-tree para lookups de bounding box. Resultados sao ranqueados +por score de relevancia do FTS5.

+

A migracao tambem adiciona uma coluna is_institutional a tabela reciprocity, +tratada de forma idempotente via checagens pragma_table_info (o +ALTER TABLE ADD COLUMN do SQLite nao tem IF NOT EXISTS).

+

Bypass de reciprocidade (tesseras-replication/src/service.rs) — Nos +institucionais sao isentos de checagens de reciprocidade. Quando +receive_fragment() e chamado, se o node ID do remetente esta marcado como +institucional no ledger de reciprocidade, a checagem de saldo e ignorada +completamente. Isso significa que instituicoes podem armazenar fragmentos para +toda a rede sem precisar "ganhar" creditos primeiro — sua identidade verificada +por DNS e compromisso de armazenamento servem como credencial.

+

Restricao de diversidade por tipo de no +(tesseras-replication/src/distributor.rs) — Uma nova funcao +apply_institutional_diversity() limita quantas replicas de uma unica tessera +podem ir para nos institucionais. O limite e ceil(fator_replicacao / 3.5) — +com o padrao r=7, no maximo 2 de 7 replicas vao para instituicoes. Isso impede +que a rede se torne dependente de um pequeno numero de grandes instituicoes: se +os servidores de uma universidade cairem, pelo menos 5 replicas permanecem em +nos independentes.

+

Extensoes de mensagens DHT (tesseras-dht/src/message.rs) — Duas novas +variantes de mensagem:

+ + + +
MensagemProposito
SearchCliente envia string de consulta, filtros e numero da pagina
SearchResultNo institucional responde com resultados e contagem total
+

A funcao encode() foi trocada de serializacao MessagePack posicional para +nomeada (rmp_serde::to_vec_named) para lidar corretamente com campos opcionais +de SearchFilters — a codificacao posicional quebra quando +skip_serializing_if omite campos.

+

Metricas Prometheus (tesd/src/metrics.rs) — Oito metricas especificas +institucionais:

+ +

Testes de integracao — Dois testes em +tesseras-replication/tests/integration.rs:

+ +

322 testes passam em todo o workspace. Clippy limpo com -D warnings.

+

Decisoes de arquitetura

+ +

O que vem a seguir

+ +

O onboarding institucional fecha uma lacuna critica no modelo de preservacao do +Tesseras. Nos individuais fornecem resiliencia de base — milhares de +dispositivos ao redor do globo, cada um armazenando alguns fragmentos. Nos +institucionais fornecem ancoragem — organizacoes com infraestrutura +profissional, armazenamento redundante e horizontes operacionais de multiplas +decadas. Juntos, formam uma rede onde memorias podem sobreviver tanto a +dispositivos individuais quanto a instituicoes individuais.

+ +
+ +
+ + + + -- cgit v1.2.3