commit inicial do projeto
This commit is contained in:
95
project.txt
Normal file
95
project.txt
Normal file
@ -0,0 +1,95 @@
|
||||
# 📌 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
|
||||
Reference in New Issue
Block a user