diff options
| author | murilo ijanc | 2026-03-24 21:45:05 -0300 |
|---|---|---|
| committer | murilo ijanc | 2026-03-24 21:45:05 -0300 |
| commit | 01c17c68277ff88fab812920732d9bbe9e6bb571 (patch) | |
| tree | 035398ae34263b981b621c6275835d2cc6847d57 /pt-br/news/cli-daemon-rpc/index.html | |
| parent | f186b71ca51e83837db60de13322394bb5e6d348 (diff) | |
| download | website-main.tar.gz | |
Remove old Zola-generated content, keep only the essential
landing page with about, contact, and license sections.
Diffstat (limited to 'pt-br/news/cli-daemon-rpc/index.html')
| -rw-r--r-- | pt-br/news/cli-daemon-rpc/index.html | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/pt-br/news/cli-daemon-rpc/index.html b/pt-br/news/cli-daemon-rpc/index.html deleted file mode 100644 index 3b43961..0000000 --- a/pt-br/news/cli-daemon-rpc/index.html +++ /dev/null @@ -1,147 +0,0 @@ -<!DOCTYPE html> -<html lang="pt-br"> -<head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <title>CLI Encontra a Rede: Comandos Publish, Fetch e Status — Tesseras</title> - <meta name="description" content="O CLI do tesseras agora pode publicar tesseras na rede, buscá-las de peers e monitorar o estado de replicação — tudo através de uma nova ponte RPC via socket Unix para o daemon."> - <!-- Open Graph --> - <meta property="og:type" content="article"> - <meta property="og:title" content="CLI Encontra a Rede: Comandos Publish, Fetch e Status"> - <meta property="og:description" content="O CLI do tesseras agora pode publicar tesseras na rede, buscá-las de peers e monitorar o estado de replicação — tudo através de uma nova ponte RPC via socket Unix para o daemon."> - <meta property="og:image" content="https://tesseras.net/images/social.jpg"> - <meta property="og:image:width" content="1200"> - <meta property="og:image:height" content="630"> - <meta property="og:site_name" content="Tesseras"> - <!-- Twitter Card --> - <meta name="twitter:card" content="summary_large_image"> - <meta name="twitter:title" content="CLI Encontra a Rede: Comandos Publish, Fetch e Status"> - <meta name="twitter:description" content="O CLI do tesseras agora pode publicar tesseras na rede, buscá-las de peers e monitorar o estado de replicação — tudo através de uma nova ponte RPC via socket Unix para o daemon."> - <meta name="twitter:image" content="https://tesseras.net/images/social.jpg"> - <link rel="stylesheet" href="https://tesseras.net/style.css?h=21f0f32121928ee5c690"> - - - <link rel="alternate" type="application/atom+xml" title="Tesseras" href="https://tesseras.net/atom.xml"> - - - <link rel="icon" type="image/png" sizes="32x32" href="https://tesseras.net/images/favicon.png?h=be4e123a23393b1a027d"> - -</head> -<body> - <header> - <h1> - <a href="https://tesseras.net/pt-br/"> - <img src="https://tesseras.net/images/logo-64.png?h=c1b8d0c4c5f93b49d40b" alt="Tesseras" width="40" height="40" class="logo"> - Tesseras - </a> - </h1> - <nav> - - <a href="https://tesseras.net/pt-br/about/">Sobre</a> - <a href="https://tesseras.net/pt-br/news/">Notícias</a> - <a href="https://tesseras.net/pt-br/releases/">Lançamentos</a> - <a href="https://tesseras.net/pt-br/faq/">FAQ</a> - <a href="https://tesseras.net/pt-br/subscriptions/">Inscrições</a> - <a href="https://tesseras.net/pt-br/contact/">Contato</a> - - </nav> - <nav class="lang-switch"> - - <a href="https://tesseras.net/news/cli-daemon-rpc/">English</a> | <strong>Português</strong> - - </nav> - </header> - - <main> - -<article> - <h2>CLI Encontra a Rede: Comandos Publish, Fetch e Status</h2> - <p class="news-date">2026-02-15</p> - <p>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 <code>tes</code> -ganha três comandos que fazem a ponte entre o armazenamento local e a rede P2P — -<code>publish</code>, <code>fetch</code> e <code>status</code> — comunicando-se com um <code>tesd</code> em execução através -de um socket Unix.</p> -<h2 id="o-que-foi-construido">O que foi construído</h2> -<p><strong>Crate <code>tesseras-rpc</code></strong> — 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 (<code>Publish</code>, <code>Fetch</code>, <code>Status</code>) e suas respostas -correspondentes. Um <code>DaemonClient</code> 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.</p> -<p><strong><code>tes publish <hash></code></strong> — Publica uma tessera na rede. Aceita hashes completos -ou prefixos curtos (ex.: <code>tes publish a1b2</code>), 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:</p> -<pre><code>Published tessera 9f2c4a1b (24 fragments created) -Distribution in progress — use `tes status 9f2c4a1b` to track. -</code></pre> -<p><strong><code>tes fetch <hash></code></strong> — 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.</p> -<p><strong><code>tes status <hash></code></strong> — 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:</p> -<table><thead><tr><th>Estado</th><th>Significado</th></tr></thead><tbody> -<tr><td>Local</td><td>Ainda não publicada — existe apenas na sua máquina</td></tr> -<tr><td>Publishing</td><td>Fragmentos sendo distribuídos, redundância crítica</td></tr> -<tr><td>Replicated</td><td>Distribuída, mas abaixo da redundância alvo</td></tr> -<tr><td>Healthy</td><td>Redundância completa alcançada</td></tr> -</tbody></table> -<p><strong>Listener RPC no daemon</strong> — O daemon agora escuta em um socket Unix (padrão: -<code>$XDG_RUNTIME_DIR/tesseras/daemon.sock</code>) 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.</p> -<p><strong>Pack/unpack no <code>tesseras-core</code></strong> — 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.</p> -<h2 id="decisoes-de-arquitetura">Decisões de arquitetura</h2> -<ul> -<li><strong>Socket Unix ao invés de TCP</strong>: a comunicação RPC entre CLI e daemon acontece -na mesma máquina. Sockets Unix são mais rápidos, não precisam de alocação de -porta, e as permissões do sistema de arquivos fornecem controle de acesso sem -TLS.</li> -<li><strong>MessagePack ao invés de JSON</strong>: o mesmo formato wire usado em todo o -Tesseras. Compacto, sem schema, e já é uma dependência do workspace. Uma -ida-e-volta típica de publish request/response ocupa menos de 200 bytes.</li> -<li><strong>Cliente síncrono, daemon assíncrono</strong>: o <code>DaemonClient</code> usa I/O bloqueante -porque o CLI não precisa de concorrência — envia uma requisição e espera. O -listener do daemon é assíncrono (Tokio) para tratar múltiplas conexões. A -camada de enquadramento funciona com qualquer impl <code>Read</code>/<code>Write</code>, conectando -ambos os mundos.</li> -<li><strong>Resolução de prefixo no lado do cliente</strong>: <code>publish</code> e <code>status</code> resolvem -prefixos curtos localmente antes de enviar o hash completo ao daemon. Isso -mantém o daemon stateless — ele não precisa acessar o banco de dados do CLI.</li> -<li><strong>Alinhamento do diretório de dados padrão</strong>: o padrão do CLI mudou de -<code>~/.tesseras</code> para <code>~/.local/share/tesseras</code> (via <code>dirs::data_dir()</code>) para -coincidir com o daemon. Um aviso de migração é exibido quando dados no caminho -antigo são detectados.</li> -</ul> -<h2 id="proximos-passos">Próximos passos</h2> -<ul> -<li><strong>Contagem de peers no DHT</strong>: o comando <code>status</code> atualmente reporta 0 peers — -conectar a contagem real do DHT é o próximo passo</li> -<li><strong><code>tes show</code></strong>: exibir o conteúdo de uma tessera (memórias, metadados) sem -exportar</li> -<li><strong>Fetch com streaming</strong>: para tesseras grandes, transmitir fragmentos conforme -chegam ao invés de esperar por todos</li> -</ul> - -</article> - - </main> - - <footer> - <p>© 2026 Tesseras Project. <a href="/atom.xml">News Feed</a> · <a href="https://git.sr.ht/~ijanc/tesseras">Source</a></p> - </footer> -</body> -</html> |