``` feat: add websocket tests, PoA metrics, marketplace endpoints, and enhanced observability - Add comprehensive websocket tests for blocks and transactions streams including multi-subscriber and high-volume scenarios - Extend PoA consensus with per-proposer block metrics and rotation tracking - Add latest block interval gauge and RPC error spike alerting - Enhance mock coordinator
Wallet Daemon
Purpose & Scope
Local FastAPI service that manages encrypted keys, signs transactions/receipts, and exposes wallet RPC endpoints. Reference docs/bootstrap/wallet_daemon.md for the implementation plan.
Development Setup
- Create a Python virtual environment under
apps/wallet-daemon/.venvor use Poetry. - Install dependencies via Poetry (preferred):
poetry install - Copy/create
.envand configure coordinator access:cp .env.example .env # create file if missingCOORDINATOR_BASE_URL(defaulthttp://localhost:8011)COORDINATOR_API_KEY(development key to verify receipts)
- Run the service locally:
poetry run uvicorn app.main:app --host 0.0.0.0 --port 8071 --reload - REST receipt endpoints:
GET /v1/receipts/{job_id}(latest receipt + signature validations)GET /v1/receipts/{job_id}/history(full history + validations)
- JSON-RPC interface (
POST /rpc):- Method
receipts.verify_latest - Method
receipts.verify_history
- Method
- Keystore scaffolding:
KeystoreServiceuses Argon2id + XChaCha20-Poly1305 viaapp/crypto/encryption.py(in-memory for now).- Future milestones will add persistent storage and wallet lifecycle routes.