chore: update genesis timestamp, fix import paths, clean compiled JS files, and adjust mock path - Update devnet genesis timestamp to 1766400877 - Add Receipt model for zk-proof generation with receiptId, miner, coordinator fields - Fix import paths from settings to config across service modules (access_control, audit_logging, encryption, hsm_key_manager, key_management, zk_proofs) - Remove compiled JavaScript files from explorer-web components and lib directories - Update mock data base path
2.7 KiB
2.7 KiB
Wallet Daemon – Task Breakdown
Status (2025-12-22)
- Stage 1: ✅ DEPLOYED - Wallet Daemon successfully deployed in production at https://aitbc.bubuit.net/wallet/
- FastAPI application running in Incus container on port 8002
- Encrypted keystore with Argon2id + XChaCha20-Poly1305 implemented
- REST and JSON-RPC APIs operational
- Mock ledger with SQLite backend functional
- Receipt verification using aitbc_sdk integrated
- nginx proxy configured at /wallet/ route
Stage 1 (MVP) - COMPLETED
-
Project Setup
- ✅ Initialize FastAPI application under
apps/wallet-daemon/src/app/withmain.py,settings.py,api_rest.py,api_jsonrpc.py. - ✅ Create crypto and keystore modules implementing Argon2id key derivation and XChaCha20-Poly1305 encryption.
- ✅ Add dependencies: FastAPI, uvicorn, argon2-cffi, pynacl, aitbc-sdk, aitbc-crypto, pydantic-settings.
- ✅ Initialize FastAPI application under
-
Keystore & Security
- ✅ Implement encrypted wallet file format storing metadata, salt, nonce, ciphertext.
- ✅ Provide REST endpoints to create/import wallets, unlock/lock, derive accounts.
- ✅ Enforce unlock TTL and in-memory zeroization of sensitive data.
-
REST & JSON-RPC APIs
- ✅ Implement REST routes: wallet lifecycle, account derivation, signing (message/tx/receipt), mock ledger endpoints.
- ✅ Mirror functionality via JSON-RPC under
/rpc. - ✅ Authentication token header enforcement and rate limits on signing operations.
-
Mock Ledger
- ✅ Implement SQLite-backed ledger with balances and transfers for local testing.
- ✅ Provide REST endpoints to query balances and submit transfers.
-
Documentation & Examples
- ✅ Update deployment documentation with systemd service and nginx proxy configuration.
- ✅ Document production endpoints and API access via https://aitbc.bubuit.net/wallet/
-
Receipts
- ✅ Integrate
ReceiptVerifierServiceconsumingCoordinatorReceiptClientto fetch and validate receipts (miner + coordinator signatures).
- ✅ Integrate
Production Deployment Details
- Container: Incus container 'aitbc' at
/opt/wallet-daemon/ - Service: systemd service
wallet-daemon.serviceenabled and running - Port: 8002 (internal), proxied via nginx at
/wallet/ - Dependencies: Virtual environment with all required packages installed
- Access: https://aitbc.bubuit.net/wallet/docs for API documentation
Stage 2+ - IN PROGRESS
- Add ChainAdapter interface targeting real blockchain node RPC.
- 🔄 Implement mock adapter first, followed by AITBC node adapter.
- Support hardware-backed signing (YubiKey/PKCS#11) and multi-curve support gating.
- Introduce webhook retry/backoff logic and structured logging with request IDs.