Files
aitbc/apps/coordinator-api
aitbc 819a98fe43 fix: update service configurations to match manual port assignments
Port Configuration Sync - Complete:
 SERVICE PORTS UPDATED: Synchronized all service configs with health check
- apps/blockchain-explorer/main.py: Changed port from 8022 to 8004
- systemd/aitbc-learning.service: Changed port from 8010 to 8011
- apps/agent-services/agent-coordinator/src/coordinator.py: Changed port from 8011 to 8012
- apps/agent-services/agent-registry/src/app.py: Changed port from 8012 to 8013
- systemd/aitbc-openclaw.service: Changed port from 8013 to 8014
- apps/coordinator-api/src/app/services/advanced_ai_service.py: Changed port from 8009 to 8015
- systemd/aitbc-modality-optimization.service: Changed port from 8023 to 8021
- systemd/aitbc-web-ui.service: Changed port from 8016 to 8007
- Reason: Service configurations now match health check port assignments

 FINAL PORT ALLOCATION:
🔧 Core Services (8000-8009):
  8000: Coordinator API 
  8001: Exchange API 
  8002: Marketplace API 
  8003: Wallet API 
  8004: Explorer  (UPDATED)
  8005: Available 
  8006: Blockchain RPC 
  8007: Web UI  (UPDATED)
  8008: Available 
  8009: Available 

🚀 AI/Agent/GPU Services (8010-8019):
  8010: GPU Service  (CONFLICT RESOLVED!)
  8011: Learning Service  (UPDATED)
  8012: Agent Coordinator  (UPDATED)
  8013: Agent Registry  (UPDATED)
  8014: OpenClaw Service  (UPDATED)
  8015: AI Service  (UPDATED)
  8016: Available 
  8017-8019: Available 

📊 Other Services (8020-8029):
  8020: Multimodal Service 
  8021: Modality Optimization  (UPDATED)
  8022-8029: Available 

 PORT CONFLICTS RESOLVED:
 Port 8010: Now only used by GPU Service (Learning Service moved to 8011)
 Port 8011: Learning Service (moved from 8010)
 Port 8012: Agent Coordinator (moved from 8011)
 Port 8013: Agent Registry (moved from 8012)
 Port 8014: OpenClaw Service (moved from 8013)
 Port 8015: AI Service (moved from 8009)

 PERFECT PORT ORGANIZATION:
 Sequential Assignment: Services use sequential ports within ranges
 No Conflicts: All services have unique port assignments
 Range Compliance: All services follow port allocation strategy
 Complete Sync: Health check and service configurations match

 SERVICE CATEGORIZATION PERFECTED:
🔧 Core Services (6): Coordinator, Exchange, Marketplace, Wallet, Explorer, Web UI
🚀 AI/Agent/GPU Services (6): GPU, Learning, Agent Coord, Agent Registry, OpenClaw, AI
📊 Other Services (2): Multimodal, Modality Optimization

 AVAILABLE PORTS:
🔧 Core Services: 8005, 8008, 8009 available (3 ports)
🚀 AI/Agent/GPU: 8016-8019 available (4 ports)
📊 Other Services: 8022-8029 available (8 ports)

 MAJOR ACHIEVEMENT:
 Perfect Port Organization: No conflicts, sequential assignment
 Complete Sync: Health check matches service configurations
 Strategic Compliance: All services follow port allocation strategy
 Optimal Distribution: Balanced service distribution across ranges

RESULT: Successfully updated all service configurations to match the manual port assignments in the health check. All port conflicts have been resolved, and the service configurations are now perfectly synchronized with the health check script. The AITBC service architecture now has perfect port organization with no conflicts and complete strategic compliance.
2026-03-30 18:29:59 +02:00
..

Coordinator API

Purpose & Scope

FastAPI service that accepts client compute jobs, matches miners, and tracks job lifecycle for the AITBC network.

Marketplace Extensions

Stage 2 introduces public marketplace endpoints exposed under /v1/marketplace:

  • GET /v1/marketplace/offers list available provider offers (filterable by status).
  • GET /v1/marketplace/stats aggregated supply/demand metrics surfaced in the marketplace web dashboard.
  • POST /v1/marketplace/bids accept bid submissions for matching (mock-friendly; returns 202 Accepted).

These endpoints serve the apps/marketplace-web/ dashboard via VITE_MARKETPLACE_DATA_MODE=live.

Explorer Endpoints

The coordinator now exposes read-only explorer data under /v1/explorer for apps/explorer-web/ live mode:

  • GET /v1/explorer/blocks block summaries derived from recent job activity.
  • GET /v1/explorer/transactions transaction-like records for coordinator jobs.
  • GET /v1/explorer/addresses aggregated address activity and balances.
  • GET /v1/explorer/receipts latest job receipts (filterable by job_id).

Set VITE_DATA_MODE=live and VITE_COORDINATOR_API in the explorer web app to consume these APIs.

Development Setup

  1. Create a virtual environment in apps/coordinator-api/.venv.
  2. Install dependencies listed in pyproject.toml once added.
  3. Run the FastAPI app via uvicorn app.main:app --reload.

Configuration

Expects environment variables defined in .env (see docs/bootstrap/coordinator_api.md).

Signed receipts (optional)

  • Generate an Ed25519 key:
    python - <<'PY'
    from nacl.signing import SigningKey
    sk = SigningKey.generate()
    print(sk.encode().hex())
    PY
    
  • Set RECEIPT_SIGNING_KEY_HEX in the .env file to the printed hex string to enable signed receipts returned by /v1/miners/{job_id}/result and retrievable via /v1/jobs/{job_id}/receipt.
  • Receipt history is available at /v1/jobs/{job_id}/receipts (requires client API key) and returns all stored signed payloads.
  • To enable coordinator attestations, set RECEIPT_ATTESTATION_KEY_HEX to a separate Ed25519 private key; responses include an attestations array alongside the miner signature.
  • Clients can verify signature objects using the aitbc_crypto package (see protocols/receipts/spec.md).

Systemd

Service name: aitbc-coordinator-api (to be defined under configs/systemd/).