95 lines
3.0 KiB
Plaintext
95 lines
3.0 KiB
Plaintext
# 📌 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 |