Added comprehensive marketplace functionality to Exchange API and CLI:
- Created marketplace_offers and marketplace_orders database tables
- Implemented REST endpoints: GET/POST/DELETE for offers and orders
- Added marketplace CLI handlers with proper URL resolution and auth
- Support for creating offers, booking offers, listing orders, and cancellations
- Fixed order status values from 'OPEN'/'FILLED' to 'open'/'filled'
- Add chain_id parameter to blockchain block command for multi-chain support
- Update block query to pass chain_id as request parameter
- Update block output fields to match RPC response (tx_count, proposer)
- Add /health endpoint alias to exchange API (in addition to /api/health)
- Simplify genesis block initialization in training script (skip redundant checks)
- Replace all 2,087 uses of datetime.utcnow() across 294 files
- Add UTC import to datetime statements where needed
- Addresses Python 3.12+ deprecation warning (report item #3)
- Migrate 2 files from logging to aitbc.get_logger
- health_monitor.py, real_exchange_integration.py
- Remove logging.basicConfig() from both files
- Migrate 3 files with hardcoded paths to use DATA_DIR constant
- simple_exchange_api.py, scripts/seed_market.py, database.py
- Add hash conflict detection in import_block to delete existing blocks with same hash
- Add hash conflict cleanup in import_chain before importing blocks
- Add logging for hash conflict deletions showing affected chains
- Add WAL file permission setting in init_db for .db-shm and .db-wal files
- Add test_import_chain_clears_hash_conflicts_across_chains to verify cross-chain hash cleanup
🔧 Database Path Standardization:
• Change DATABASE_URL environment variable to EXCHANGE_DATABASE_URL
• Update default database path from ./exchange.db to /var/lib/aitbc/data/exchange/exchange.db
• Apply consistent path resolution across all exchange database connections
• Update database.py, seed_market.py, and simple_exchange_api.py with new path
• Maintain backward compatibility through