Pular para conteúdo

Configuração

Toda a configuração vem de variáveis de ambiente (ou de um arquivo .env), namespaceadas com HELIX_ e __ separando seções aninhadas — ex.: HELIX_ORION__HOST. Veja .env.example para um modelo.

Segredos (chave privada, token) devem vir de arquivo (*_FILE) em produção — Docker/k8s secret, Vault/KMS — nunca inline. Ver security.md.

Nó (HELIX_NODE__*)

Variável Default Descrição
HELIX_NODE__NODE_ID node-1 Identificador deste validador
HELIX_NODE__PRIVATE_KEY_HEX Seed Ed25519 (64 hex). Gere com keygen
HELIX_NODE__PRIVATE_KEY_FILE Lê a chave de um arquivo (preferido; precede o inline)

Consenso / rede (HELIX_CONSENSUS__*)

Variável Default Descrição
HELIX_CONSENSUS__PEERS Lista id@host:port\|pubkey_hex, separada por vírgula
HELIX_CONSENSUS__BIND_HOST 0.0.0.0 Host do servidor HTTP P2P/API
HELIX_CONSENSUS__BIND_PORT 8000 Porta do servidor
HELIX_CONSENSUS__ADVERTISE Endereço alcançável (ex.: node-1:8000) p/ descoberta
HELIX_CONSENSUS__BLOCK_INTERVAL 5.0 Intervalo-alvo de bloco (s); base do timeout de round-change
HELIX_CONSENSUS__RATE_LIMIT_RPS 0 Rate limit por origem (req/s; 0 = desligado)
HELIX_CONSENSUS__RATE_LIMIT_BURST 200 Burst do token-bucket
HELIX_CONSENSUS__MAX_BODY_BYTES 1048576 Tamanho máximo de payload (413 acima)
HELIX_CONSENSUS__MAX_INBOX 10000 Limite da fila de inbound (backpressure → 503)
HELIX_CONSENSUS__BOOTSTRAP_GENESIS false Busca o genesis de um peer (nó ingressante)

FIWARE Orion / MongoDB (HELIX_ORION__*)

Variável Default Descrição
HELIX_ORION__HOST localhost Host do MongoDB do Orion
HELIX_ORION__PORT 27017 Porta do MongoDB
HELIX_ORION__USERNAME helix Usuário (ignorado se sem senha)
HELIX_ORION__PASSWORD Senha; vazio = sem auth (Mongo de demo)
HELIX_ORION__DATABASE orion Database
HELIX_ORION__TLS false TLS na conexão Mongo
HELIX_ORION__TLS_CA_FILE CA que verifica o certificado do Mongo
HELIX_ORION__POLL_INTERVAL 5.0 Intervalo de polling (s)
HELIX_ORION__USE_CHANGE_STREAMS false Coleta event-driven (exige replica set)

Armazenamento (HELIX_STORAGE__*)

Variável Default Descrição
HELIX_STORAGE__URL sqlite:///data/helix_chain.db URL SQLAlchemy (SQLite/Postgres). Guarda cadeia + WAL de consenso

TLS / mTLS do P2P (HELIX_TLS__*)

Variável Default Descrição
HELIX_TLS__ENABLED false HTTPS entre validadores
HELIX_TLS__CERT_FILE / KEY_FILE Certificado/chave do servidor (PEM)
HELIX_TLS__CA_FILE CA que verifica os peers
HELIX_TLS__MUTUAL false Exige certificado de cliente (mTLS)
HELIX_TLS__CLIENT_CERT_FILE / CLIENT_KEY_FILE = server Cert de cliente p/ mTLS de saída

Observabilidade (HELIX_OTEL__*)

Variável Default Descrição
HELIX_OTEL__ENABLED false Habilita tracing OpenTelemetry
HELIX_OTEL__ENDPOINT Endpoint OTLP/HTTP (Jaeger/Tempo)
HELIX_OTEL__SERVICE_NAME helix-node Nome do serviço nos traces

Métricas Prometheus em GET /metrics (sempre ativo, sem config).

Notificação (HELIX_NOTIFY__*)

Variável Default Descrição
HELIX_NOTIFY__WEBHOOK_URL Webhook Slack/SIEM p/ alertas de adulteração

Segurança e gerais (top-level)

Variável Default Descrição
HELIX_CLUSTER_TOKEN Token(s) Bearer dos endpoints P2P; vírgula = rotação; vazio = sem auth
HELIX_CLUSTER_TOKEN_FILE Lê o token de um arquivo (preferido)
HELIX_COMMIT_KEY_HEX Chave (hex) p/ commitment com HMAC do value_hash; mesma em todos os nós; vazio = SHA-256 puro
HELIX_COMMIT_KEY_FILE Lê a chave de commit de um arquivo (preferido)
HELIX_PSEUDONYMIZE_ENTITIES false Pseudonimiza entity_id on-chain (LGPD); requer chave de commit
HELIX_DEBUG_API false Habilita /admin/* (demo/testes)
HELIX_LOG_LEVEL INFO Nível de log

Ver security.md para o modelo de confidencialidade.

Notas

  • Quórum: com N validadores, f = (N-1)//3 e quórum N - f. Use 4 nós para tolerar 1 bizantino (f=1).
  • Validadores: o conjunto inicial vem dos peers + chave própria (deduplicada); mudanças são acordadas on-chain (ver architecture.md).