Keyboard shortcuts

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

📋 R001 · Boot de nó em campo

Sintoma: O serviço paebiru-node não inicia, falha imediatamente após o boot ou entra em um loop de reinicialização.

flowchart LR
    S[paebiru-node não sobe<br/>ou reinicia em loop] --> D[Diagnóstico<br/>journalctl + cargo run + ss :1975]
    D -- Porta 1975 ocupada --> A1[Ação 1<br/>matar processo ou<br/>export PAEBIRU_API_PORT]
    D -- Storage sem perms --> A2[Ação 2<br/>mkdir + chmod 700<br/>~/.paebiru]
    D -- Falta de entropia<br/>pqcrypto panics --> A3[Ação 3<br/>instalar/configurar<br/>haveged]
    A1 --> V[Verifica<br/>curl :1975/healthz<br/>log: Ponta-a-ponta rodando]
    A2 --> V
    A3 --> V
    V -- OK --> End[Encerrar]
    V -- não resolveu --> Esc[Escalar<br/>issue operator-help]

🔍 Diagnóstico

  1. Verifique os logs do sistema:
    journalctl -u paebiru-node -n 100 -f
    
  2. Tente um início manual para ver a saída direta:
    cargo run -p paebiru-node
    
  3. Verifique se a porta da API (1975) já está ocupada:
    ss -tulpn | grep 1975
    

🛠️ Ação

Causa 1: Porta Ocupada

Se a porta 1975 estiver em uso por outro processo:

  • Ação: Mate o processo anterior ou altere a porta via variável de ambiente:
    export PAEBIRU_API_PORT=1976
    

Causa 2: Caminho de Armazenamento Inválido

Se o log indicar erro ao abrir o banco de dados ou identidade:

  • Ação: Verifique as permissões de PAEBIRU_STORAGE_PATH (padrão ~/.paebiru):
    mkdir -p ~/.paebiru
    chmod 700 ~/.paebiru
    

Causa 3: Pânico de PQC (Criptografia)

Se o log mostrar erro em pqcrypto ou falta de entropia:

  • Ação: Verifique se o sistema tem haveged ou similar para garantir entropia suficiente no /dev/random.

✅ Verificação

  1. O comando curl http://localhost:1975/healthz retorna OK.
  2. O log mostra: NODE Ponta-a-ponta rodando. Aguardando descoberta de peers....

🚨 Escalar

Se o nó continuar falhando após as ações acima, colete a saída de paebiru node status (se disponível) e abra uma issue com a tag operator-help.