- Changed bare except clauses to specific exception types in web3_utils.py, testing.py, messages.py, and message_storage.py - Replaced print() calls with logger in testing.py, agent_discovery.py, compliance_agent.py, coordinator.py, trading_agent.py, keys.py, escrow.py, persistent_spending_tracker.py, sync_cli.py, and client.py - Added logger initialization using get_logger(__name__) in compliance_agent.py, coordinator.py, trading_agent.py, keys.py, escrow.py, persistent_spending_tracker.py, and client.py - Removed hardcoded secret
AITBC GPU Service
Manages GPU resource operations.
Installation
cd /opt/aitbc
poetry install --with gpu-service
Database Setup
Create a separate database for the GPU service:
sudo -u postgres psql -f apps/gpu-service/scripts/setup-database.sql
Or manually:
CREATE DATABASE aitbc_gpu;
CREATE USER aitbc_gpu WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE aitbc_gpu TO aitbc_gpu;
Running
# Development
python -m gpu_service.main
# Production (systemd)
sudo systemctl start gpu-service
sudo systemctl enable gpu-service
Endpoints
GET /health- Health checkGET /gpu/status- Get GPU statusGET /v1/marketplace/edge-gpu/profiles- Get consumer GPU profilesGET /v1/marketplace/edge-gpu/metrics/{gpu_id}- Get edge GPU metricsPOST /v1/marketplace/edge-gpu/scan/{miner_id}- Scan and register edge GPUsPOST /v1/marketplace/edge-gpu/optimize/inference/{gpu_id}- Optimize ML inference
Testing
Prerequisites
- PostgreSQL running and aitbc_gpu database created
- Poetry dependencies installed
Database Setup
sudo -u postgres psql -f scripts/setup-database.sql
Start Service (Development)
python -m gpu_service.main
Health Check
curl http://localhost:8101/health
Expected response:
{"status": "healthy", "service": "gpu-service"}
GPU Status
curl http://localhost:8101/gpu/status
Expected response:
{
"status": "operational",
"service": "gpu-service",
"message": "GPU service is running"
}
Get Consumer GPU Profiles
curl http://localhost:8101/v1/marketplace/edge-gpu/profiles
Expected response:
[
{
"profile_id": "consumer_nvidia_a100",
"name": "NVIDIA A100",
"architecture": "NVIDIA",
"memory_gb": 80,
"cuda_cores": 6912,
"tensor_cores": 432,
"compute_capability": "8.0",
"typical_use_cases": ["ml_training", "inference", "hpc"]
}
]
Test Through Gateway
-
Start the API gateway:
python -m api_gateway.main -
Test GPU endpoints through the gateway:
curl http://localhost:8080/gpu/health curl http://localhost:8080/gpu/v1/marketplace/edge-gpu/profiles
For comprehensive testing procedures, see MICROSERVICES_TESTING_GUIDE.md.
Service Configuration
- Port: 8101
- Database: aitbc_gpu
- Gateway route: /gpu/*
Migration Status
Completed:
- Extracted GPU domain models (GPUArchitecture, GPURegistry, ConsumerGPUProfile, EdgeGPUMetrics, GPUBooking, GPUReview)
- Extracted GPU services (EdgeGPUService)
- Extracted GPU data (consumer_gpu_profiles)
- Set up database session management
- Extracted GPU router endpoints
- Removed edge_gpu router from coordinator-api
- Created systemd service configuration
- Created database setup script
Remaining:
- Extract additional GPU routers (gpu_multimodal_health.py, miner.py) if needed
- Run database migration script to create aitbc_gpu database
- Install and enable systemd service
- End-to-end testing with gateway