7.8 KiB
7.8 KiB
AITBC Development Roadmap
This roadmap aggregates high-priority tasks derived from the bootstrap specifications in docs/bootstrap/ and tracks progress across the monorepo. Update this document as milestones evolve.
Stage 1 — Core Services (MVP)
-
Coordinator API
- ✅ Scaffold FastAPI project (
apps/coordinator-api/src/app/). - ✅ Implement job submission, status, result endpoints.
- ✅ Add miner registration, heartbeat, poll, result routes.
- ✅ Wire SQLite persistence for jobs, miners, receipts (historical
JobReceipttable). - ✅ Provide
.env.example,pyproject.toml, and run scripts.
- ✅ Scaffold FastAPI project (
-
Miner Node
- ✅ Implement capability probe and control loop (register → heartbeat → fetch jobs).
- ✅ Build CLI and Python runners with sandboxed work dirs (result reporting stubbed to coordinator).
-
Blockchain Node
- ✅ Define SQLModel schema for blocks, transactions, accounts, receipts (
apps/blockchain-node/src/aitbc_chain/models.py). - ⏳ Harden schema parity across runtime + storage:
- Generate Alembic baseline and incremental migrations in
apps/blockchain-node/migrations/mirroring the current SQLModel definitions. - Wire explicit SQLModel relationships (
Relationship,ForeignKey) for block ↔ transaction ↔ receipt joins per bootstrap spec. - Add validation hooks (SQLModel validators / custom service checks) to enforce hash formatting, foreign key integrity, and enum bounds before persistence.
- Generate Alembic baseline and incremental migrations in
- ✅ Implement PoA proposer loop with block assembly (
apps/blockchain-node/src/aitbc_chain/consensus/poa.py). - ✅ Expose REST RPC endpoints for tx submission, balances, receipts (
apps/blockchain-node/src/aitbc_chain/rpc/router.py). - ⏳ Deliver WebSocket RPC + P2P gossip layer:
- Stand up WebSocket subscription endpoints (
apps/blockchain-node/src/aitbc_chain/rpc/websocket.py) mirroring REST payloads. - Implement pub/sub transport for block + transaction gossip backed by an in-memory broker (Starlette
Broadcastor Redis) with configurable fan-out. - Add integration tests and load-test harness ensuring gossip convergence and back-pressure handling.
- Stand up WebSocket subscription endpoints (
- ✅ Ship devnet scripts (
apps/blockchain-node/scripts/). - ✅ Add observability hooks (JSON logging, Prometheus metrics) and integrate coordinator mock into devnet tooling.
- ⏳ Expand observability dashboards + miner mock integration:
- Build Grafana dashboards for consensus health (block intervals, proposer rotation) and RPC latency (
apps/blockchain-node/observability/). - Expose miner mock telemetry (job throughput, error rates) via shared Prometheus registry and ingest into blockchain-node dashboards.
- Add alerting rules (Prometheus
Alertmanager) for stalled proposers, queue saturation, and miner mock disconnects. - Wire coordinator mock into devnet tooling to simulate real-world load and validate observability hooks.
- Build Grafana dashboards for consensus health (block intervals, proposer rotation) and RPC latency (
- ✅ Define SQLModel schema for blocks, transactions, accounts, receipts (
-
Receipt Schema
- ✅ Finalize canonical JSON receipt format under
protocols/receipts/(includes sample signed receipts). - ✅ Implement signing/verification helpers in
packages/py/aitbc-crypto(JS SDK pending). - Translate
docs/bootstrap/aitbc_tech_plan.mdcontract skeleton into Solidity project. - Add deployment/test scripts and document minting flow.
- ✅ Finalize canonical JSON receipt format under
-
Wallet Daemon
- Implement encrypted keystore (Argon2id + XChaCha20-Poly1305).
- Provide REST and JSON-RPC endpoints for wallet management and signing.
- Add mock ledger adapter with SQLite backend.
- ✅ Integrate Python receipt verification helpers (
aitbc_sdk) and expose API/service utilities validating miner + coordinator signatures. - ⏳ Implement Wallet SDK receipt ingestion + attestation surfacing:
- Add client for
/v1/jobs/{job_id}/receiptswith pagination + retry support (packages/py/aitbc-sdk/src/receipts.py). - Reuse signature verification helpers to validate miner + coordinator attestations before exposing results.
- Surface aggregated attestation status + failure reasons via SDK API for UI consumption; mirror logic in pending JS helper.
- Add client for
Stage 3 — Pool Hub & Marketplace
-
Pool Hub
- Implement miner registry, scoring engine, and
/v1/matchAPI. - Integrate Redis/PostgreSQL backing stores per bootstrap spec.
- Add observability endpoints (
/v1/health,/v1/metrics).
- Implement miner registry, scoring engine, and
-
Marketplace Web
- Initialize Vite project with vanilla TypeScript.
- Build offer list, bid form, stats views sourcing mock JSON.
- Provide API abstraction to switch between mock and real backends.
-
Explorer Web
- ✅ Initialize Vite + TypeScript project scaffold (
apps/explorer-web/). - ✅ Add routed pages for overview, blocks, transactions, addresses, receipts.
- ✅ Seed mock datasets (
public/mock/) and fetch helpers powering overview + blocks tables. - ✅ Extend mock integrations to transactions, addresses, and receipts pages.
- ✅ Implement styling system, mock/live data toggle, and coordinator API wiring scaffold.
- ⏳ Validate live mode + responsive polish:
- Hit live coordinator endpoints (
/v1/blocks,/v1/transactions,/v1/addresses,/v1/receipts) viagetDataMode() === "live"and reconcile payloads with UI models. - Add fallbacks + error surfacing for partial/failed live responses (toast + console diagnostics).
- Audit responsive breakpoints (
public/css/layout.css) and adjust grid/typography for tablet + mobile; add regression checks in Percy/Playwright snapshots.
- Hit live coordinator endpoints (
- ✅ Initialize Vite + TypeScript project scaffold (
Shared Libraries & Examples
-
Python SDK (
packages/py/aitbc-sdk)- ✅ Implement coordinator receipt client + verification helpers (miner + coordinator attestation support).
- ⏳ Extend helpers to pool hub + wallet APIs and typed models:
- Add REST clients for upcoming Pool Hub endpoints (
/v1/match,/v1/miners) and wallet daemon routes (/v1/wallets,/v1/sign) with retry/backoff helpers. - Introduce pydantic/SQLModel-derived typed models mirroring
protocols/api/andprotocols/receipts/schemas. - Provide end-to-end tests + examples validating Pool Hub + wallet flows leveraging the coordinator receipt verification primitives.
- Add REST clients for upcoming Pool Hub endpoints (
-
JavaScript SDK (
packages/js/aitbc-sdk)- Provide fetch-based wrapper for web clients.
- Offer TypeScript definitions and basic auth handling.
-
Examples
- Populate quickstart clients (Python/JS) with working code.
- Add receipt sign/verify samples using finalized schema.
Tooling & Operations
-
Scripts & CI
- ✅ Populate
scripts/ci/run_python_tests.shto run coordinator, SDK, wallet-daemon pytest suites with sharedPYTHONPATHscaffolding. - ✅ Add GitHub Actions workflow
.github/workflows/python-tests.ymlinvoking the shared script on pushes/PRs targetingmain.
- ✅ Populate
-
Configs
- Author systemd unit files in
configs/systemd/for each service. - Provide Nginx snippets in
configs/nginx/for reverse proxies.
- Author systemd unit files in
Tracking
Use this roadmap as the canonical checklist during implementation. Mark completed tasks with ✅ and add dates or links to relevant PRs as development progresses.
Upcoming Focus Areas
- Blockchain Node: bootstrap module layout (
apps/blockchain-node/src/), implement SQLModel schemas and RPC stubs aligned with historical/attested receipts. - Explorer Web: finish mock integration across all pages, add styling + mock/live toggle, and begin wiring coordinator endpoints (e.g.,
/v1/jobs/{job_id}/receipts). - Marketplace Web: scaffold Vite/vanilla frontends with mock integrations consuming the coordinator receipt history endpoints and SDK examples.
- Pool Hub: initialize FastAPI project, scoring registry, and telemetry ingestion hooks leveraging coordinator/miner metrics.
- CI Enhancements: add blockchain-node tests once available and frontend build/lint checks to
.github/workflows/python-tests.ymlor follow-on workflows.- ⏳ Add systemd unit and installer scripts under
scripts/.
- ⏳ Add systemd unit and installer scripts under