Files
aitbc/apps/aitbc-edge/README.md
aitbc bd08848e0d
Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Documentation Validation / validate-docs (push) Has been cancelled
Documentation Validation / validate-policies-strict (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Integration Tests / test-service-integration (push) Failing after 3s
Python Tests / test-python (push) Failing after 32s
Security Scanning / security-scan (push) Successful in 32s
refactor: rename packages to shorter names
- Renamed aitbc-ai-service to aitbc-ai
- Renamed aitbc-edge-api to aitbc-edge
- Updated pyproject.toml files with new package names
- Renamed directories and package modules
- Updated references in documentation and scripts
- Updated systemd service references
2026-05-20 08:30:51 +02:00

154 lines
3.5 KiB
Markdown

# 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
```bash
cd /opt/aitbc/apps/edge-api
pip install -e .
```
## Database Setup
Create PostgreSQL database and user:
```bash
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
```bash
cd /opt/aitbc/apps/edge-api
python -m edge_api.main
```
### Production (systemd)
```bash
# 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 join``POST /v1/islands/join`
- `aitbc gpu list-island``POST /v1/gpu/listings`
- `aitbc database init-edge``POST /v1/database/init`
- `aitbc edge serve``POST /v1/serve/start`
- `aitbc 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