Files
aitbc/apps/aitbc-edge
aitbc fd2b4cd6b5
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
Move JWT secret from inline environment variable to external secrets file for edge-api service
2026-05-27 14:34:28 +02:00
..

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 check
  • GET /ready - Readiness check

Island Operations (Phase 2)

  • POST /v1/islands/join - Join an island
  • POST /v1/islands/leave - Leave an island
  • GET /v1/islands - List all islands
  • GET /v1/islands/{island_id} - Get island details
  • POST /v1/islands/bridge - Request bridge

GPU Operations (Phase 3)

  • POST /v1/gpu/listings - List GPU on island
  • GET /v1/gpu/listings - Get GPU listings
  • DELETE /v1/gpu/listings/{listing_id} - Remove GPU listing
  • GET /v1/gpu/scan - Scan GPUs

Edge Database Operations (Phase 4)

  • POST /v1/database/init - Initialize edge database
  • GET /v1/database - Get edge database status
  • DELETE /v1/database - Delete edge database
  • POST /v1/database/sync - Sync edge database

Edge Serve Operations (Phase 5)

  • POST /v1/serve/start - Start serving
  • POST /v1/serve/stop - Stop serving
  • GET /v1/serve/status - Get serve status
  • GET /v1/serve/requests - Get pending requests
  • POST /v1/serve/requests/{request_id}/complete - Complete request

Edge Metrics (Phase 6)

  • GET /v1/metrics - Get edge metrics
  • GET /v1/metrics/gpu - Get GPU metrics
  • GET /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 joinPOST /v1/islands/join
  • aitbc gpu list-islandPOST /v1/gpu/listings
  • aitbc database init-edgePOST /v1/database/init
  • aitbc edge servePOST /v1/serve/start
  • aitbc edge metricsGET /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