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.
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; returns202 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 byjob_id).
Set VITE_DATA_MODE=live and VITE_COORDINATOR_API in the explorer web app to consume these APIs.
Development Setup
- Create a virtual environment in
apps/coordinator-api/.venv. - Install dependencies listed in
pyproject.tomlonce added. - 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_HEXin the.envfile to the printed hex string to enable signed receipts returned by/v1/miners/{job_id}/resultand 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_HEXto a separate Ed25519 private key; responses include anattestationsarray alongside the miner signature. - Clients can verify
signatureobjects using theaitbc_cryptopackage (seeprotocols/receipts/spec.md).
Systemd
Service name: aitbc-coordinator-api (to be defined under configs/systemd/).