summaryrefslogtreecommitdiffstats
path: root/pt-br/news/cli-daemon-rpc/index.html
diff options
context:
space:
mode:
authormurilo ijanc2026-03-24 21:45:05 -0300
committermurilo ijanc2026-03-24 21:45:05 -0300
commit01c17c68277ff88fab812920732d9bbe9e6bb571 (patch)
tree035398ae34263b981b621c6275835d2cc6847d57 /pt-br/news/cli-daemon-rpc/index.html
parentf186b71ca51e83837db60de13322394bb5e6d348 (diff)
downloadwebsite-01c17c68277ff88fab812920732d9bbe9e6bb571.tar.gz
Simplify website to single-pageHEADmain
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.html147
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:&#x2F;&#x2F;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:&#x2F;&#x2F;tesseras.net&#x2F;news&#x2F;cli-daemon-rpc&#x2F;">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 &lt;hash&gt;</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 (&lt; 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 &lt;hash&gt;</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 &lt;hash&gt;</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>&copy; 2026 Tesseras Project. <a href="/atom.xml">News Feed</a> · <a href="https://git.sr.ht/~ijanc/tesseras">Source</a></p>
- </footer>
-</body>
-</html>