Some checks failed
Integration Tests / test-service-integration (push) Waiting to run
Security Scanning / security-scan (push) Waiting to run
Cross-Node Transaction Testing / transaction-test (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Edge API Service
REST API for AITBC island and edge operations, providing HTTP equivalents for CLI commands.
Overview
The Edge API Service exposes island and edge operations via REST API, following the coordinator-api pattern. It integrates with the existing GPU service and blockchain node RPC.
Architecture
- Port: 8103
- Database: PostgreSQL (aitbc_edge)
- Communication:
- Blockchain node RPC: localhost:8006
- GPU service: localhost:8101
- Authentication: JWT tokens (same as coordinator-api)
Installation
cd /opt/aitbc/apps/edge-api
pip install -e .
Database Setup
Create PostgreSQL database and user:
sudo -u postgres psql
CREATE DATABASE aitbc_edge;
CREATE USER aitbc_edge WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE aitbc_edge TO aitbc_edge;
\q
Running
Development
cd /opt/aitbc/apps/edge-api
python -m edge_api.main
Production (systemd)
# Install service
sudo cp edge-api.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable edge-api
sudo systemctl start edge-api
API Endpoints
Health Checks
GET /health- Health checkGET /ready- Readiness check
Island Operations (Phase 2)
POST /v1/islands/join- Join an islandPOST /v1/islands/leave- Leave an islandGET /v1/islands- List all islandsGET /v1/islands/{island_id}- Get island detailsPOST /v1/islands/bridge- Request bridge
GPU Operations (Phase 3)
POST /v1/gpu/listings- List GPU on islandGET /v1/gpu/listings- Get GPU listingsDELETE /v1/gpu/listings/{listing_id}- Remove GPU listingGET /v1/gpu/scan- Scan GPUs
Edge Database Operations (Phase 4)
POST /v1/database/init- Initialize edge databaseGET /v1/database- Get edge database statusDELETE /v1/database- Delete edge databasePOST /v1/database/sync- Sync edge database
Edge Serve Operations (Phase 5)
POST /v1/serve/start- Start servingPOST /v1/serve/stop- Stop servingGET /v1/serve/status- Get serve statusGET /v1/serve/requests- Get pending requestsPOST /v1/serve/requests/{request_id}/complete- Complete request
Edge Metrics (Phase 6)
GET /v1/metrics- Get edge metricsGET /v1/metrics/gpu- Get GPU metricsGET /v1/metrics/database- Get database metrics
Implementation Status
Phase 1: Foundation ✅
- Service structure
- FastAPI application
- Database configuration
- Basic stub endpoints
Phase 2: Island Operations ⏳
- Island join/leave endpoints
- Blockchain RPC integration
- Island listing
Phase 3: GPU Operations ⏳
- GPU listing endpoints
- GPU service integration
- GPU metrics
Phase 4: Edge Database ⏳
- Database initialization
- Database sync
- Database management
Phase 5: Edge Serve ⏳
- Serve start/stop
- Request queue
- Request processing
Phase 6: Metrics ⏳
- Metrics collection
- Metrics endpoints
- Performance monitoring
CLI Integration
CLI commands will be updated to use REST API instead of placeholder implementations:
aitbc island join→POST /v1/islands/joinaitbc gpu list-island→POST /v1/gpu/listingsaitbc database init-edge→POST /v1/database/initaitbc edge serve→POST /v1/serve/startaitbc edge metrics→GET /v1/metrics
Agent SDK Integration
Agent SDK will be updated to use REST API for island and edge operations.
Dependencies
- FastAPI
- SQLAlchemy + SQLModel
- PostgreSQL
- httpx
- PyJWT
- uvicorn