# 📌 Projeto DEJO Node — Roadmap de Desenvolvimento Este documento organiza as etapas do projeto em formato de roadmap, com granularidade suficiente para priorização em sprints. --- ## ✅ ENTREGUE / COMPLETO ### 🔁 Engine de Consenso - [x] Ciclo de consenso: Proposal → Prevote → Precommit - [x] Round e timeout por fase - [x] Quórum BFT ponderado por stake (PoS) - [x] Proposer rotativo por altura ### 🔐 Módulo de Staking - [x] Registro de stake e unstake via API REST - [x] Cálculo de bloqueio por duração (Unix time) - [x] Persistência em `staking.db` ### 🗳️ Módulo DAO (Governança) - [x] Criação de propostas via API - [x] Voto com peso proporcional ao stake - [x] Fechamento automático por tempo e quorum - [x] Execução de `PARAM_CHANGE` (altera minStake) ### 💾 Blocos e Transações - [x] Estrutura de bloco e transação - [x] Geração de bloco no consenso - [x] Hash de bloco e persistência ### 📊 Monitoramento - [x] Métricas Prometheus em `/metrics` - [x] Logs por fase de consenso --- ## 🟡 EM PROGRESSO / PRÓXIMO ### 🧠 Execução de Blocos e Estado - [ ] Estrutura de contas (ex: `map[address]Balance`) - [ ] Aplicar transações que movimentam tokens - [ ] Atualização de estado no commit do bloco ### 📚 State Machine (abstração de estado) - [ ] Criar módulo `internal/state` - [ ] Interface para aplicar, reverter e consultar estado - [ ] Encapsular lógica de staking, saldo e DAO ### 💸 Recompensas e Penalidades - [ ] Distribuir reward por bloco finalizado (ex: 10 tokens) - [ ] Atualizar saldo dos validadores automaticamente - [ ] Penalizar (slash) quem não votar ou agir de forma inválida ### 🌐 API Avançada - [ ] `/validators` — status atual dos validadores - [ ] `/accounts/{addr}` — saldo e staking - [ ] `/dao/status` — propostas abertas e stats ### 🧪 Testes e Validação - [ ] Mocks de múltiplos nós rodando em paralelo - [ ] Testes unitários de staking e DAO - [ ] Teste de ciclo completo de proposta → execução --- ## 🔴 A DESENVOLVER ### 🔗 Rede P2P entre nós - [ ] Protocolo de descoberta (peer discovery) - [ ] Broadcast de blocos e votos - [ ] Sincronismo de blocos (sync/fast-sync) - [ ] Comunicação TCP/gRPC entre nós ### 🔐 Assinaturas Criptográficas - [ ] Geração de chave pública/privada para cada node - [ ] Assinatura de transações e mensagens - [ ] Validação de assinaturas nos blocos e mensagens ### 🧬 Genesis e Bootstrap - [ ] Arquivo `genesis.json` com config inicial - [ ] Carga automática de blocos iniciais e parâmetros ### 🧰 CLI (Interface de Linha de Comando) - [ ] `dejo stake ...` — registrar stake via terminal - [ ] `dejo tx send ...` — enviar transação manual - [ ] `dejo query dao ...` — consultar propostas --- ## 💡 EXTRAS / FUTURO - [ ] Delegação de voto (liquid democracy) - [ ] Propostas DAO tipo `UPGRADE` - [ ] Inflação e distribuição periódica - [ ] Snapshots de estado + sync otimizado - [ ] Compose com múltiplos nós simulando rede