Document not found (404)
+This URL is invalid, sorry. Please use the navigation bar or search to continue.
+ +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. --- book/pt-br/.nojekyll | 1 + book/pt-br/404.html | 228 +++ book/pt-br/404.html.gz | Bin 0 -> 5603 bytes book/pt-br/ayu-highlight-3fdfc3ac.css | 77 + book/pt-br/ayu-highlight-3fdfc3ac.css.gz | Bin 0 -> 450 bytes book/pt-br/book-a0b12cfe.js | 843 +++++++++++ book/pt-br/book-a0b12cfe.js.gz | Bin 0 -> 6624 bytes book/pt-br/clipboard-1626706a.min.js | 7 + book/pt-br/clipboard-1626706a.min.js.gz | Bin 0 -> 3378 bytes book/pt-br/commands/create.html | 329 +++++ book/pt-br/commands/create.html.gz | Bin 0 -> 7281 bytes book/pt-br/commands/export.html | 307 ++++ book/pt-br/commands/export.html.gz | Bin 0 -> 7162 bytes book/pt-br/commands/init.html | 288 ++++ book/pt-br/commands/init.html.gz | Bin 0 -> 6653 bytes book/pt-br/commands/list.html | 283 ++++ book/pt-br/commands/list.html.gz | Bin 0 -> 6480 bytes book/pt-br/commands/verify.html | 307 ++++ book/pt-br/commands/verify.html.gz | Bin 0 -> 6795 bytes book/pt-br/configuration.html | 390 +++++ book/pt-br/configuration.html.gz | Bin 0 -> 8006 bytes book/pt-br/css/chrome-ae938929.css | 756 ++++++++++ book/pt-br/css/chrome-ae938929.css.gz | Bin 0 -> 4616 bytes book/pt-br/css/general-2459343d.css | 408 ++++++ book/pt-br/css/general-2459343d.css.gz | Bin 0 -> 3178 bytes book/pt-br/css/print-9e4910d8.css | 50 + book/pt-br/css/print-9e4910d8.css.gz | Bin 0 -> 364 bytes book/pt-br/css/variables-8adf115d.css | 383 +++++ book/pt-br/css/variables-8adf115d.css.gz | Bin 0 -> 1951 bytes book/pt-br/docker.html | 303 ++++ book/pt-br/docker.html.gz | Bin 0 -> 6749 bytes book/pt-br/elasticlunr-ef4e11c1.min.js | 10 + book/pt-br/elasticlunr-ef4e11c1.min.js.gz | Bin 0 -> 5522 bytes book/pt-br/encryption.html | 294 ++++ book/pt-br/encryption.html.gz | Bin 0 -> 7943 bytes book/pt-br/favicon-bfbdfe47.png | Bin 0 -> 6580 bytes book/pt-br/fonts/OPEN-SANS-LICENSE.txt | 202 +++ book/pt-br/fonts/OPEN-SANS-LICENSE.txt.gz | Bin 0 -> 3990 bytes book/pt-br/fonts/SOURCE-CODE-PRO-LICENSE.txt | 93 ++ book/pt-br/fonts/SOURCE-CODE-PRO-LICENSE.txt.gz | Bin 0 -> 2037 bytes book/pt-br/fonts/fonts-9644e21d.css | 100 ++ book/pt-br/fonts/fonts-9644e21d.css.gz | Bin 0 -> 671 bytes .../open-sans-v17-all-charsets-300-7736aa35.woff2 | Bin 0 -> 44352 bytes ...-sans-v17-all-charsets-300italic-2c7b95c0.woff2 | Bin 0 -> 40656 bytes .../open-sans-v17-all-charsets-600-486c6759.woff2 | Bin 0 -> 44936 bytes ...-sans-v17-all-charsets-600italic-1a3e8659.woff2 | Bin 0 -> 42120 bytes .../open-sans-v17-all-charsets-700-c22fe8c7.woff2 | Bin 0 -> 44988 bytes ...-sans-v17-all-charsets-700italic-238ae959.woff2 | Bin 0 -> 40800 bytes .../open-sans-v17-all-charsets-800-3d2c812a.woff2 | Bin 0 -> 44536 bytes ...-sans-v17-all-charsets-800italic-ba1521ec.woff2 | Bin 0 -> 40812 bytes ...pen-sans-v17-all-charsets-italic-6c9463f7.woff2 | Bin 0 -> 41076 bytes ...en-sans-v17-all-charsets-regular-2e3b1d34.woff2 | Bin 0 -> 43236 bytes ...ce-code-pro-v11-all-charsets-500-2bdd9410.woff2 | Bin 0 -> 59140 bytes book/pt-br/heir-recovery.html | 314 ++++ book/pt-br/heir-recovery.html.gz | Bin 0 -> 8118 bytes book/pt-br/highlight-493f70e1.css | 83 ++ book/pt-br/highlight-493f70e1.css.gz | Bin 0 -> 589 bytes book/pt-br/highlight-abc7f01d.js | 54 + book/pt-br/highlight-abc7f01d.js.gz | Bin 0 -> 46266 bytes book/pt-br/images/logo.png | Bin 0 -> 493569 bytes book/pt-br/index.html | 288 ++++ book/pt-br/index.html.gz | Bin 0 -> 7613 bytes book/pt-br/installation.html | 397 +++++ book/pt-br/installation.html.gz | Bin 0 -> 8400 bytes book/pt-br/introduction.html | 288 ++++ book/pt-br/introduction.html.gz | Bin 0 -> 7620 bytes book/pt-br/mark-09e88c2c.min.js | 7 + book/pt-br/mark-09e88c2c.min.js.gz | Bin 0 -> 5978 bytes book/pt-br/nat-traversal.html | 334 +++++ book/pt-br/nat-traversal.html.gz | Bin 0 -> 8590 bytes book/pt-br/network-concepts.html | 285 ++++ book/pt-br/network-concepts.html.gz | Bin 0 -> 8173 bytes book/pt-br/print.html | 1532 ++++++++++++++++++++ book/pt-br/print.html.gz | Bin 0 -> 29075 bytes book/pt-br/quick-start.html | 314 ++++ book/pt-br/quick-start.html.gz | Bin 0 -> 7433 bytes book/pt-br/replication.html | 319 ++++ book/pt-br/replication.html.gz | Bin 0 -> 8935 bytes book/pt-br/running-a-node.html | 314 ++++ book/pt-br/running-a-node.html.gz | Bin 0 -> 7573 bytes book/pt-br/searcher-c2a407aa.js | 555 +++++++ book/pt-br/searcher-c2a407aa.js.gz | Bin 0 -> 5294 bytes book/pt-br/searchindex-3eaa3696.js | 1 + book/pt-br/searchindex-3eaa3696.js.gz | Bin 0 -> 72565 bytes book/pt-br/theme/custom-eff59930.css | 44 + book/pt-br/theme/custom-eff59930.css.gz | Bin 0 -> 501 bytes book/pt-br/toc-25102ebc.js | 454 ++++++ book/pt-br/toc-25102ebc.js.gz | Bin 0 -> 5510 bytes book/pt-br/toc.html | 32 + book/pt-br/toc.html.gz | Bin 0 -> 1192 bytes book/pt-br/tomorrow-night-4c0ae647.css | 104 ++ book/pt-br/tomorrow-night-4c0ae647.css.gz | Bin 0 -> 668 bytes 92 files changed, 11378 insertions(+) create mode 100644 book/pt-br/.nojekyll create mode 100644 book/pt-br/404.html create mode 100644 book/pt-br/404.html.gz create mode 100644 book/pt-br/ayu-highlight-3fdfc3ac.css create mode 100644 book/pt-br/ayu-highlight-3fdfc3ac.css.gz create mode 100644 book/pt-br/book-a0b12cfe.js create mode 100644 book/pt-br/book-a0b12cfe.js.gz create mode 100644 book/pt-br/clipboard-1626706a.min.js create mode 100644 book/pt-br/clipboard-1626706a.min.js.gz create mode 100644 book/pt-br/commands/create.html create mode 100644 book/pt-br/commands/create.html.gz create mode 100644 book/pt-br/commands/export.html create mode 100644 book/pt-br/commands/export.html.gz create mode 100644 book/pt-br/commands/init.html create mode 100644 book/pt-br/commands/init.html.gz create mode 100644 book/pt-br/commands/list.html create mode 100644 book/pt-br/commands/list.html.gz create mode 100644 book/pt-br/commands/verify.html create mode 100644 book/pt-br/commands/verify.html.gz create mode 100644 book/pt-br/configuration.html create mode 100644 book/pt-br/configuration.html.gz create mode 100644 book/pt-br/css/chrome-ae938929.css create mode 100644 book/pt-br/css/chrome-ae938929.css.gz create mode 100644 book/pt-br/css/general-2459343d.css create mode 100644 book/pt-br/css/general-2459343d.css.gz create mode 100644 book/pt-br/css/print-9e4910d8.css create mode 100644 book/pt-br/css/print-9e4910d8.css.gz create mode 100644 book/pt-br/css/variables-8adf115d.css create mode 100644 book/pt-br/css/variables-8adf115d.css.gz create mode 100644 book/pt-br/docker.html create mode 100644 book/pt-br/docker.html.gz create mode 100644 book/pt-br/elasticlunr-ef4e11c1.min.js create mode 100644 book/pt-br/elasticlunr-ef4e11c1.min.js.gz create mode 100644 book/pt-br/encryption.html create mode 100644 book/pt-br/encryption.html.gz create mode 100644 book/pt-br/favicon-bfbdfe47.png create mode 100644 book/pt-br/fonts/OPEN-SANS-LICENSE.txt create mode 100644 book/pt-br/fonts/OPEN-SANS-LICENSE.txt.gz create mode 100644 book/pt-br/fonts/SOURCE-CODE-PRO-LICENSE.txt create mode 100644 book/pt-br/fonts/SOURCE-CODE-PRO-LICENSE.txt.gz create mode 100644 book/pt-br/fonts/fonts-9644e21d.css create mode 100644 book/pt-br/fonts/fonts-9644e21d.css.gz create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-300-7736aa35.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-300italic-2c7b95c0.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-600-486c6759.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-600italic-1a3e8659.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-700-c22fe8c7.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-700italic-238ae959.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-800-3d2c812a.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-800italic-ba1521ec.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-italic-6c9463f7.woff2 create mode 100644 book/pt-br/fonts/open-sans-v17-all-charsets-regular-2e3b1d34.woff2 create mode 100644 book/pt-br/fonts/source-code-pro-v11-all-charsets-500-2bdd9410.woff2 create mode 100644 book/pt-br/heir-recovery.html create mode 100644 book/pt-br/heir-recovery.html.gz create mode 100644 book/pt-br/highlight-493f70e1.css create mode 100644 book/pt-br/highlight-493f70e1.css.gz create mode 100644 book/pt-br/highlight-abc7f01d.js create mode 100644 book/pt-br/highlight-abc7f01d.js.gz create mode 100644 book/pt-br/images/logo.png create mode 100644 book/pt-br/index.html create mode 100644 book/pt-br/index.html.gz create mode 100644 book/pt-br/installation.html create mode 100644 book/pt-br/installation.html.gz create mode 100644 book/pt-br/introduction.html create mode 100644 book/pt-br/introduction.html.gz create mode 100644 book/pt-br/mark-09e88c2c.min.js create mode 100644 book/pt-br/mark-09e88c2c.min.js.gz create mode 100644 book/pt-br/nat-traversal.html create mode 100644 book/pt-br/nat-traversal.html.gz create mode 100644 book/pt-br/network-concepts.html create mode 100644 book/pt-br/network-concepts.html.gz create mode 100644 book/pt-br/print.html create mode 100644 book/pt-br/print.html.gz create mode 100644 book/pt-br/quick-start.html create mode 100644 book/pt-br/quick-start.html.gz create mode 100644 book/pt-br/replication.html create mode 100644 book/pt-br/replication.html.gz create mode 100644 book/pt-br/running-a-node.html create mode 100644 book/pt-br/running-a-node.html.gz create mode 100644 book/pt-br/searcher-c2a407aa.js create mode 100644 book/pt-br/searcher-c2a407aa.js.gz create mode 100644 book/pt-br/searchindex-3eaa3696.js create mode 100644 book/pt-br/searchindex-3eaa3696.js.gz create mode 100644 book/pt-br/theme/custom-eff59930.css create mode 100644 book/pt-br/theme/custom-eff59930.css.gz create mode 100644 book/pt-br/toc-25102ebc.js create mode 100644 book/pt-br/toc-25102ebc.js.gz create mode 100644 book/pt-br/toc.html create mode 100644 book/pt-br/toc.html.gz create mode 100644 book/pt-br/tomorrow-night-4c0ae647.css create mode 100644 book/pt-br/tomorrow-night-4c0ae647.css.gz (limited to 'book/pt-br') diff --git a/book/pt-br/.nojekyll b/book/pt-br/.nojekyll new file mode 100644 index 0000000..f173110 --- /dev/null +++ b/book/pt-br/.nojekyll @@ -0,0 +1 @@ +This file makes sure that Github Pages doesn't process mdBook's output. diff --git a/book/pt-br/404.html b/book/pt-br/404.html new file mode 100644 index 0000000..b5e785e --- /dev/null +++ b/book/pt-br/404.html @@ -0,0 +1,228 @@ + + +
+ + +Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+This URL is invalid, sorry. Please use the navigation bar or search to continue.
+ +Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Criar uma tessera a partir de um diretório de arquivos.
+tes create <CAMINHO> [OPÇÕES]
+
+| Argumento | Descrição |
|---|---|
<CAMINHO> | Diretório contendo os arquivos a incluir |
| Opção | Descrição | Padrão |
|---|---|---|
-n, --non-interactive | Pular prompts | desativado |
--dry-run | Pré-visualizar o que seria incluído | desativado |
--visibility <VALOR> | Nível de visibilidade: public, private, circle | public |
--language <CÓDIGO> | Código de idioma (ex.: en, pt-BR) | en |
--tags <LISTA> | Tags separadas por vírgula | nenhuma |
--location <DESC> | Descrição do local | nenhuma |
--data-dir <CAMINHO> | Diretório base para armazenamento de dados | ~/.tesseras |
| Extensão | Tipo | Tipo de memória |
|---|---|---|
.jpg, .jpeg | Imagem (JPEG) | Momento |
.png | Imagem (PNG) | Momento |
.wav | Áudio (WAV PCM) | Momento |
.webm | Vídeo (WebM) | Momento |
.txt | Texto puro (UTF-8) | Reflexão |
Arquivos com outras extensões são ignorados.
+O comando atribui automaticamente um tipo de memória baseado no formato do arquivo:
+.txt) são classificados como Reflexão — pensamentos, crenças ou opiniõestes create ./minhas-fotos --dry-run
+
+tes create ./ferias-2026 \
+ --tags "ferias,verao,praia" \
+ --location "Florianópolis, Brasil" \
+ --language pt-BR \
+ --visibility public
+
+tes create ./diario --non-interactive --tags "cotidiano"
+
+| Nível | Quem pode acessar |
|---|---|
public | Qualquer pessoa (padrão) |
private | Apenas você (e herdeiros designados) |
circle | Pessoas explicitamente escolhidas |
Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Exportar uma tessera como um diretório autocontido.
+tes export <HASH> <DESTINO>
+
+| Argumento | Descrição |
|---|---|
<HASH> | Hash de conteúdo da tessera (64 caracteres hexadecimais) |
<DESTINO> | Diretório de destino |
| Opção | Descrição |
|---|---|
--data-dir <CAMINHO> | Diretório base para armazenamento de dados (padrão: ~/.tesseras) |
A exportação cria um diretório chamado tessera-<hash> dentro do destino:
tessera-9f2c4a1b.../
+├── MANIFEST # Índice em texto puro com checksums
+├── README.decode # Instruções de decodificação legíveis por humanos
+├── identity/
+│ ├── creator.pub.ed25519 # Chave pública do criador
+│ └── signature.ed25519.sig # Assinatura do MANIFEST
+├── memories/
+│ ├── <hash-conteudo>/
+│ │ ├── media.jpg # Arquivo de mídia principal
+│ │ ├── context.txt # Contexto humano em UTF-8 puro
+│ │ └── meta.json # Metadados estruturados
+│ └── .../
+├── schema/
+│ └── v1.json # Esquema JSON para validação de metadados
+└── decode/
+ ├── formats.txt # Explicação de todos os formatos usados
+ ├── jpeg.txt # Como decodificar JPEG
+ ├── wav.txt # Como decodificar WAV
+ └── json.txt # Como decodificar JSON
+
+tes export 9f2c4a1b3e7d8f0cabc123def4567890... ./backup
+
+Exported to ./backup/tessera-9f2c4a1b3e7d8f0cabc123def4567890...
+
+O diretório exportado é projetado para ser legível sem o software Tesseras. Ele inclui:
+Isso significa que alguém daqui a milhares de anos, sem conhecimento algum sobre o Tesseras, ainda pode entender e acessar as memórias.
+Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Inicializar identidade e banco de dados local.
+tes init
+
+Configura seu ambiente Tesseras local. Este é o primeiro comando que você deve executar após instalar o Tesseras.
+O comando cria:
+| Caminho | Conteúdo |
|---|---|
~/.tesseras/identity/ | Par de chaves Ed25519 para assinar tesseras |
~/.tesseras/db/ | Banco de dados SQLite para indexação |
~/.tesseras/blobs/ | Armazenamento de blobs para arquivos de memória |
~/.tesseras/config.toml | Arquivo de configuração |
| Opção | Descrição |
|---|---|
--data-dir <CAMINHO> | Diretório base para armazenamento de dados (padrão: ~/.tesseras) |
Executar init novamente é seguro. Se uma identidade já existe, ela é preservada:
tes init
+
+Ed25519 identity already exists
+Database initialized
+Tesseras initialized at /home/user/.tesseras
+
+tes --data-dir /mnt/usb/tesseras init
+
+Isso cria toda a estrutura de diretórios em /mnt/usb/tesseras/ ao invés do local padrão.
identity/, db/, blobs/)config.toml padrãoPress ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Listar todas as tesseras locais.
+tes list
+
+| Opção | Descrição |
|---|---|
--data-dir <CAMINHO> | Diretório base para armazenamento de dados (padrão: ~/.tesseras) |
Exibe uma tabela com as seguintes colunas:
+| Coluna | Descrição |
|---|---|
| Hash | Primeiros 16 caracteres do hash de conteúdo |
| Created | Data de criação (AAAA-MM-DD) |
| Memories | Número de memórias na tessera |
| Size | Tamanho total (B, KB, MB ou GB) |
| Visibility | Nível de visibilidade (public, private ou circle) |
tes list
+
+Hash Created Memories Size Visibility
+9f2c4a1b3e7d8f0c 2026-02-14 3 284 KB public
+a3b7c2d9e4f01823 2026-02-10 1 12 KB private
+f8e7d6c5b4a39201 2026-01-28 12 4 MB public
+
+Se nenhuma tessera foi criada ainda:
+tes list
+
+No tesseras found.
+
+
+ Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Verificar integridade de uma tessera armazenada.
+tes verify <HASH>
+
+| Argumento | Descrição |
|---|---|
<HASH> | Hash de conteúdo da tessera (64 caracteres hexadecimais) |
| Opção | Descrição |
|---|---|
--data-dir <CAMINHO> | Diretório base para armazenamento de dados (padrão: ~/.tesseras) |
| Código | Significado |
|---|---|
0 | Verificação passou — todos os arquivos intactos, assinatura válida |
1 | Verificação falhou — arquivos corrompidos ou assinatura inválida |
tes verify 9f2c4a1b3e7d8f0cabc123def456789012345678abcdef0123456789abcdef01
+
+Tessera: 9f2c4a1b3e7d8f0cabc123def456789012345678abcdef0123456789abcdef01
+Signature: VALID
+ [OK] memories/a1b2c3d4/media.jpg
+ [OK] memories/e5f6a7b8/media.txt
+ [OK] memories/c9d0e1f2/media.wav
+Verification: PASSED
+
+Se um arquivo foi modificado ou corrompido:
+Tessera: 9f2c4a1b3e7d8f0cabc123def456789012345678abcdef0123456789abcdef01
+Signature: VALID
+ [OK] memories/a1b2c3d4/media.jpg
+ [FAILED] memories/e5f6a7b8/media.txt
+ [OK] memories/c9d0e1f2/media.wav
+Verification: FAILED
+
+Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+O daemon pode ser configurado via um arquivo TOML. Passe o caminho com --config:
tesseras-daemon --config /etc/tesseras/config.toml
+
+Se nenhum arquivo de configuracao for fornecido, o daemon usa padroes sensiveis. Opcoes CLI (--listen, --bootstrap, --data-dir) sobrescrevem os valores correspondentes da configuracao.
[node]
+data_dir = "~/.local/share/tesseras"
+listen_addr = "0.0.0.0:4433"
+
+[dht]
+k = 20
+alpha = 3
+bucket_refresh_interval_secs = 3600
+republish_interval_secs = 3600
+pointer_ttl_secs = 86400
+max_stored_pointers = 100000
+ping_failure_threshold = 3
+
+[bootstrap]
+dns_domain = "_tesseras._udp.tesseras.net"
+hardcoded = [
+ "boot1.tesseras.net:4433",
+ "boot2.tesseras.net:4433",
+]
+
+[network]
+enable_mdns = true
+
+[observability]
+metrics_addr = "127.0.0.1:9190"
+log_format = "json"
+
+[node]Configuracoes basicas do no.
+| Chave | Tipo | Padrao | Descricao |
|---|---|---|---|
data_dir | caminho | Especifico da plataforma | Onde armazenar identidade, banco de dados e blobs |
listen_addr | endereco | 0.0.0.0:4433 | Endereco do listener QUIC |
O data_dir padrao e ~/.local/share/tesseras no Linux e ~/Library/Application Support/tesseras no macOS.
[dht]Parametros de ajuste da DHT Kademlia. Os padroes funcionam bem para a maioria das implantacoes.
+| Chave | Tipo | Padrao | Descricao |
|---|---|---|---|
k | inteiro | 20 | Maximo de entradas por bucket da tabela de roteamento |
alpha | inteiro | 3 | Paralelismo para buscas iterativas |
bucket_refresh_interval_secs | inteiro | 3600 | Com que frequencia atualizar buckets da tabela de roteamento (segundos) |
republish_interval_secs | inteiro | 3600 | Com que frequencia republicar ponteiros armazenados (segundos) |
pointer_ttl_secs | inteiro | 86400 | Quanto tempo manter um ponteiro antes de expirar (segundos) |
max_stored_pointers | inteiro | 100000 | Numero maximo de ponteiros armazenados localmente |
ping_failure_threshold | inteiro | 3 | Quantas falhas consecutivas de ping antes de remover um par |
[bootstrap]Como o no descobre seus primeiros pares ao entrar na rede.
+| Chave | Tipo | Padrao | Descricao |
|---|---|---|---|
dns_domain | string | _tesseras._udp.tesseras.net | Dominio DNS para descoberta de pares via registros TXT |
hardcoded | lista de strings | ["boot1.tesseras.net:4433", "boot2.tesseras.net:4433"] | Enderecos de bootstrap de fallback |
[network]Funcionalidades de nivel de rede.
+| Chave | Tipo | Padrao | Descricao |
|---|---|---|---|
enable_mdns | booleano | true | Habilitar descoberta na rede local via mDNS |
[observability]Monitoramento e logging.
+| Chave | Tipo | Padrao | Descricao |
|---|---|---|---|
metrics_addr | endereco | 127.0.0.1:9190 | Endereco para o endpoint de metricas Prometheus |
log_format | string | json | Formato de saida de log (json ou text) |
Tesseras suporta IPv6 nativamente. Os campos listen_addr e listen_addrs aceitam tanto enderecos IPv4 quanto IPv6.
Para escutar em todas as interfaces IPv6:
+[node]
+listen_addr = "[::]:4433"
+
+No Linux e na maioria dos BSDs, vincular a [::] tambem aceita conexoes IPv4 (dual-stack) por padrao. Em alguns sistemas (notavelmente OpenBSD), [::] e somente IPv6 porque IPV6_V6ONLY e habilitado por padrao. Para garantir tanto IPv4 quanto IPv6 em todas as plataformas, use listen_addrs com enderecos explicitos:
[node]
+listen_addrs = ["0.0.0.0:4433", "[::]:4433"]
+
+Para loopback IPv6 apenas (testes):
+[node]
+listen_addr = "[::1]:4433"
+
+Enderecos de bootstrap podem ser IPv6:
+[bootstrap]
+hardcoded = [
+ "boot1.tesseras.net:4433",
+ "[2001:db8::1]:4433",
+]
+
+Hostnames DNS com registros A e AAAA sao resolvidos para todos os enderecos, entao o daemon se conectara pelo protocolo que estiver acessivel.
+IPV6_V6ONLY por SO| SO | [::] aceita IPv4? | Notas |
|---|---|---|
| Linux | Sim (dual-stack) | IPV6_V6ONLY padrao 0 |
| macOS | Sim (dual-stack) | IPV6_V6ONLY padrao 0 |
| FreeBSD | Sim (dual-stack) | IPV6_V6ONLY padrao 0 |
| OpenBSD | Nao (somente IPv6) | IPV6_V6ONLY sempre 1 |
| Windows | Sim (dual-stack) | IPV6_V6ONLY padrao 0 |
Se precisar de controle explicito, use listen_addrs com um endereco IPv4 e um IPv6.
A maioria dos usuarios nao precisa de um arquivo de configuracao. Se precisar, uma configuracao minima sobrescrevendo apenas o necessario e suficiente:
+[node]
+listen_addr = "0.0.0.0:5000"
+
+[bootstrap]
+hardcoded = ["192.168.1.10:4433"]
+
+Todos os outros valores usam seus padroes.
+ +Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Tesseras fornece uma imagem Docker para executar o daemon em conteineres. Isso e util para servidores, testar redes com multiplos nos e ambientes de CI.
+A partir da raiz do repositorio:
+docker build -t tesseras-daemon .
+
+O Dockerfile multi-estagio usa rust:1.85 para compilar e debian:bookworm-slim como base de execucao. A imagem resultante e pequena e contem apenas o binario do daemon e certificados CA.
docker run -d \
+ --name tesseras \
+ -p 4433:4433/udp \
+ tesseras-daemon
+
+Isso inicia um no que:
+Para persistir dados entre reinicializacoes do conteiner, monte um volume:
+docker run -d \
+ --name tesseras \
+ -p 4433:4433/udp \
+ -v tesseras-data:/root/.local/share/tesseras \
+ tesseras-daemon
+
+Para executar um no semente que nao faz bootstrap de ninguem:
+docker run -d \
+ --name tesseras-seed \
+ -p 4433:4433/udp \
+ tesseras-daemon --listen 0.0.0.0:4433 --bootstrap ""
+
+O repositorio inclui um arquivo Docker Compose para testar uma rede de 3 nos:
+services:
+ boot1:
+ build: ../..
+ command: ["--listen", "0.0.0.0:4433", "--bootstrap", ""]
+ ports: ["4433:4433/udp"]
+
+ boot2:
+ build: ../..
+ command: ["--listen", "0.0.0.0:4433", "--bootstrap", "boot1:4433"]
+ depends_on: [boot1]
+
+ client:
+ build: ../..
+ command: ["--listen", "0.0.0.0:4433", "--bootstrap", "boot2:4433"]
+ depends_on: [boot2]
+
+Iniciar a rede:
+cd tests/smoke
+docker compose up --build -d
+
+Verificar que todos os nos estao executando:
+docker compose logs --tail=5
+
+Voce devera ver daemon ready nos logs de cada no, e bootstrap successful para boot2 e client.
Parar a rede:
+docker compose down
+
+Para usar um arquivo de configuracao com Docker, monte-o no conteiner:
+docker run -d \
+ --name tesseras \
+ -p 4433:4433/udp \
+ -v ./config.toml:/etc/tesseras/config.toml:ro \
+ -v tesseras-data:/root/.local/share/tesseras \
+ tesseras-daemon --config /etc/tesseras/config.toml
+
+Veja o capitulo Configuracao para todas as opcoes disponiveis.
+ +Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+A maioria das tesseras são públicas — projetadas para serem acessíveis a qualquer pessoa, para sempre. Mas algumas memórias precisam de privacidade. Tesseras suporta dois modos de visibilidade criptografada:
+Tesseras públicas nunca são criptografadas. Disponibilidade é mais importante que sigilo para preservação.
+Quando você cria uma tessera privada ou selada, o seguinte acontece:
+Apenas o detentor da chave privada correspondente pode desembrulhar a chave de conteúdo e decriptar o conteúdo.
+O envelope de chave selada usa um Mecanismo de Encapsulamento de Chave (KEM) híbrido combinando dois algoritmos:
+Ambos os algoritmos produzem segredos compartilhados que são combinados usando derivação de chaves BLAKE3. Um atacante precisa quebrar ambos os algoritmos para recuperar a chave de conteúdo. Isso segue o mesmo princípio das assinaturas duplas do Tesseras (Ed25519 + ML-DSA): não sabemos quais suposições criptográficas se manterão ao longo dos séculos, então apostamos nos dois.
+AES-256-GCM suporta dados autenticados associados — informações extras que são verificadas durante a decriptação mas não são criptografadas. Tesseras vincula as seguintes informações no AAD:
+Isso previne ataques de troca de texto cifrado: um atacante não pode copiar conteúdo criptografado de uma tessera para outra, porque o AAD não vai corresponder e a decriptação vai falhar. Para tesseras seladas, isso também significa que você não pode alterar a data do selo — o timestamp está criptograficamente vinculado ao texto cifrado.
+Uma tessera selada é uma verdadeira cápsula do tempo. Quando você cria uma, você especifica uma data open_after. O conteúdo é criptografado e a chave é selada em um envelope que apenas você pode abrir.
Quando a data open_after passa, o dono publica a chave de conteúdo como uma Publicação de Chave assinada — um artefato independente contendo a chave, o hash da tessera e a assinatura do dono. Outros nós podem verificar a assinatura e usar a chave publicada para decriptar o conteúdo.
O manifesto da tessera nunca é modificado. A Publicação de Chave é um documento separado, preservando a natureza imutável e endereçada por conteúdo das tesseras.
+Cada identidade agora inclui um par de chaves de criptografia junto ao par de chaves de assinatura:
+| Tipo de chave | Algoritmo | Finalidade |
|---|---|---|
| Ed25519 | Clássico | Assinatura de manifestos e publicações de chave |
| ML-DSA | Pós-quântico | Assinatura (quando habilitado) |
| X25519 | Clássico | Encapsulamento de chave (criptografia) |
| ML-KEM-768 | Pós-quântico | Encapsulamento de chave (criptografia) |
O par de chaves de criptografia é gerado quando a identidade é criada. A metade pública é armazenada no diretório de identidade da tessera; a metade privada fica no dispositivo do dono.
+Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Suas tesseras podem sobreviver a falhas de infraestrutura, computadores quânticos e séculos de tempo. Mas o que acontece quando você não consegue mais acessar suas próprias chaves? Tesseras usa Shamir’s Secret Sharing para permitir que você distribua sua identidade criptográfica para herdeiros de confiança.
+Shamir’s Secret Sharing divide um segredo em N fragmentos com um limiar T. Qualquer T fragmentos podem reconstruir o segredo original. Menos que T fragmentos não revelam nada — isso é informação-teoricamente seguro, não apenas computacionalmente difícil de quebrar.
+Por exemplo, com limiar 2 e 3 fragmentos totais:
+Quaisquer dois deles podem recuperar sua identidade. Um único fragmento sozinho é inútil.
+tes heir create --threshold 2 --shares 3
+
+Isso divide sua chave de identidade Ed25519 em 3 fragmentos (necessitando 2 para reconstruir) e os salva em ./heir-shares/:
heir-shares/
+├── heir_share_1.bin # Binário MessagePack
+├── heir_share_1.txt # Texto base64 legível por humanos
+├── heir_share_2.bin
+├── heir_share_2.txt
+├── heir_share_3.bin
+└── heir_share_3.txt
+
+Cada fragmento é gerado em dois formatos:
+.bin) — MessagePack compacto, adequado para pendrives ou armazenamento digital.txt) — base64 com cabeçalho legível, adequado para impressão em papelO formato texto se parece com isso:
+--- TESSERAS HEIR SHARE ---
+Format: v1
+Owner: a1b2c3d4e5f6a7b8 (fingerprint)
+Share: 1 of 3 (threshold: 2)
+Session: 9f8e7d6c5b4a3210
+Created: 2026-02-15
+
+<dados codificados em base64>
+--- END HEIR SHARE ---
+
+Quando os herdeiros precisam recuperar a identidade:
+tes heir reconstruct heir_share_1.txt heir_share_2.bin --output-dir ./recovered-keys
+
+O comando detecta automaticamente se cada arquivo é formato binário ou texto. Ele valida que todos os fragmentos pertencem à mesma sessão e dono, verifica checksums e reconstrói o par de chaves Ed25519.
+Para instalar as chaves recuperadas como identidade ativa:
+tes heir reconstruct share1.txt share2.txt --output-dir ./recovered --install
+
+Isso faz backup da identidade atual antes de substituí-la.
+Para ver metadados sobre um fragmento sem expor dados secretos:
+tes heir info heir_share_1.txt
+
+Saída:
+Heir Share Information:
+ Format version: 1
+ Share: 1 of 3 (threshold: 2)
+ Session: 9f8e7d6c5b4a3210
+ Owner fingerprint: a1b2c3d4e5f6a7b8
+ Share data size: 34 bytes
+ Checksum: valid
+
+.txt em papel livre de ácido e armazene em locais físicos separados (cofres bancários, casas diferentes). Papel sobrevive décadas sem degradação.heir create gera um novo ID de sessão. Fragmentos de sessões diferentes não podem ser misturados — isso previne confusão após rotações de chave.Press ← or → to navigate between chapters
+Press S or / to search in the book
+Press ? to show this help
+Press Esc to hide this help
+Tesseras é uma rede peer-to-peer para preservar memórias humanas através dos milênios. Cada pessoa cria uma tessera — uma cápsula do tempo autocontida de memórias (fotos, áudio, vídeo, texto) que sobrevive independentemente de qualquer software, empresa ou infraestrutura.
+A palavra tessera vem das pequenas peças usadas para fazer mosaicos no mundo antigo. No Tesseras, cada tessera é uma coleção de memórias empacotada em um formato projetado para ser compreendido mesmo daqui a milhares de anos, sem nenhum software especial.
+Uma tessera contém:
+Tesseras completou até a Fase 4 — criptografia e tesseras seladas. O projeto agora cobre gerenciamento local de tesseras, rede, replicação, app mobile e privacidade criptográfica.
+O que está disponível hoje:
+| Conceito | Descrição |
|---|---|
| Tessera | Uma cápsula do tempo autocontida de memórias |
| Memória | Um item individual (foto, gravação, vídeo ou texto) dentro de uma tessera |
| Hash de conteúdo | Um hash BLAKE3 que identifica unicamente uma tessera pelo seu conteúdo |
| Visibilidade | Controla quem pode acessar uma tessera: pública, privada, selada ou círculo |
| Tessera selada | Uma cápsula do tempo que só pode ser aberta após uma data específica |
| MANIFEST | Um índice em texto puro listando cada arquivo na tessera com seu checksum |
| Tipo de memória | Categoriza uma memória: momento, reflexão, cotidiano, relação ou objeto |
| Nó | Um dispositivo executando o daemon Tesseras, participando da rede P2P |
| DHT | Tabela hash distribuída — como os nós encontram ponteiros de tesseras sem um servidor central |
| Bootstrap | O processo de entrar na rede contactando nós semente conhecidos |