# 📌 Visão Geral do Projeto DEJO Node — Checklist Técnico

---

## ✅ COMPLETO

### 🔁 Engine de Consenso
- [x] Proposal → Prevote → Precommit
- [x] Quórum por stake (PoS BFT)
- [x] Persistência de blocos finalizados

### 🔐 Staking
- [x] Stake/Unstake via API REST
- [x] Bloqueio por tempo (duração)
- [x] Validação com stake mínimo (`minStake`)
- [x] Persiste em `staking.db`

### 🗳️ DAO (Governança)
- [x] Propostas com peso por stake
- [x] Votação e apuração com 66% stake
- [x] Tipos: `GENERIC`, `PARAM_CHANGE`
- [x] Execução automática de `PARAM_CHANGE`
- [x] Persiste em `proposals.db`

### 💾 Blocos e Transações
- [x] Estrutura básica de bloco e tx
- [x] Geração de bloco no consenso

### 📊 Monitoramento
- [x] Prometheus em `/metrics`

---

## 🟡 EM ANDAMENTO / PARCIAL

### 🧠 Execução de Transações
- [ ] Aplicar lógica real ao bloco (ex: movimentar saldo)

### 📚 State Machine Application
- [ ] Módulo separado de estado (contas, variáveis, contratos?)
- [ ] ABCI ou internalização via interface

### 💸 Recompensas e Penalidades
- [ ] Cálculo de rewards
- [ ] Slashing por inatividade ou falha

### 🌐 API Avançada
- [ ] Consultas: `/accounts`, `/state`, `/validators`, `/dao/status`

### 🧪 Testes e Simulações
- [ ] Testes unitários e mocks de múltiplos nós
- [ ] Scripts PoS e DAO automatizados

---

## 🔴 A FAZER

### 🔗 Rede P2P entre nós
- [ ] Descoberta, broadcast e sync de blocos
- [ ] Comunicação TCP ou gRPC

### 🔐 Assinaturas Criptográficas
- [ ] Assinaturas reais de votos e transações
- [ ] Validação de chaves públicas

### 🧬 Genesis e Bootstrapping
- [ ] Arquivo genesis inicial
- [ ] Preload de validadores, config e estado

### 🧰 CLI para interação
- [ ] `dejo stake`, `dejo tx`, `dejo query`

---

## 💡 Extras (Futuros)
- [ ] Delegação de voto (liquid democracy)
- [ ] DAO `UPGRADE` de rede e parâmetros
- [ ] Inflação, distribuição e queima de tokens
- [ ] Snapshots e sync otimizado
- [ ] Docker / Compose para simulação em rede