chore: initialize monorepo with project scaffolding, configs, and CI setup
This commit is contained in:
41
docs/blockchain_node.md
Normal file
41
docs/blockchain_node.md
Normal file
@ -0,0 +1,41 @@
|
||||
# Blockchain Node – Task Breakdown
|
||||
|
||||
## Status (2025-09-27)
|
||||
|
||||
- **Stage 1**: Design and scaffolding remain TODO; no implementation committed yet. Coordinator receipts now include historical persistence and attestations, so blockchain receipt ingestion should align with this schema when development begins.
|
||||
|
||||
|
||||
## Stage 1 (MVP)
|
||||
|
||||
- **Project Scaffolding**
|
||||
- Create `apps/blockchain-node/src/` module layout (`types.py`, `state.py`, `blocks.py`, `mempool.py`, `consensus.py`, `rpc.py`, `p2p.py`, `receipts.py`, `settings.py`).
|
||||
- Add `requirements.txt` with FastAPI, SQLModel, websockets, orjson, python-dotenv.
|
||||
- Provide `.env.example` with `CHAIN_ID`, `DB_PATH`, bind addresses, proposer key.
|
||||
|
||||
- **State & Persistence**
|
||||
- Implement SQLModel tables for blocks, transactions, accounts, receipts, peers, params.
|
||||
- Set up database initialization and genesis loading.
|
||||
- Provide migration or reset script under `scripts/`.
|
||||
|
||||
- **RPC Layer**
|
||||
- Build FastAPI app exposing `/rpc/*` endpoints (sendTx, getTx, getBlock, getHead, getBalance, submitReceipt, metrics).
|
||||
- Implement admin endpoints for devnet (`mintFaucet`, `paramSet`, `peers/add`).
|
||||
|
||||
- **Consensus & Block Production**
|
||||
- Implement PoA proposer loop producing blocks at fixed interval.
|
||||
- Integrate mempool selection, receipt validation, and block broadcasting.
|
||||
- Add basic P2P gossip (websocket) for blocks/txs.
|
||||
|
||||
- **Receipts & Minting**
|
||||
- Wire `receipts.py` to coordinator attestation mock.
|
||||
- Mint tokens to miners based on compute_units with configurable ratios.
|
||||
|
||||
- **Devnet Tooling**
|
||||
- Provide `scripts/devnet_up.sh` launching bootstrap node and mocks.
|
||||
- Document curl commands for faucet, transfer, receipt submission.
|
||||
|
||||
## Stage 2+
|
||||
|
||||
- Upgrade consensus to compute-backed proof (CBP) with work score weighting.
|
||||
- Introduce staking/slashing, replace SQLite with PostgreSQL, add snapshots/fast sync.
|
||||
- Implement light client support and metrics dashboard.
|
||||
Reference in New Issue
Block a user