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)
### **Network Requirements**
- **Core Services Ports**: 8000-8002 (must be available)
- **Core Services Ports**: 8000-8003 (must be available)
- Port 8000: Coordinator API
- Port 8001: Exchange API
- Port 8002: Wallet Service
- **Blockchain Services Ports**: 8005-8006 (must be available)
- Port 8005: Primary Blockchain Node
- Port 8006: Primary Blockchain RPC
- **Level 2 Services Ports**: 8010-8017 (optional - not required for CPU-only deployment)
- Note: Enhanced services disabled for aitbc server (no GPU access)
- Port 8010: Multimodal GPU (CPU-only mode) - DISABLED
- Port 8011: GPU Multimodal (CPU-only mode) - DISABLED
- Port 8012: Modality Optimization - DISABLED
- Port 8013: Adaptive Learning - DISABLED
- Port 8014: Marketplace Enhanced - DISABLED
- Port 8015: OpenClaw Enhanced - DISABLED
- Port 8016: Web UI - DISABLED
- Port 8017: Geographic Load Balancer - DISABLED
- Port 8002: Blockchain Node
- Port 8003: Blockchain RPC
- **Blockchain Services Ports**: 8005-8008 (must be available)
- Port 8005: Primary Blockchain Node (legacy)
- Port 8006: Primary Blockchain RPC (legacy)
- Port 8007: Blockchain Service (Transaction processing and consensus)
- Port 8008: Network Service (P2P block propagation)
- **Enhanced Services Ports**: 8010-8017 (optional - CPU-only mode available)
- 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 Ports**: 8020-8029 (development and testing)
- Port 8025: Development Blockchain Node
- 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'
```
#### **Port Distribution Strategy (Updated March 6, 2026)**
#### **Port Distribution Strategy (Updated March 7, 2026)**
```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 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):
- Port 8005: Primary Blockchain Node (localhost + containers)
- Port 8006: Primary Blockchain RPC (localhost + containers)
# Multi-Chain Services (8005-8008):
- Port 8005: Primary Blockchain Node (legacy)
- 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):
- Port 8010-8017: Enhanced services (DISABLED for CPU-only deployment)
# Enhanced Services (8010-8017):
- 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):
- 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
# Service Naming Convention:
✅ aitbc-blockchain-node.service (port 8005)
✅ aitbc-blockchain-rpc.service (port 8006)
✅ aitbc-wallet.service (port 8002)
✅ aitbc-coordinator-api.service (port 8000)
✅ aitbc-exchange-api.service (port 8001)
✅ 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-rpc-dev.service (port 8026)
```
@@ -117,21 +133,26 @@ ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev'
## Architecture Overview
```
AITBC Platform Architecture (Updated March 4, 2026)
AITBC Platform Architecture (Updated March 7, 2026)
├── Core Services (8000-8003) ✅ PRODUCTION READY
│ ├── Coordinator API (Port 8000) ✅ PRODUCTION READY
│ ├── Exchange API (Port 8001) ✅ PRODUCTION READY
│ ├── Blockchain Node (Port 8002) ✅ PRODUCTION READY
│ └── Blockchain RPC (Port 8003) ✅ PRODUCTION READY
├── Enhanced Services (8010-8017) ❌ DISABLED (CPU-only deployment)
│ ├── Multimodal GPU (Port 8010) ❌ DISABLED (no GPU access)
│ ├── GPU Multimodal (Port 8011) ❌ DISABLED (no GPU access)
│ ├── Modality Optimization (Port 8012) ❌ DISABLED (not essential)
── Adaptive Learning (Port 8013) ❌ DISABLED (not essential)
│ ├── Marketplace Enhanced (Port 8014) ❌ DISABLED (not essential)
│ ├── OpenClaw Enhanced (Port 8015) ❌ DISABLED (not essential)
│ ├── Web UI (Port 8016) ❌ DISABLED (not essential)
── Geographic Load Balancer (Port 8017) ❌ DISABLED (complex)
├── Multi-Chain Services (8005-8008) ✅ PRODUCTION READY
│ ├── Blockchain Node Legacy (Port 8005) ✅ PRODUCTION READY
│ ├── Blockchain RPC Legacy (Port 8006) ✅ PRODUCTION READY
│ ├── Blockchain Service (Port 8007) ✅ PRODUCTION READY
── Network Service (Port 8008) ✅ PRODUCTION READY
├── Enhanced Services (8010-8017) ✅ PRODUCTION READY (CPU-only mode)
│ ├── Multimodal GPU (Port 8010) ✅ PRODUCTION READY (CPU-only)
│ ├── GPU Multimodal (Port 8011) ✅ PRODUCTION READY (CPU-only)
── 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
├── Database (SQLite/PostgreSQL)
├── Monitoring & Logging
@@ -221,22 +242,23 @@ chown aitbc:aitbc .env
sudo cp -r /opt/aitbc/systemd/* /etc/systemd/system/
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-exchange-api.service
sudo systemctl enable aitbc-blockchain-node.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
# Note: Enhanced services disabled - no GPU access
# sudo systemctl enable aitbc-multimodal-gpu.service # DISABLED
# sudo systemctl enable aitbc-multimodal.service # DISABLED
# sudo systemctl enable aitbc-modality-optimization.service # DISABLED
# sudo systemctl enable aitbc-adaptive-learning.service # DISABLED
# sudo systemctl enable aitbc-marketplace-enhanced.service # DISABLED
# sudo systemctl enable aitbc-openclaw-enhanced.service # DISABLED
# sudo systemctl enable aitbc-web-ui.service # DISABLED
# sudo systemctl enable aitbc-loadbalancer-geo.service # DISABLED
# Enable enhanced services (CPU-only mode)
sudo systemctl enable aitbc-multimodal-gpu.service
sudo systemctl enable aitbc-multimodal.service
sudo systemctl enable aitbc-modality-optimization.service
sudo systemctl enable aitbc-adaptive-learning.service
sudo systemctl enable aitbc-marketplace-enhanced.service
sudo systemctl enable aitbc-openclaw-enhanced.service
sudo systemctl enable aitbc-loadbalancer-geo.service
```
### **Phase 3: Service Deployment**
@@ -244,29 +266,37 @@ sudo systemctl enable aitbc-explorer.service
#### 3.1 Core Services Startup
```bash
# 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
sleep 3
sudo systemctl start aitbc-exchange-api.service
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
```
#### 3.2 Enhanced Services Startup
```bash
# Enhanced services DISABLED for CPU-only deployment (no GPU access)
# Note: All enhanced services have been disabled for aitbc server
# sudo systemctl start aitbc-multimodal-gpu.service # DISABLED (no GPU)
# sudo systemctl start aitbc-multimodal.service # DISABLED (no GPU)
# sudo systemctl start aitbc-modality-optimization.service # DISABLED (not essential)
# sudo systemctl start aitbc-adaptive-learning.service # DISABLED (not essential)
# sudo systemctl start aitbc-marketplace-enhanced.service # DISABLED (not essential)
# sudo systemctl start aitbc-openclaw-enhanced.service # DISABLED (not essential)
# sudo systemctl start aitbc-web-ui.service # DISABLED (not essential)
# sudo systemctl start aitbc-loadbalancer-geo.service # DISABLED (complex)
# Start enhanced services (CPU-only mode)
sudo systemctl start aitbc-multimodal-gpu.service
sleep 2
sudo systemctl start aitbc-multimodal.service
sleep 2
sudo systemctl start aitbc-modality-optimization.service
sleep 2
sudo systemctl start aitbc-adaptive-learning.service
sleep 2
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
@@ -277,17 +307,20 @@ sudo systemctl list-units --type=service --state=running | grep aitbc
# Test core endpoints
curl -X GET "http://localhost:8000/health" # Coordinator 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
# curl -X GET "http://localhost:8010/health" # DISABLED (no GPU)
# curl -X GET "http://localhost:8011/health" # DISABLED (no GPU)
# curl -X GET "http://localhost:8012/health" # DISABLED (not essential)
# curl -X GET "http://localhost:8013/health" # DISABLED (not essential)
# curl -X GET "http://localhost:8014/health" # DISABLED (not essential)
# curl -X GET "http://localhost:8015/health" # DISABLED (not essential)
# curl -X GET "http://localhost:8016/health" # DISABLED (not essential)
# curl -X GET "http://localhost:8017/health" # DISABLED (complex)
# Test enhanced endpoints
curl -X GET "http://localhost:8010/health" # Multimodal GPU (CPU-only)
curl -X GET "http://localhost:8011/health" # GPU Multimodal (CPU-only)
curl -X GET "http://localhost:8012/health" # Modality Optimization
curl -X GET "http://localhost:8013/health" # Adaptive Learning
curl -X GET "http://localhost:8014/health" # Marketplace Enhanced
curl -X GET "http://localhost:8015/health" # OpenClaw Enhanced
curl -X GET "http://localhost:8016/health" # Blockchain Explorer
curl -X GET "http://localhost:8017/health" # Geographic Load Balancer
```
### **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
print_status "Starting AITBC systemd services on localhost..."
# Get all AITBC services
aitbc_services=$(systemctl list-units --all | grep "aitbc-" | awk '{print $1}' | grep -v "not-found")
# Get all AITBC services (filter out invalid characters)
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
print_warning "No AITBC services found on localhost"