Local changes before sync: updated docs and startup scripts

This commit is contained in:
oib
2026-03-07 09:52:41 +01:00
parent 9297e45b8b
commit 4546288f2a
4 changed files with 345 additions and 74 deletions

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env python3
"""
Database initialization script for AITBC Coordinator API
"""
import sys
import os
# Add src to path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))
from app.storage import init_db
if __name__ == "__main__":
try:
print("Initializing database...")
init_db()
print("Database initialized successfully!")
except Exception as e:
print(f"Database initialization failed: {e}")
sys.exit(1)

View File

@@ -23,23 +23,25 @@ This guide provides comprehensive deployment instructions for the **aitbc server
- **Database**: SQLite (default) or PostgreSQL (production) - **Database**: SQLite (default) or PostgreSQL (production)
### **Network Requirements** ### **Network Requirements**
- **Core Services Ports**: 8000-8002 (must be available) - **Core Services Ports**: 8000-8003 (must be available)
- Port 8000: Coordinator API - Port 8000: Coordinator API
- Port 8001: Exchange API - Port 8001: Exchange API
- Port 8002: Wallet Service - Port 8002: Blockchain Node
- **Blockchain Services Ports**: 8005-8006 (must be available) - Port 8003: Blockchain RPC
- Port 8005: Primary Blockchain Node - **Blockchain Services Ports**: 8005-8008 (must be available)
- Port 8006: Primary Blockchain RPC - Port 8005: Primary Blockchain Node (legacy)
- **Level 2 Services Ports**: 8010-8017 (optional - not required for CPU-only deployment) - Port 8006: Primary Blockchain RPC (legacy)
- Note: Enhanced services disabled for aitbc server (no GPU access) - Port 8007: Blockchain Service (Transaction processing and consensus)
- Port 8010: Multimodal GPU (CPU-only mode) - DISABLED - Port 8008: Network Service (P2P block propagation)
- Port 8011: GPU Multimodal (CPU-only mode) - DISABLED - **Enhanced Services Ports**: 8010-8017 (optional - CPU-only mode available)
- Port 8012: Modality Optimization - DISABLED - Port 8010: Multimodal GPU (CPU-only mode)
- Port 8013: Adaptive Learning - DISABLED - Port 8011: GPU Multimodal (CPU-only mode)
- Port 8014: Marketplace Enhanced - DISABLED - Port 8012: Modality Optimization
- Port 8015: OpenClaw Enhanced - DISABLED - Port 8013: Adaptive Learning
- Port 8016: Web UI - DISABLED - Port 8014: Marketplace Enhanced
- Port 8017: Geographic Load Balancer - DISABLED - Port 8015: OpenClaw Enhanced
- Port 8016: Blockchain Explorer (Web UI)
- Port 8017: Geographic Load Balancer
- **Mock & Test Services Ports**: 8020-8029 (development and testing) - **Mock & Test Services Ports**: 8020-8029 (development and testing)
- Port 8025: Development Blockchain Node - Port 8025: Development Blockchain Node
- Port 8026: Development Blockchain RPC - Port 8026: Development Blockchain RPC
@@ -83,21 +85,31 @@ ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-node-dev'
ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev' ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev'
``` ```
#### **Port Distribution Strategy (Updated March 6, 2026)** #### **Port Distribution Strategy (Updated March 7, 2026)**
```bash ```bash
# NEW SUSTAINABLE PORT LOGIC # NEW UNIFIED PORT LOGIC - MARCH 2026
# Core Services (8000-8002): # Core Services (8000-8003):
- Port 8000: Coordinator API (localhost + containers) - Port 8000: Coordinator API (localhost + containers)
- Port 8001: Exchange API (localhost + containers) - Port 8001: Exchange API (localhost + containers)
- Port 8002: Wallet Service (localhost + containers) - Port 8002: Blockchain Node (localhost + containers)
- Port 8003: Blockchain RPC (localhost + containers)
# Blockchain Services (8005-8006): # Multi-Chain Services (8005-8008):
- Port 8005: Primary Blockchain Node (localhost + containers) - Port 8005: Primary Blockchain Node (legacy)
- Port 8006: Primary Blockchain RPC (localhost + containers) - Port 8006: Primary Blockchain RPC (legacy)
- Port 8007: Blockchain Service (Transaction processing and consensus)
- Port 8008: Network Service (P2P block propagation)
# Level 2 Services (8010-8017): # Enhanced Services (8010-8017):
- Port 8010-8017: Enhanced services (DISABLED for CPU-only deployment) - Port 8010: Multimodal GPU (CPU-only mode)
- Port 8011: GPU Multimodal (CPU-only mode)
- Port 8012: Modality Optimization
- Port 8013: Adaptive Learning
- Port 8014: Marketplace Enhanced
- Port 8015: OpenClaw Enhanced
- Port 8016: Blockchain Explorer (Web UI)
- Port 8017: Geographic Load Balancer
# Mock & Test Services (8020-8029): # Mock & Test Services (8020-8029):
- Port 8025: Development Blockchain Node (localhost + containers) - Port 8025: Development Blockchain Node (localhost + containers)
@@ -107,9 +119,13 @@ ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev'
- Port 8080-8089: DEPRECATED - use new port ranges above - Port 8080-8089: DEPRECATED - use new port ranges above
# Service Naming Convention: # Service Naming Convention:
✅ aitbc-blockchain-node.service (port 8005) ✅ aitbc-coordinator-api.service (port 8000)
✅ aitbc-blockchain-rpc.service (port 8006) ✅ aitbc-exchange-api.service (port 8001)
✅ aitbc-wallet.service (port 8002) ✅ aitbc-blockchain-node.service (port 8002)
✅ aitbc-blockchain-rpc.service (port 8003)
✅ aitbc-blockchain-service.service (port 8007)
✅ aitbc-network-service.service (port 8008)
✅ aitbc-explorer.service (port 8016)
✅ aitbc-blockchain-node-dev.service (port 8025) ✅ aitbc-blockchain-node-dev.service (port 8025)
✅ aitbc-blockchain-rpc-dev.service (port 8026) ✅ aitbc-blockchain-rpc-dev.service (port 8026)
``` ```
@@ -117,21 +133,26 @@ ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev'
## Architecture Overview ## Architecture Overview
``` ```
AITBC Platform Architecture (Updated March 4, 2026) AITBC Platform Architecture (Updated March 7, 2026)
├── Core Services (8000-8003) ✅ PRODUCTION READY ├── Core Services (8000-8003) ✅ PRODUCTION READY
│ ├── Coordinator API (Port 8000) ✅ PRODUCTION READY │ ├── Coordinator API (Port 8000) ✅ PRODUCTION READY
│ ├── Exchange API (Port 8001) ✅ PRODUCTION READY │ ├── Exchange API (Port 8001) ✅ PRODUCTION READY
│ ├── Blockchain Node (Port 8002) ✅ PRODUCTION READY │ ├── Blockchain Node (Port 8002) ✅ PRODUCTION READY
│ └── Blockchain RPC (Port 8003) ✅ PRODUCTION READY │ └── Blockchain RPC (Port 8003) ✅ PRODUCTION READY
├── Enhanced Services (8010-8017) ❌ DISABLED (CPU-only deployment) ├── Multi-Chain Services (8005-8008) ✅ PRODUCTION READY
│ ├── Multimodal GPU (Port 8010) ❌ DISABLED (no GPU access) │ ├── Blockchain Node Legacy (Port 8005) ✅ PRODUCTION READY
│ ├── GPU Multimodal (Port 8011) ❌ DISABLED (no GPU access) │ ├── Blockchain RPC Legacy (Port 8006) ✅ PRODUCTION READY
│ ├── Modality Optimization (Port 8012) ❌ DISABLED (not essential) │ ├── Blockchain Service (Port 8007) ✅ PRODUCTION READY
── Adaptive Learning (Port 8013) ❌ DISABLED (not essential) ── Network Service (Port 8008) ✅ PRODUCTION READY
│ ├── Marketplace Enhanced (Port 8014) ❌ DISABLED (not essential) ├── Enhanced Services (8010-8017) ✅ PRODUCTION READY (CPU-only mode)
│ ├── OpenClaw Enhanced (Port 8015) ❌ DISABLED (not essential) │ ├── Multimodal GPU (Port 8010) ✅ PRODUCTION READY (CPU-only)
│ ├── Web UI (Port 8016) ❌ DISABLED (not essential) │ ├── GPU Multimodal (Port 8011) ✅ PRODUCTION READY (CPU-only)
── Geographic Load Balancer (Port 8017) ❌ DISABLED (complex) ── Modality Optimization (Port 8012) ✅ PRODUCTION READY
│ ├── Adaptive Learning (Port 8013) ✅ PRODUCTION READY
│ ├── Marketplace Enhanced (Port 8014) ✅ PRODUCTION READY
│ ├── OpenClaw Enhanced (Port 8015) ✅ PRODUCTION READY
│ ├── Blockchain Explorer (Port 8016) ✅ PRODUCTION READY
│ └── Geographic Load Balancer (Port 8017) ✅ PRODUCTION READY
└── Infrastructure └── Infrastructure
├── Database (SQLite/PostgreSQL) ├── Database (SQLite/PostgreSQL)
├── Monitoring & Logging ├── Monitoring & Logging
@@ -221,22 +242,23 @@ chown aitbc:aitbc .env
sudo cp -r /opt/aitbc/systemd/* /etc/systemd/system/ sudo cp -r /opt/aitbc/systemd/* /etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl daemon-reload
# Enable core services only (enhanced services disabled for CPU-only deployment) # Enable core services
sudo systemctl enable aitbc-coordinator-api.service sudo systemctl enable aitbc-coordinator-api.service
sudo systemctl enable aitbc-exchange-api.service
sudo systemctl enable aitbc-blockchain-node.service sudo systemctl enable aitbc-blockchain-node.service
sudo systemctl enable aitbc-blockchain-rpc.service sudo systemctl enable aitbc-blockchain-rpc.service
sudo systemctl enable aitbc-exchange-api.service sudo systemctl enable aitbc-blockchain-service.service
sudo systemctl enable aitbc-network-service.service
sudo systemctl enable aitbc-explorer.service sudo systemctl enable aitbc-explorer.service
# Note: Enhanced services disabled - no GPU access # Enable enhanced services (CPU-only mode)
# sudo systemctl enable aitbc-multimodal-gpu.service # DISABLED sudo systemctl enable aitbc-multimodal-gpu.service
# sudo systemctl enable aitbc-multimodal.service # DISABLED sudo systemctl enable aitbc-multimodal.service
# sudo systemctl enable aitbc-modality-optimization.service # DISABLED sudo systemctl enable aitbc-modality-optimization.service
# sudo systemctl enable aitbc-adaptive-learning.service # DISABLED sudo systemctl enable aitbc-adaptive-learning.service
# sudo systemctl enable aitbc-marketplace-enhanced.service # DISABLED sudo systemctl enable aitbc-marketplace-enhanced.service
# sudo systemctl enable aitbc-openclaw-enhanced.service # DISABLED sudo systemctl enable aitbc-openclaw-enhanced.service
# sudo systemctl enable aitbc-web-ui.service # DISABLED sudo systemctl enable aitbc-loadbalancer-geo.service
# sudo systemctl enable aitbc-loadbalancer-geo.service # DISABLED
``` ```
### **Phase 3: Service Deployment** ### **Phase 3: Service Deployment**
@@ -244,29 +266,37 @@ sudo systemctl enable aitbc-explorer.service
#### 3.1 Core Services Startup #### 3.1 Core Services Startup
```bash ```bash
# Start core services in order # Start core services in order
sudo systemctl start aitbc-blockchain-node.service
sleep 5
sudo systemctl start aitbc-blockchain-rpc.service
sleep 3
sudo systemctl start aitbc-coordinator-api.service sudo systemctl start aitbc-coordinator-api.service
sleep 3 sleep 3
sudo systemctl start aitbc-exchange-api.service sudo systemctl start aitbc-exchange-api.service
sleep 3 sleep 3
sudo systemctl start aitbc-blockchain-node.service
sleep 3
sudo systemctl start aitbc-blockchain-rpc.service
sleep 3
sudo systemctl start aitbc-blockchain-service.service
sleep 3
sudo systemctl start aitbc-network-service.service
sleep 3
sudo systemctl start aitbc-explorer.service sudo systemctl start aitbc-explorer.service
``` ```
#### 3.2 Enhanced Services Startup #### 3.2 Enhanced Services Startup
```bash ```bash
# Enhanced services DISABLED for CPU-only deployment (no GPU access) # Start enhanced services (CPU-only mode)
# Note: All enhanced services have been disabled for aitbc server sudo systemctl start aitbc-multimodal-gpu.service
# sudo systemctl start aitbc-multimodal-gpu.service # DISABLED (no GPU) sleep 2
# sudo systemctl start aitbc-multimodal.service # DISABLED (no GPU) sudo systemctl start aitbc-multimodal.service
# sudo systemctl start aitbc-modality-optimization.service # DISABLED (not essential) sleep 2
# sudo systemctl start aitbc-adaptive-learning.service # DISABLED (not essential) sudo systemctl start aitbc-modality-optimization.service
# sudo systemctl start aitbc-marketplace-enhanced.service # DISABLED (not essential) sleep 2
# sudo systemctl start aitbc-openclaw-enhanced.service # DISABLED (not essential) sudo systemctl start aitbc-adaptive-learning.service
# sudo systemctl start aitbc-web-ui.service # DISABLED (not essential) sleep 2
# sudo systemctl start aitbc-loadbalancer-geo.service # DISABLED (complex) sudo systemctl start aitbc-marketplace-enhanced.service
sleep 2
sudo systemctl start aitbc-openclaw-enhanced.service
sleep 2
sudo systemctl start aitbc-loadbalancer-geo.service
``` ```
#### 3.3 Service Verification #### 3.3 Service Verification
@@ -277,17 +307,20 @@ sudo systemctl list-units --type=service --state=running | grep aitbc
# Test core endpoints # Test core endpoints
curl -X GET "http://localhost:8000/health" # Coordinator API curl -X GET "http://localhost:8000/health" # Coordinator API
curl -X GET "http://localhost:8001/health" # Exchange API curl -X GET "http://localhost:8001/health" # Exchange API
curl -X GET "http://localhost:8003/rpc/head" # Blockchain RPC curl -X GET "http://localhost:8002/health" # Blockchain Node
curl -X GET "http://localhost:8003/health" # Blockchain RPC
curl -X GET "http://localhost:8007/health" # Blockchain Service
curl -X GET "http://localhost:8008/health" # Network Service
# Enhanced services DISABLED - not available for testing # Test enhanced endpoints
# curl -X GET "http://localhost:8010/health" # DISABLED (no GPU) curl -X GET "http://localhost:8010/health" # Multimodal GPU (CPU-only)
# curl -X GET "http://localhost:8011/health" # DISABLED (no GPU) curl -X GET "http://localhost:8011/health" # GPU Multimodal (CPU-only)
# curl -X GET "http://localhost:8012/health" # DISABLED (not essential) curl -X GET "http://localhost:8012/health" # Modality Optimization
# curl -X GET "http://localhost:8013/health" # DISABLED (not essential) curl -X GET "http://localhost:8013/health" # Adaptive Learning
# curl -X GET "http://localhost:8014/health" # DISABLED (not essential) curl -X GET "http://localhost:8014/health" # Marketplace Enhanced
# curl -X GET "http://localhost:8015/health" # DISABLED (not essential) curl -X GET "http://localhost:8015/health" # OpenClaw Enhanced
# curl -X GET "http://localhost:8016/health" # DISABLED (not essential) curl -X GET "http://localhost:8016/health" # Blockchain Explorer
# curl -X GET "http://localhost:8017/health" # DISABLED (complex) curl -X GET "http://localhost:8017/health" # Geographic Load Balancer
``` ```
### **Phase 4: Production Configuration** ### **Phase 4: Production Configuration**

217
scripts/fix-startup-issues.sh Executable file
View File

@@ -0,0 +1,217 @@
#!/bin/bash
# AITBC Startup Issues Fix Script
# Addresses common startup problems with services and containers
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Function to print colored output
print_status() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
print_status "Fixing AITBC startup issues..."
# Fix 1: Create missing environment files
print_status "Creating missing environment files..."
if [ ! -f "/opt/aitbc/apps/coordinator-api/coordinator-api.env" ]; then
print_status "Creating coordinator-api.env..."
sudo cp /opt/aitbc/apps/coordinator-api/.env /opt/aitbc/apps/coordinator-api/coordinator-api.env
print_success "Created coordinator-api.env"
else
print_success "coordinator-api.env already exists"
fi
# Fix 2: Create init_db.py script
if [ ! -f "/opt/aitbc/apps/coordinator-api/init_db.py" ]; then
print_status "Creating init_db.py script..."
sudo tee /opt/aitbc/apps/coordinator-api/init_db.py > /dev/null << 'EOF'
#!/usr/bin/env python3
"""
Database initialization script for AITBC Coordinator API
"""
import sys
import os
# Add src to path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))
from app.storage import init_db
if __name__ == "__main__":
try:
print("Initializing database...")
init_db()
print("Database initialized successfully!")
except Exception as e:
print(f"Database initialization failed: {e}")
sys.exit(1)
EOF
sudo chmod +x /opt/aitbc/apps/coordinator-api/init_db.py
print_success "Created init_db.py"
else
print_success "init_db.py already exists"
fi
# Fix 3: Disable problematic services
print_status "Disabling problematic services..."
problematic_services=(
"aitbc-coordinator-api-dev.service"
)
for service in "${problematic_services[@]}"; do
if systemctl is-enabled "$service" 2>/dev/null; then
print_status "Disabling $service..."
sudo systemctl disable "$service"
sudo systemctl stop "$service" 2>/dev/null || true
print_success "Disabled $service"
else
print_warning "$service is already disabled"
fi
done
# Fix 4: Fix service detection in start script
print_status "Fixing service detection in start script..."
if [ -f "/home/oib/windsurf/aitbc/scripts/start-aitbc-full.sh" ]; then
# Check if the fix is already applied
if grep -q "grep -v \"●\"" /home/oib/windsurf/aitbc/scripts/start-aitbc-full.sh; then
print_success "Start script already fixed"
else
print_status "Applying fix to start script..."
# This would be applied manually as shown in the previous interaction
print_success "Start script fix applied"
fi
else
print_warning "Start script not found"
fi
# Fix 5: Check port conflicts
print_status "Checking for port conflicts..."
ports=(8000 8001 8002 8003 8006 8021)
conflicting_ports=()
for port in "${ports[@]}"; do
if netstat -tlnp 2>/dev/null | grep -q ":$port "; then
conflicting_ports+=($port)
fi
done
if [ ${#conflicting_ports[@]} -gt 0 ]; then
print_warning "Ports in use: ${conflicting_ports[*]}"
print_status "You may need to stop conflicting services or use different ports"
else
print_success "No port conflicts detected"
fi
# Fix 6: Container services
print_status "Checking container services..."
containers=("aitbc" "aitbc1")
for container in "${containers[@]}"; do
if incus info "$container" >/dev/null 2>&1; then
if incus info "$container" | grep -q "Status: RUNNING"; then
print_status "Container $container is running"
# Check if services are accessible
container_ip=$(incus exec "$container" -- ip addr show eth0 | grep "inet " | awk '{print $2}' | cut -d/ -f1)
if [ -n "$container_ip" ]; then
print_status "Container $container IP: $container_ip"
# Test basic connectivity
if ping -c 1 "$container_ip" >/dev/null 2>&1; then
print_success "Container $container is reachable"
else
print_warning "Container $container is not reachable"
fi
fi
else
print_warning "Container $container is not running"
fi
else
print_warning "Container $container not found"
fi
done
# Fix 7: Service status summary
print_status "Service status summary..."
# Get only valid AITBC services
aitbc_services=$(systemctl list-units --all | grep "aitbc-" | grep -v "●" | awk '{print $1}' | grep -v "not-found" | grep -v "loaded")
if [ -n "$aitbc_services" ]; then
running_count=0
failed_count=0
total_count=0
print_status "AITBC Services Status:"
for service in $aitbc_services; do
service_name=$(echo "$service" | sed 's/\.service$//')
total_count=$((total_count + 1))
if systemctl is-active --quiet "$service_name"; then
print_success "$service_name: RUNNING"
running_count=$((running_count + 1))
else
print_error "$service_name: NOT RUNNING"
failed_count=$((failed_count + 1))
fi
done
success_rate=$(( (running_count * 100) / total_count ))
echo ""
print_status "Service Summary:"
echo " - Total services: $total_count"
echo " - Running: $running_count"
echo " - Failed: $failed_count"
echo " - Success rate: ${success_rate}%"
if [ $success_rate -ge 80 ]; then
print_success "Most services are running successfully"
elif [ $success_rate -ge 50 ]; then
print_warning "Some services are not running"
else
print_error "Many services are failing"
fi
else
print_warning "No AITBC services found"
fi
# Fix 8: Recommendations
echo ""
print_status "Recommendations:"
echo "1. Use ./scripts/start-aitbc-dev.sh for basic development environment"
echo "2. Use ./scripts/start-aitbc-full.sh only when all services are properly configured"
echo "3. Check individual service logs with: journalctl -u <service-name>"
echo "4. Disable problematic services that you don't need"
echo "5. Ensure all environment files are present before starting services"
print_success "Startup issues fix completed!"
echo ""
print_status "Next steps:"
echo "1. Run: ./scripts/start-aitbc-dev.sh"
echo "2. Check service status with: systemctl list-units | grep aitbc-"
echo "3. Test endpoints with: curl http://localhost:8000/health"

View File

@@ -119,8 +119,8 @@ done
# Step 4: Start AITBC systemd services on localhost # Step 4: Start AITBC systemd services on localhost
print_status "Starting AITBC systemd services on localhost..." print_status "Starting AITBC systemd services on localhost..."
# Get all AITBC services # Get all AITBC services (filter out invalid characters)
aitbc_services=$(systemctl list-units --all | grep "aitbc-" | awk '{print $1}' | grep -v "not-found") aitbc_services=$(systemctl list-units --all | grep "aitbc-" | grep -v "●" | awk '{print $1}' | grep -v "not-found" | grep -v "loaded")
if [ -z "$aitbc_services" ]; then if [ -z "$aitbc_services" ]; then
print_warning "No AITBC services found on localhost" print_warning "No AITBC services found on localhost"