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. --- pt-br/news/cli-daemon-rpc/index.html | 147 ++++++++++++++++++++++++++++++++ pt-br/news/cli-daemon-rpc/index.html.gz | Bin 0 -> 3452 bytes 2 files changed, 147 insertions(+) create mode 100644 pt-br/news/cli-daemon-rpc/index.html create mode 100644 pt-br/news/cli-daemon-rpc/index.html.gz (limited to 'pt-br/news/cli-daemon-rpc') diff --git a/pt-br/news/cli-daemon-rpc/index.html b/pt-br/news/cli-daemon-rpc/index.html new file mode 100644 index 0000000..3b43961 --- /dev/null +++ b/pt-br/news/cli-daemon-rpc/index.html @@ -0,0 +1,147 @@ + + + + + + CLI Encontra a Rede: Comandos Publish, Fetch e Status — Tesseras + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ + + Tesseras + +

+ + +
+ +
+ +
+

CLI Encontra a Rede: Comandos Publish, Fetch e Status

+

2026-02-15

+

Até agora o CLI operava isoladamente: criar uma tessera, verificar, exportar, +listar o que você tem. Tudo ficava na sua máquina. Com esta atualização, o tes +ganha três comandos que fazem a ponte entre o armazenamento local e a rede P2P — +publish, fetch e status — comunicando-se com um tesd em execução através +de um socket Unix.

+

O que foi construído

+

Crate tesseras-rpc — Um novo crate compartilhado entre CLI e daemon. +Define o protocolo RPC usando serialização MessagePack com enquadramento +prefixado por tamanho (cabeçalho big-endian de 4 bytes, máximo de 64 MiB). Três +tipos de requisição (Publish, Fetch, Status) e suas respostas +correspondentes. Um DaemonClient síncrono gerencia a conexão do socket Unix +com timeouts configuráveis. O protocolo é deliberadamente simples — uma +requisição, uma resposta, conexão fechada — para manter a implementação +auditável.

+

tes publish <hash> — Publica uma tessera na rede. Aceita hashes completos +ou prefixos curtos (ex.: tes publish a1b2), que são resolvidos no banco de +dados local. O daemon lê todos os arquivos da tessera do armazenamento, empacota +em um único buffer MessagePack e entrega ao motor de replicação. Tesseras +pequenas (< 4 MB) são replicadas como um único fragmento; maiores passam por +codificação de apagamento Reed-Solomon. A saída mostra o hash curto e a contagem +de fragmentos:

+
Published tessera 9f2c4a1b (24 fragments created)
+Distribution in progress — use `tes status 9f2c4a1b` to track.
+
+

tes fetch <hash> — Busca uma tessera da rede usando o hash de conteúdo +completo. O daemon coleta fragmentos disponíveis localmente, reconstrói os dados +originais via decodificação de apagamento se necessário, desempacota os arquivos +e armazena no CAS (content-addressable store). Retorna o número de memórias e o +tamanho total buscado.

+

tes status <hash> — Exibe a saúde de replicação de uma tessera. A saída +mapeia diretamente o modelo interno de saúde do motor de replicação:

+ + + + + +
EstadoSignificado
LocalAinda não publicada — existe apenas na sua máquina
PublishingFragmentos sendo distribuídos, redundância crítica
ReplicatedDistribuída, mas abaixo da redundância alvo
HealthyRedundância completa alcançada
+

Listener RPC no daemon — O daemon agora escuta em um socket Unix (padrão: +$XDG_RUNTIME_DIR/tesseras/daemon.sock) com permissões de diretório adequadas +(0700), limpeza de sockets obsoletos e shutdown gracioso. Cada conexão é tratada +em uma task Tokio — o listener converte o stream assíncrono para I/O síncrono +para a camada de enquadramento, despacha para o handler RPC e escreve a resposta +de volta.

+

Pack/unpack no tesseras-core — Um módulo pequeno que serializa uma lista +de entradas de arquivo (caminho + dados) em um único buffer MessagePack e +vice-versa. Esta é a ponte entre a estrutura de diretórios da tessera e os blobs +opacos do motor de replicação.

+

Decisões de arquitetura

+ +

Próximos passos

+ + +
+ +
+ + + + diff --git a/pt-br/news/cli-daemon-rpc/index.html.gz b/pt-br/news/cli-daemon-rpc/index.html.gz new file mode 100644 index 0000000..a3c51bf Binary files /dev/null and b/pt-br/news/cli-daemon-rpc/index.html.gz differ -- cgit v1.2.3