commit inicial do projeto

This commit is contained in:
Júnior
2025-05-23 10:44:32 -03:00
commit 8f04473c0b
106 changed files with 5673 additions and 0 deletions

95
project.txt Normal file
View 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