Merge gitea/main, preserving release v0.2.2 stability and CLI documentation

This commit is contained in:
AITBC System
2026-03-25 12:58:02 +01:00
230 changed files with 2370 additions and 369 deletions

View File

@@ -0,0 +1,25 @@
genesis:
chain_id: "ait-devnet"
chain_type: "main"
purpose: "development"
name: "AITBC Development Network"
description: "Development network for AITBC multi-chain testing"
timestamp: "2026-03-06T18:00:00Z"
parent_hash: "0x0000000000000000000000000000000000000000000000000000000000000000"
gas_limit: 10000000
gas_price: 1000000000
consensus:
algorithm: "poa"
validators:
- "ait1devproposer000000000000000000000000000000"
accounts:
- address: "aitbc1genesis"
balance: "1000000"
type: "regular"
- address: "aitbc1faucet"
balance: "100000"
type: "faucet"
parameters:
block_time: 5
max_block_size: 1048576
min_stake: 1000

View File

@@ -0,0 +1,29 @@
genesis:
chain_id: aitbc-brother-chain
chain_type: topic
purpose: brother-connection
name: AITBC Brother Chain
description: Side chain for aitbc1 brother connection
consensus:
algorithm: poa
block_time: 3
max_validators: 21
privacy:
visibility: private
access_control: invite-only
require_invitation: true
parameters:
max_block_size: 1048576
max_gas_per_block: 10000000
min_gas_price: 1000000000
accounts:
- address: aitbc1genesis
balance: '2100000000'
type: genesis
- address: aitbc1aitbc1_simple_simple
balance: '500'
type: gift
metadata:
recipient: aitbc1
gift_from: aitbc_main_chain
contracts: []

View File

@@ -0,0 +1,249 @@
genesis:
chain_id: "aitbc-enhanced-devnet"
chain_type: "enhanced"
purpose: "development-with-new-features"
name: "AITBC Enhanced Development Network"
description: "Enhanced development network with AI trading, surveillance, analytics, and multi-chain features"
timestamp: "2026-03-07T11:00:00Z"
parent_hash: "0x0000000000000000000000000000000000000000000000000000000000000000"
gas_limit: 15000000
gas_price: 1000000000
consensus:
algorithm: "poa"
validators:
- "ait1devproposer000000000000000000000000000000"
- "ait1aivalidator00000000000000000000000000000"
- "ait1surveillance0000000000000000000000000000"
accounts:
# Core system accounts
- address: "aitbc1genesis"
balance: "10000000"
type: "genesis"
metadata:
purpose: "Genesis account with initial supply"
features: ["governance", "staking", "validation"]
- address: "aitbc1faucet"
balance: "1000000"
type: "faucet"
metadata:
purpose: "Development faucet for testing"
distribution_rate: "100 per hour"
- address: "aitbc1treasury"
balance: "5000000"
type: "treasury"
metadata:
purpose: "Treasury for ecosystem rewards"
features: ["rewards", "staking", "governance"]
- address: "aitbc1aiengine"
balance: "2000000"
type: "service"
metadata:
purpose: "AI Trading Engine operational account"
service_type: "ai_trading_engine"
features: ["trading", "analytics", "prediction"]
- address: "aitbc1surveillance"
balance: "1500000"
type: "service"
metadata:
purpose: "AI Surveillance service account"
service_type: "ai_surveillance"
features: ["monitoring", "risk_assessment", "compliance"]
- address: "aitbc1analytics"
balance: "1000000"
type: "service"
metadata:
purpose: "Advanced Analytics service account"
service_type: "advanced_analytics"
features: ["real_time_analytics", "reporting", "metrics"]
- address: "aitbc1marketplace"
balance: "2000000"
type: "service"
metadata:
purpose: "Global Marketplace service account"
service_type: "global_marketplace"
features: ["trading", "liquidity", "cross_chain"]
- address: "aitbc1enterprise"
balance: "3000000"
type: "service"
metadata:
purpose: "Enterprise Integration service account"
service_type: "enterprise_api_gateway"
features: ["api_gateway", "multi_tenant", "security"]
- address: "aitbc1multimodal"
balance: "1500000"
type: "service"
metadata:
purpose: "Multi-modal AI service account"
service_type: "multimodal_agent"
features: ["gpu_acceleration", "modality_optimization", "fusion"]
- address: "aitbc1zkproofs"
balance: "1000000"
type: "service"
metadata:
purpose: "Zero-Knowledge Proofs service account"
service_type: "zk_proofs"
features: ["zk_circuits", "verification", "privacy"]
- address: "aitbc1crosschain"
balance: "2000000"
type: "service"
metadata:
purpose: "Cross-chain bridge service account"
service_type: "cross_chain_bridge"
features: ["bridge", "atomic_swap", "reputation"]
# Developer and testing accounts
- address: "aitbc1developer1"
balance: "500000"
type: "developer"
metadata:
purpose: "Primary developer testing account"
permissions: ["full_access", "service_deployment"]
- address: "aitbc1developer2"
balance: "300000"
type: "developer"
metadata:
purpose: "Secondary developer testing account"
permissions: ["testing", "debugging"]
- address: "aitbc1tester"
balance: "200000"
type: "tester"
metadata:
purpose: "Automated testing account"
permissions: ["testing_only"]
# Smart contracts deployed at genesis
contracts:
- name: "AITBCToken"
address: "0x0000000000000000000000000000000000001000"
type: "ERC20"
metadata:
symbol: "AITBC-E"
decimals: 18
initial_supply: "21000000000000000000000000"
purpose: "Enhanced network token with chain-specific isolation"
- name: "AISurveillanceRegistry"
address: "0x0000000000000000000000000000000000001001"
type: "Registry"
metadata:
purpose: "Registry for AI surveillance patterns and alerts"
features: ["pattern_registration", "alert_management", "risk_scoring"]
- name: "AnalyticsOracle"
address: "0x0000000000000000000000000000000000001002"
type: "Oracle"
metadata:
purpose: "Oracle for advanced analytics data feeds"
features: ["price_feeds", "market_data", "performance_metrics"]
- name: "CrossChainBridge"
address: "0x0000000000000000000000000000000000001003"
type: "Bridge"
metadata:
purpose: "Cross-chain bridge for asset transfers"
features: ["atomic_swaps", "reputation_system", "chain_isolation"]
- name: "EnterpriseGateway"
address: "0x0000000000000000000000000000000000001004"
type: "Gateway"
metadata:
purpose: "Enterprise API gateway with multi-tenant support"
features: ["api_management", "tenant_isolation", "security"]
# Enhanced network parameters
parameters:
block_time: 3 # Faster blocks for enhanced features
max_block_size: 2097152 # 2MB blocks for more transactions
min_stake: 1000
max_validators: 100
block_reward: "2000000000000000000" # 2 AITBC per block
stake_reward_rate: "0.05" # 5% annual reward rate
governance_threshold: "0.51" # 51% for governance decisions
surveillance_threshold: "0.75" # 75% for surveillance alerts
analytics_retention: 86400 # 24 hours retention for analytics data
cross_chain_fee: "10000000000000000" # 0.01 AITBC for cross-chain transfers
enterprise_min_stake: 10000 # Higher stake for enterprise validators
# Privacy and security settings
privacy:
access_control: "permissioned"
require_invitation: false
visibility: "public"
encryption: "enabled"
zk_proofs: "enabled"
audit_logging: "enabled"
# Feature flags for new services
features:
ai_trading_engine: true
ai_surveillance: true
advanced_analytics: true
enterprise_integration: true
multi_modal_ai: true
zk_proofs: true
cross_chain_bridge: true
global_marketplace: true
adaptive_learning: true
performance_monitoring: true
# Service endpoints configuration
services:
ai_trading_engine:
port: 8010
enabled: true
config:
models: ["mean_reversion", "momentum", "arbitrage"]
risk_threshold: 0.02
max_positions: 100
ai_surveillance:
port: 8011
enabled: true
config:
risk_models: ["isolation_forest", "neural_network"]
alert_threshold: 0.85
retention_days: 30
advanced_analytics:
port: 8012
enabled: true
config:
indicators: ["rsi", "macd", "bollinger", "volume"]
update_interval: 60
history_retention: 86400
enterprise_gateway:
port: 8013
enabled: true
config:
max_tenants: 1000
rate_limit: 1000
auth_required: true
multimodal_ai:
port: 8014
enabled: true
config:
gpu_acceleration: true
modalities: ["text", "image", "audio"]
fusion_model: "transformer_based"
zk_proofs:
port: 8015
enabled: true
config:
circuit_types: ["receipt", "identity", "compliance"]
verification_speed: "fast"
memory_optimization: true
# Network configuration
network:
max_peers: 50
min_peers: 5
boot_nodes:
- "ait1bootnode0000000000000000000000000000000:8008"
- "ait1bootnode0000000000000000000000000000001:8008"
propagation_timeout: 30
sync_mode: "fast"
# Governance settings
governance:
voting_period: 604800 # 7 days
execution_delay: 86400 # 1 day
proposal_threshold: "1000000000000000000000000" # 1000 AITBC
quorum_rate: "0.40" # 40% quorum
emergency_pause: true
multi_signature: true
# Economic parameters
economics:
total_supply: "21000000000000000000000000" # 21 million AITBC
inflation_rate: "0.02" # 2% annual inflation
burn_rate: "0.01" # 1% burn rate
treasury_allocation: "0.20" # 20% to treasury
staking_allocation: "0.30" # 30% to staking rewards
ecosystem_allocation: "0.25" # 25% to ecosystem
team_allocation: "0.15" # 15% to team
community_allocation: "0.10" # 10% to community

View File

@@ -0,0 +1,68 @@
description: Enhanced genesis for AITBC with new features
genesis:
chain_id: "aitbc-enhanced-devnet"
chain_type: "topic"
purpose: "development-with-new-features"
name: "AITBC Enhanced Development Network"
description: "Enhanced development network with AI trading, surveillance, analytics, and multi-chain features"
timestamp: "2026-03-07T11:15:00Z"
parent_hash: "0x0000000000000000000000000000000000000000000000000000000000000000"
gas_limit: 15000000
gas_price: 1000000000
consensus:
algorithm: "poa"
validators:
- "ait1devproposer000000000000000000000000000000"
- "ait1aivalidator00000000000000000000000000000"
- "ait1surveillance0000000000000000000000000000"
accounts:
- address: "aitbc1genesis"
balance: "10000000"
type: "genesis"
- address: "aitbc1faucet"
balance: "1000000"
type: "faucet"
- address: "aitbc1aiengine"
balance: "2000000"
type: "service"
- address: "aitbc1surveillance"
balance: "1500000"
type: "service"
- address: "aitbc1analytics"
balance: "1000000"
type: "service"
- address: "aitbc1marketplace"
balance: "2000000"
type: "service"
- address: "aitbc1enterprise"
balance: "3000000"
type: "service"
parameters:
block_time: 3
max_block_size: 2097152
min_stake: 1000
block_reward: "2000000000000000000"
features:
ai_trading_engine: true
ai_surveillance: true
advanced_analytics: true
enterprise_integration: true
multi_modal_ai: true
zk_proofs: true
cross_chain_bridge: true
global_marketplace: true
adaptive_learning: true
performance_monitoring: true
services:
ai_trading_engine:
port: 8010
enabled: true
ai_surveillance:
port: 8011
enabled: true
advanced_analytics:
port: 8012
enabled: true
enterprise_gateway:
port: 8013
enabled: true

View File

@@ -0,0 +1,85 @@
description: Enhanced genesis template for AITBC with new features
genesis:
accounts:
- address: "aitbc1genesis"
balance: "10000000"
- address: "aitbc1faucet"
balance: "1000000"
chain_type: topic
consensus:
algorithm: poa
authorities:
- "ait1devproposer000000000000000000000000000000"
- "ait1aivalidator00000000000000000000000000000"
- "ait1surveillance0000000000000000000000000000"
block_time: 3
max_validators: 100
contracts: []
description: Enhanced development network with AI trading, surveillance, analytics, and multi-chain features
name: AITBC Enhanced Development Network
parameters:
block_reward: '2000000000000000000'
max_block_size: 2097152
max_gas_per_block: 15000000
min_gas_price: 1000000000
min_stake: 1000
governance_threshold: "0.51"
surveillance_threshold: "0.75"
cross_chain_fee: "10000000000000000"
privacy:
access_control: permissioned
require_invitation: false
visibility: public
encryption: "enabled"
zk_proofs: "enabled"
audit_logging: "enabled"
purpose: development-with-new-features
features:
ai_trading_engine: true
ai_surveillance: true
advanced_analytics: true
enterprise_integration: true
multi_modal_ai: true
zk_proofs: true
cross_chain_bridge: true
global_marketplace: true
adaptive_learning: true
performance_monitoring: true
services:
ai_trading_engine:
port: 8010
enabled: true
config:
models: ["mean_reversion", "momentum", "arbitrage"]
risk_threshold: 0.02
max_positions: 100
ai_surveillance:
port: 8011
enabled: true
config:
risk_models: ["isolation_forest", "neural_network"]
alert_threshold: 0.85
retention_days: 30
advanced_analytics:
port: 8012
enabled: true
config:
indicators: ["rsi", "macd", "bollinger", "volume"]
update_interval: 60
history_retention: 86400
enterprise_gateway:
port: 8013
enabled: true
config:
max_tenants: 1000
rate_limit: 1000
auth_required: true
economics:
total_supply: "21000000000000000000000000"
inflation_rate: "0.02"
burn_rate: "0.01"
treasury_allocation: "0.20"
staking_allocation: "0.30"
ecosystem_allocation: "0.25"
team_allocation: "0.15"
community_allocation: "0.10"

View File

@@ -0,0 +1,296 @@
genesis:
chain_id: ait-mainnet
chain_type: enhanced
purpose: development-with-new-features
name: AITBC Mainnet
description: Enhanced development network with AI trading, surveillance, analytics,
and multi-chain features
timestamp: '2026-03-07T11:00:00Z'
parent_hash: '0x0000000000000000000000000000000000000000000000000000000000000000'
gas_limit: 15000000
gas_price: 1000000000
consensus:
algorithm: poa
validators:
- ait1devproposer000000000000000000000000000000
- ait1aivalidator00000000000000000000000000000
- ait1surveillance0000000000000000000000000000
accounts:
- address: aitbc1genesis
balance: '10000000'
type: genesis
metadata:
purpose: Genesis account with initial supply
features:
- governance
- staking
- validation
- address: aitbc1treasury
balance: '5000000'
type: treasury
metadata:
purpose: Treasury for ecosystem rewards
features:
- rewards
- staking
- governance
- address: aitbc1aiengine
balance: '2000000'
type: service
metadata:
purpose: AI Trading Engine operational account
service_type: ai_trading_engine
features:
- trading
- analytics
- prediction
- address: aitbc1surveillance
balance: '1500000'
type: service
metadata:
purpose: AI Surveillance service account
service_type: ai_surveillance
features:
- monitoring
- risk_assessment
- compliance
- address: aitbc1analytics
balance: '1000000'
type: service
metadata:
purpose: Advanced Analytics service account
service_type: advanced_analytics
features:
- real_time_analytics
- reporting
- metrics
- address: aitbc1marketplace
balance: '2000000'
type: service
metadata:
purpose: Global Marketplace service account
service_type: global_marketplace
features:
- trading
- liquidity
- cross_chain
- address: aitbc1enterprise
balance: '3000000'
type: service
metadata:
purpose: Enterprise Integration service account
service_type: enterprise_api_gateway
features:
- api_gateway
- multi_tenant
- security
- address: aitbc1multimodal
balance: '1500000'
type: service
metadata:
purpose: Multi-modal AI service account
service_type: multimodal_agent
features:
- gpu_acceleration
- modality_optimization
- fusion
- address: aitbc1zkproofs
balance: '1000000'
type: service
metadata:
purpose: Zero-Knowledge Proofs service account
service_type: zk_proofs
features:
- zk_circuits
- verification
- privacy
- address: aitbc1crosschain
balance: '2000000'
type: service
metadata:
purpose: Cross-chain bridge service account
service_type: cross_chain_bridge
features:
- bridge
- atomic_swap
- reputation
- address: aitbc1developer1
balance: '500000'
type: developer
metadata:
purpose: Primary developer testing account
permissions:
- full_access
- service_deployment
- address: aitbc1developer2
balance: '300000'
type: developer
metadata:
purpose: Secondary developer testing account
permissions:
- testing
- debugging
- address: aitbc1tester
balance: '200000'
type: tester
metadata:
purpose: Automated testing account
permissions:
- testing_only
contracts:
- name: AITBCToken
address: '0x0000000000000000000000000000000000001000'
type: ERC20
metadata:
symbol: AITBC-E
decimals: 18
initial_supply: '21000000000000000000000000'
purpose: Enhanced network token with chain-specific isolation
- name: AISurveillanceRegistry
address: '0x0000000000000000000000000000000000001001'
type: Registry
metadata:
purpose: Registry for AI surveillance patterns and alerts
features:
- pattern_registration
- alert_management
- risk_scoring
- name: AnalyticsOracle
address: '0x0000000000000000000000000000000000001002'
type: Oracle
metadata:
purpose: Oracle for advanced analytics data feeds
features:
- price_feeds
- market_data
- performance_metrics
- name: CrossChainBridge
address: '0x0000000000000000000000000000000000001003'
type: Bridge
metadata:
purpose: Cross-chain bridge for asset transfers
features:
- atomic_swaps
- reputation_system
- chain_isolation
- name: EnterpriseGateway
address: '0x0000000000000000000000000000000000001004'
type: Gateway
metadata:
purpose: Enterprise API gateway with multi-tenant support
features:
- api_management
- tenant_isolation
- security
parameters:
block_time: 3
max_block_size: 2097152
min_stake: 1000
max_validators: 100
block_reward: '2000000000000000000'
stake_reward_rate: '0.05'
governance_threshold: '0.51'
surveillance_threshold: '0.75'
analytics_retention: 86400
cross_chain_fee: '10000000000000000'
enterprise_min_stake: 10000
privacy:
access_control: permissioned
require_invitation: false
visibility: public
encryption: enabled
zk_proofs: enabled
audit_logging: enabled
features:
ai_trading_engine: true
ai_surveillance: true
advanced_analytics: true
enterprise_integration: true
multi_modal_ai: true
zk_proofs: true
cross_chain_bridge: true
global_marketplace: true
adaptive_learning: true
performance_monitoring: true
services:
ai_trading_engine:
port: 8010
enabled: true
config:
models:
- mean_reversion
- momentum
- arbitrage
risk_threshold: 0.02
max_positions: 100
ai_surveillance:
port: 8011
enabled: true
config:
risk_models:
- isolation_forest
- neural_network
alert_threshold: 0.85
retention_days: 30
advanced_analytics:
port: 8012
enabled: true
config:
indicators:
- rsi
- macd
- bollinger
- volume
update_interval: 60
history_retention: 86400
enterprise_gateway:
port: 8013
enabled: true
config:
max_tenants: 1000
rate_limit: 1000
auth_required: true
multimodal_ai:
port: 8014
enabled: true
config:
gpu_acceleration: true
modalities:
- text
- image
- audio
fusion_model: transformer_based
zk_proofs:
port: 8015
enabled: true
config:
circuit_types:
- receipt
- identity
- compliance
verification_speed: fast
memory_optimization: true
network:
max_peers: 50
min_peers: 5
boot_nodes:
- ait1bootnode0000000000000000000000000000000:8008
- ait1bootnode0000000000000000000000000000001:8008
propagation_timeout: 30
sync_mode: fast
governance:
voting_period: 604800
execution_delay: 86400
proposal_threshold: '1000000000000000000000000'
quorum_rate: '0.40'
emergency_pause: true
multi_signature: true
economics:
total_supply: '21000000000000000000000000'
inflation_rate: '0.02'
burn_rate: '0.01'
treasury_allocation: '0.20'
staking_allocation: '0.30'
ecosystem_allocation: '0.25'
team_allocation: '0.15'
community_allocation: '0.10'

View File

@@ -0,0 +1,76 @@
# Multi-Chain Genesis Configuration Example
chains:
ait-devnet:
genesis:
chain_id: "ait-devnet"
chain_type: "main"
purpose: "development"
name: "AITBC Development Network"
description: "Development network for AITBC multi-chain testing"
timestamp: "2026-03-06T18:00:00Z"
parent_hash: "0x0000000000000000000000000000000000000000000000000000000000000000"
gas_limit: 10000000
gas_price: 1000000000
consensus:
algorithm: "poa"
validators:
- "ait1devproposer000000000000000000000000000000"
accounts:
- address: "aitbc1genesis"
balance: 1000000
- address: "aitbc1faucet"
balance: 100000
parameters:
block_time: 5
max_block_size: 1048576
min_stake: 1000
ait-testnet:
genesis:
chain_id: "ait-testnet"
chain_type: "topic"
purpose: "testing"
name: "AITBC Test Network"
description: "Test network for AITBC multi-chain validation"
timestamp: "2026-03-06T18:00:00Z"
parent_hash: "0x0000000000000000000000000000000000000000000000000000000000000000"
gas_limit: 5000000
gas_price: 2000000000
consensus:
algorithm: "poa"
validators:
- "ait1testproposer000000000000000000000000000000"
accounts:
- address: "aitbc1testgenesis"
balance: 500000
- address: "aitbc1testfaucet"
balance: 50000
parameters:
block_time: 10
max_block_size: 524288
min_stake: 500
ait-mainnet:
genesis:
chain_id: "ait-mainnet"
chain_type: "main"
purpose: "production"
name: "AITBC Main Network"
description: "Main production network for AITBC"
timestamp: "2026-03-06T18:00:00Z"
parent_hash: "0x0000000000000000000000000000000000000000000000000000000000000000"
gas_limit: 20000000
gas_price: 500000000
consensus:
algorithm: "pos"
validators:
- "ait1mainvalidator000000000000000000000000000000"
accounts:
- address: "aitbc1maingenesis"
balance: 2100000000
- address: "aitbc1mainfaucet"
balance: 1000000
parameters:
block_time: 15
max_block_size: 2097152
min_stake: 10000

View File

@@ -0,0 +1,30 @@
chain_id: "aitbc-enhanced-devnet"
chain_type: "topic"
purpose: "development-with-new-features"
name: "AITBC Enhanced Devnet"
description: "Enhanced development network with AI trading, surveillance, analytics, and multi-chain features"
consensus:
algorithm: "poa"
authorities:
- "ait1devproposer000000000000000000000000000000"
- "ait1aivalidator00000000000000000000000000000"
- "ait1surveillance0000000000000000000000000000"
block_time: 3
max_validators: 100
parameters:
block_reward: "2000000000000000000"
max_block_size: 2097152
max_gas_per_block: 15000000
min_gas_price: 1000000000
min_stake: 1000
features:
ai_trading_engine: true
ai_surveillance: true
advanced_analytics: true
enterprise_integration: true
multi_modal_ai: true
zk_proofs: true
cross_chain_bridge: true
global_marketplace: true
adaptive_learning: true
performance_monitoring: true

View File

@@ -0,0 +1,8 @@
genesis:
chain_type: topic
consensus:
algorithm: pos
name: Test Chain
privacy:
visibility: public
purpose: test

View File

@@ -26,12 +26,12 @@ Successfully deployed two independent AITBC blockchain nodes on the same server
### Systemd Services ### Systemd Services
```bash ```bash
# Node 1 # Node 1
sudo systemctl status blockchain-node # Consensus node systemctl status blockchain-node # Consensus node
sudo systemctl status blockchain-rpc # RPC API systemctl status blockchain-rpc # RPC API
# Node 2 # Node 2
sudo systemctl status blockchain-node-2 # Consensus node systemctl status blockchain-node-2 # Consensus node
sudo systemctl status blockchain-rpc-2 # RPC API systemctl status blockchain-rpc-2 # RPC API
``` ```
### API Endpoints ### API Endpoints

View File

@@ -36,7 +36,7 @@ These services already had the `aitbc-` prefix:
### Check Service Status ### Check Service Status
```bash ```bash
# Site A (via SSH) # Site A (via SSH)
ssh aitbc-cascade "systemctl status aitbc-blockchain-node-1.service" ssh aitbc "systemctl status aitbc-blockchain-node-1.service"
# Site B (via SSH) # Site B (via SSH)
ssh ns3-root "incus exec aitbc -- systemctl status aitbc-blockchain-node-3.service" ssh ns3-root "incus exec aitbc -- systemctl status aitbc-blockchain-node-3.service"
@@ -45,16 +45,16 @@ ssh ns3-root "incus exec aitbc -- systemctl status aitbc-blockchain-node-3.servi
### Restart Services ### Restart Services
```bash ```bash
# Site A # Site A
ssh aitbc-cascade "sudo systemctl restart aitbc-blockchain-node-1.service" ssh aitbc "systemctl restart aitbc-blockchain-node-1.service"
# Site B # Site B
ssh ns3-root "incus exec aitbc -- sudo systemctl restart aitbc-blockchain-node-3.service" ssh ns3-root "incus exec aitbc -- systemctl restart aitbc-blockchain-node-3.service"
``` ```
### View Logs ### View Logs
```bash ```bash
# Site A # Site A
ssh aitbc-cascade "journalctl -u aitbc-blockchain-node-1.service -f" ssh aitbc "journalctl -u aitbc-blockchain-node-1.service -f"
# Site B # Site B
ssh ns3-root "incus exec aitbc -- journalctl -u aitbc-blockchain-node-3.service -f" ssh ns3-root "incus exec aitbc -- journalctl -u aitbc-blockchain-node-3.service -f"

View File

@@ -11,7 +11,7 @@
- `pyproject.toml` - Python project configuration - `pyproject.toml` - Python project configuration
- `poetry.lock` - Dependency lock file - `poetry.lock` - Dependency lock file
- `pytest.ini` - Test configuration - `pytest.ini` - Test configuration
- `run_all_tests.sh` - Main test runner - `scripts/testing/run_all_tests.sh` - Main test runner
### Development Scripts → `dev/scripts/` ### Development Scripts → `dev/scripts/`
```bash ```bash

View File

@@ -35,11 +35,11 @@ This document provides comprehensive technical documentation for aitbc enhanced
**🔧 Service Scripts Created:** **🔧 Service Scripts Created:**
```bash ```bash
/opt/aitbc/scripts/multimodal_gpu_service.py # Port 8010 /opt/aitbc/scripts/services/multimodal_gpu_service.py # Port 8010
/opt/aitbc/scripts/gpu_multimodal_service.py # Port 8011 /opt/aitbc/scripts/services/gpu_multimodal_service.py # Port 8011
/opt/aitbc/scripts/modality_optimization_service.py # Port 8012 /opt/aitbc/scripts/services/modality_optimization_service.py # Port 8012
/opt/aitbc/scripts/adaptive_learning_service.py # Port 8013 /opt/aitbc/scripts/services/adaptive_learning_service.py # Port 8013
/opt/aitbc/scripts/web_ui_service.py # Port 8016 /opt/aitbc/scripts/services/web_ui_service.py # Port 8016
``` ```
**🔧 Systemd Services Updated:** **🔧 Systemd Services Updated:**

View File

@@ -77,10 +77,10 @@ MEMPOOL_BACKEND=database
## Systemd Services (Production) ## Systemd Services (Production)
```bash ```bash
sudo cp systemd/aitbc-*.service /etc/systemd/system/ cp systemd/aitbc-*.service /etc/systemd/system/
sudo systemctl daemon-reload systemctl daemon-reload
sudo systemctl enable --now aitbc-coordinator-api systemctl enable --now aitbc-coordinator-api
sudo systemctl enable --now aitbc-blockchain-node-1 systemctl enable --now aitbc-blockchain-node-1
``` ```
## Verify ## Verify

View File

@@ -286,7 +286,7 @@ free -h
systemctl status aitbc-adaptive-learning.service --no-pager systemctl status aitbc-adaptive-learning.service --no-pager
# Adjust memory limits # Adjust memory limits
sudo systemctl edit aitbc-adaptive-learning.service systemctl edit aitbc-adaptive-learning.service
``` ```
### Performance Optimization ### Performance Optimization
@@ -304,7 +304,7 @@ export CUDA_LAUNCH_BLOCKING=1
#### 2. Service Tuning #### 2. Service Tuning
```bash ```bash
# Adjust service resources # Adjust service resources
sudo systemctl edit aitbc-multimodal.service systemctl edit aitbc-multimodal.service
# Add: # Add:
# [Service] # [Service]
# MemoryMax=4G # MemoryMax=4G
@@ -372,7 +372,7 @@ sudo -u postgres psql aitbc < aitbc-db-backup.sql
./manage_services.sh stop ./manage_services.sh stop
# Emergency restart # Emergency restart
sudo systemctl daemon-reload systemctl daemon-reload
./manage_services.sh start ./manage_services.sh start
# Check system status # Check system status

View File

@@ -2,7 +2,7 @@
This document describes the current organization and status of files and folders in the repository. This document describes the current organization and status of files and folders in the repository.
Last updated: 2026-03-06 Last updated: 2026-03-25
--- ---
@@ -21,7 +21,18 @@ Last updated: 2026-03-06
| `apps/coordinator-api/tests/test_gpu_marketplace.py` | ✅ Active | 22 GPU marketplace tests (Feb 2026) | | `apps/coordinator-api/tests/test_gpu_marketplace.py` | ✅ Active | 22 GPU marketplace tests (Feb 2026) |
| `apps/coordinator-api/tests/test_billing.py` | ✅ Active | 21 billing/usage-tracking tests (Feb 2026) | | `apps/coordinator-api/tests/test_billing.py` | ✅ Active | 21 billing/usage-tracking tests (Feb 2026) |
| `apps/coordinator-api/tests/conftest.py` | ✅ Active | App namespace isolation for coordinator tests | | `apps/coordinator-api/tests/conftest.py` | ✅ Active | App namespace isolation for coordinator tests |
| `tests/cli/test_cli_integration.py` | ✅ Active | 24 CLI → live coordinator integration tests (Feb 2026) | | `tests/` | ✅ Active | Test suites (reorganized Mar 2026) |
| `tests/cli/` | ✅ Active | CLI tests (28 files, organized Mar 2026) |
| `tests/integration/` | ✅ Active | Integration tests (28 files, organized Mar 2026) |
| `tests/security/` | ✅ Active | Security tests (5 files, organized Mar 2026) |
| `tests/explorer/` | ✅ Active | Explorer tests (2 files, organized Mar 2026) |
| `tests/websocket/` | ✅ Active | WebSocket tests (2 files, organized Mar 2026) |
| `tests/testing/` | ✅ Active | Performance/testing utilities (25 files, organized Mar 2026) |
| `tests/unit/` | ✅ Active | Unit tests (9 files, organized Mar 2026) |
| `tests/e2e/` | ✅ Active | End-to-end tests (26 files, organized Mar 2026) |
| `tests/docs/` | ✅ Active | Test documentation (5 files, organized Mar 2026) |
| `tests/conftest.py` | ✅ Active | Test configuration (root level) |
| `tests/test_runner.py` | ✅ Active | Test runner (root level) |
### Scripts (`scripts/`) ### Scripts (`scripts/`)
@@ -29,12 +40,16 @@ Last updated: 2026-03-06
|------|--------|-------| |------|--------|-------|
| `scripts/aitbc-cli.sh` | ✅ Active | Main CLI tool, heavily used | | `scripts/aitbc-cli.sh` | ✅ Active | Main CLI tool, heavily used |
| `scripts/dev/gpu/gpu_miner_host.py` | ✅ Active | Production GPU miner, standardized (Mar 2026) | | `scripts/dev/gpu/gpu_miner_host.py` | ✅ Active | Production GPU miner, standardized (Mar 2026) |
| `scripts/deploy/` | ✅ Active | Deployment scripts (35 files) | | `scripts/services/` | ✅ Active | Service files (5 FastAPI services, moved Mar 2026) |
| `scripts/deploy/deploy-multimodal-services.sh` | ✅ Active | Environment-aware multimodal deployment (Mar 2026) | | `scripts/deployment/` | ✅ Active | Deployment scripts (35 files, organized Mar 2026) |
| `scripts/verify-codebase-update.sh` | ✅ Active | Automated codebase verification (Mar 2026) | | `scripts/testing/` | ✅ Active | Test scripts (20 files, organized Mar 2026) |
| `scripts/service/` | ✅ Active | Service management | | `scripts/monitoring/` | ✅ Active | Monitoring scripts (3 files, organized Mar 2026) |
| `scripts/dev_services.sh` | ✅ Active | Local development | | `scripts/development/` | ✅ Active | Development scripts (6 files, organized Mar 2026) |
| `scripts/testing/` | ✅ Active | Test scripts (moved from root, 13 files) | | `scripts/utils/` | ✅ Active | Utility scripts (40 files, organized Mar 2026) |
| `scripts/manage-services.sh` | ✅ Active | Main service management script (updated Mar 2026) |
| `scripts/README.md` | ✅ Active | Scripts documentation |
| `scripts/deploy/` | ✅ Active | Legacy deployment scripts (27 files) |
| `scripts/gpu/` | ✅ Active | GPU service scripts (9 files, moved to services/) |
### Infrastructure (`infra/`, `systemd/`) ### Infrastructure (`infra/`, `systemd/`)
@@ -65,7 +80,10 @@ Last updated: 2026-03-06
| Path | Status | Notes | | Path | Status | Notes |
|------|--------|-------| |------|--------|-------|
| `docs/1_project/` | ✅ Active | Project management docs (restructured) | | `docs/1_project/` | ✅ Active | Project management docs (updated Mar 2026) |
| `docs/1_project/aitbc.md` | ✅ Active | Secondary server deployment guide (updated Mar 2026) |
| `docs/1_project/aitbc1.md` | ✅ Active | Primary server deployment guide (updated Mar 2026) |
| `docs/1_project/3_infrastructure.md` | ✅ Active | Infrastructure documentation (updated Mar 2026) |
| `docs/infrastructure/` | ✅ Active | Infrastructure documentation (Mar 2026) | | `docs/infrastructure/` | ✅ Active | Infrastructure documentation (Mar 2026) |
| `docs/infrastructure/codebase-update-summary.md` | ✅ Active | Comprehensive standardization summary (Mar 2026) | | `docs/infrastructure/codebase-update-summary.md` | ✅ Active | Comprehensive standardization summary (Mar 2026) |
| `docs/DOCS_WORKFLOW_COMPLETION_SUMMARY.md` | ✅ Active | Documentation updates completion (Mar 2026) | | `docs/DOCS_WORKFLOW_COMPLETION_SUMMARY.md` | ✅ Active | Documentation updates completion (Mar 2026) |
@@ -259,11 +277,26 @@ These empty folders are intentional scaffolding for planned future work per the
- **Workflows documented** for repeatable processes - **Workflows documented** for repeatable processes
- **File organization prevention** system implemented - **File organization prevention** system implemented
### ✅ CLI Development Environment Optimization (March 6, 2026) ### ✅ Complete Scripts and Tests Organization (March 25, 2026)
- **CLI development tools** moved from `cli-dev` to `dev/cli` - **Scripts organized** by purpose into 6 categories (services, deployment, testing, monitoring, development, utils)
- **Centralized development** environment in unified `/dev/` structure - **Test files organized** by function into 9 categories (cli, integration, security, explorer, websocket, testing, unit, e2e, docs)
- **Improved project organization** with reduced root-level clutter - **Service scripts** moved to dedicated `scripts/services/` folder
- **Backup system** implemented with proper git exclusion - **Documentation updated** to reflect new file locations
- **No codebase rewrites** needed - all paths already properly configured
### ✅ Server Architecture Updates (March 25, 2026)
- **aitbc1** established as primary server (https://aitbc1.bubuit.net) with reverse proxy role
- **aitbc** established as secondary server (https://aitbc.bubuit.net) with application services
- **SSH access** simplified to `ssh aitbc` and `ssh aitbc1` (root login, no sudo needed)
- **Deployment guides** updated to reflect new primary/secondary architecture
- **Infrastructure documentation** updated for two-server setup
### ✅ Documentation Standardization (March 25, 2026)
- **All sudo references** removed from systemctl commands (root access)
- **SSH references** updated to use new server names
- **Service paths** updated in documentation to reflect new organization
- **12 documentation files** updated across the codebase
- **Consistent command patterns** applied throughout
### ✅ Explorer Architecture Simplification (March 6, 2026) ### ✅ Explorer Architecture Simplification (March 6, 2026)
- **TypeScript explorer** merged into Python blockchain-explorer - **TypeScript explorer** merged into Python blockchain-explorer
@@ -319,12 +352,30 @@ aitbc/
│ ├── py/aitbc-sdk/ # Python SDK │ ├── py/aitbc-sdk/ # Python SDK
│ └── solidity/aitbc-token/# ERC-20 token contract │ └── solidity/aitbc-token/# ERC-20 token contract
├── plugins/ # ✅ Keep (ollama) ├── plugins/ # ✅ Keep (ollama)
├── scripts/ # ✅ Keep - organized by purpose ├── scripts/ # ✅ Scripts organized by purpose (Mar 2026)
│ ├── deploy/ # ✅ Deployment scripts (35 files) │ ├── services/ # ✅ Service files (5 FastAPI services)
│ ├── dev/ # ✅ Development scripts │ ├── deployment/ # ✅ Deployment scripts (35 files)
── testing/ # ✅ Test scripts ── testing/ # ✅ Test scripts (20 files)
│ ├── monitoring/ # ✅ Monitoring scripts (3 files)
│ ├── development/ # ✅ Development scripts (6 files)
│ ├── utils/ # ✅ Utility scripts (40 files)
│ ├── deploy/ # ✅ Legacy deployment scripts (27 files)
│ ├── gpu/ # ✅ GPU service scripts (9 files)
│ ├── manage-services.sh # ✅ Main service management script
│ └── README.md # ✅ Scripts documentation
├── systemd/ # ✅ Systemd service units (19+ files) ├── systemd/ # ✅ Systemd service units (19+ files)
├── tests/ # ✅ Test suites ├── tests/ # ✅ Test suites organized by function (Mar 2026)
│ ├── cli/ # ✅ CLI tests (28 files)
│ ├── integration/ # ✅ Integration tests (28 files)
│ ├── security/ # ✅ Security tests (5 files)
│ ├── explorer/ # ✅ Explorer tests (2 files)
│ ├── websocket/ # ✅ WebSocket tests (2 files)
│ ├── testing/ # ✅ Performance/testing utilities (25 files)
│ ├── unit/ # ✅ Unit tests (9 files)
│ ├── e2e/ # ✅ End-to-end tests (26 files)
│ ├── docs/ # ✅ Test documentation (5 files)
│ ├── conftest.py # ✅ Test configuration
│ └── test_runner.py # ✅ Test runner
├── website/ # ✅ Public website and HTML docs ├── website/ # ✅ Public website and HTML docs
├── dev-utils/ # ✅ Development utilities (legacy) ├── dev-utils/ # ✅ Development utilities (legacy)
├── data/ # ✅ Runtime data (gitignored) ├── data/ # ✅ Runtime data (gitignored)
@@ -335,12 +386,14 @@ aitbc/
This structure represents the current clean state of the AITBC repository with all essential components organized for optimal development and deployment workflows. The March 2026 standardization effort has resulted in: This structure represents the current clean state of the AITBC repository with all essential components organized for optimal development and deployment workflows. The March 2026 standardization effort has resulted in:
- **100% service standardization** across all systemd services - **100% service standardization** across all systemd services
- **Improved file organization** with proper dev/ structure - **Complete scripts and tests organization** by purpose and function
- **Updated server architecture** with primary/secondary server setup
- **Enhanced documentation** with comprehensive infrastructure guides - **Enhanced documentation** with comprehensive infrastructure guides
- **Automated verification tools** for maintaining standards - **Automated verification tools** for maintaining standards
- **Production-ready infrastructure** with all services operational - **Production-ready infrastructure** with all services operational
- **Optimized CLI development** with centralized dev/cli environment - **Optimized CLI development** with centralized dev/cli environment
- **Agent-first architecture** with simplified explorer service - **Agent-first architecture** with simplified explorer service
- **Comprehensive backup system** with proper git exclusion - **Comprehensive backup system** with proper git exclusion
- **Standardized SSH access** with root privileges and no sudo requirements
**Note**: Redundant `apps/logs/` directory removed - central `logs/` directory at root level is used for all logging. Redundant `assets/` directory removed - Firefox extension assets are properly organized in `extensions/aitbc-wallet-firefox/`. CLI development environment moved from `cli-dev` to `dev/cli` for better organization. Explorer TypeScript source merged into Python service and backed up. **Note**: Redundant `apps/logs/` directory removed - central `logs/` directory at root level is used for all logging. Redundant `assets/` directory removed - Firefox extension assets are properly organized in `extensions/aitbc-wallet-firefox/`. CLI development environment moved from `cli-dev` to `dev/cli` for better organization. Explorer TypeScript source merged into Python service and backed up.

View File

@@ -110,6 +110,26 @@ This roadmap aggregates high-priority tasks derived from the bootstrap specifica
- ✅ Performance validation against deployment report targets - ✅ Performance validation against deployment report targets
- ✅ Complete documentation and usage guides - ✅ Complete documentation and usage guides
## Stage 28 — Project File Organization & Documentation Updates [COMPLETED: 2026-03-25]
- **Root Directory Cleanup**
- ✅ Move 60+ loose files from root to proper subdirectories
- ✅ Organize development scripts into `dev/review/`, `dev/fixes/`, `scripts/testing/`
- ✅ Organize configuration files into `config/genesis/`, `config/networks/`, `config/templates/`
- ✅ Move documentation to `docs/development/`, `docs/deployment/`, `docs/project/`
- ✅ Organize temporary files into `temp/backups/`, `temp/patches/`, `logs/qa/`
- **File Organization Workflow**
- ✅ Create `/organize-project-files` workflow for systematic file management
- ✅ Implement dependency analysis to prevent codebreak from file moves
- ✅ Establish categorization rules for different file types
- ✅ Verify essential root files remain (configuration, documentation, system files)
- **Documentation Updates**
- ✅ Update project completion status in `docs/1_project/5_done.md`
- ✅ Reflect file organization milestone in roadmap documentation
- ✅ Ensure all documentation references point to correct file locations
## Current Status: Agent-First Transformation Complete ## Current Status: Agent-First Transformation Complete
**Milestone Achievement**: Successfully transformed AITBC to agent-first architecture with comprehensive CLI tools, enhanced services deployment, and complete end-to-end testing framework. All 22 commands from README are fully implemented with complete test coverage and documentation. **Milestone Achievement**: Successfully transformed AITBC to agent-first architecture with comprehensive CLI tools, enhanced services deployment, and complete end-to-end testing framework. All 22 commands from README are fully implemented with complete test coverage and documentation.

View File

@@ -4,21 +4,21 @@
## Overview ## Overview
Two-tier architecture: **incus host (at1)** runs the reverse proxy with SSL termination, forwarding all `aitbc.bubuit.net` traffic to the **aitbc container** which runs nginx + all services. **Updated for port logic 8000+ implementation with unified numbering scheme and production-ready codebase.** Two-tier architecture: **aitbc1 primary server** (https://aitbc1.bubuit.net) and **aitbc secondary server** (https://aitbc.bubuit.net) with **aitbc1 as reverse proxy** forwarding all traffic to aitbc container services. **Updated for port logic 8000+ implementation with unified numbering scheme and production-ready codebase.**
``` ```
Internet → aitbc.bubuit.net (HTTPS :443) Internet → aitbc1.bubuit.net (HTTPS :443) → aitbc.bubuit.net
┌──────────────────────────────────────────────┐ ┌──────────────────────────────────────────────┐
Incus Host (at1 / localhost) aitbc1 Primary Server (Reverse Proxy)
│ Nginx reverse proxy (:443 SSL → :80) │ │ Nginx reverse proxy (:443 SSL → :80) │
│ Config: /etc/nginx/sites-available/ │ │ Config: /etc/nginx/sites-available/ │
│ aitbc-proxy.conf │ │ aitbc-proxy.conf │
│ │ │ │
│ ┌────────────────────────────────────────┐ │ │ ┌────────────────────────────────────────┐ │
│ │ Container: aitbc (10.1.223.1) │ │ │ │ Container: aitbc (aitbc server) │ │
│ │ Access: ssh aitbc-cascade │ │ │ │ Access: ssh aitbc │ │
│ │ OS: Debian 13 Trixie │ │ │ │ OS: Debian 13 Trixie │ │
│ │ Node.js: 24+ │ │ │ │ Node.js: 24+ │ │
│ │ Python: 3.13.5+ │ │ │ │ Python: 3.13.5+ │ │
@@ -170,8 +170,8 @@ On at1, `/opt/aitbc` uses individual symlinks to the Windsurf project directorie
sc-status aitbc-blockchain-node.service aitbc-blockchain-rpc.service aitbc-gpu-miner.service aitbc-mock-coordinator.service sc-status aitbc-blockchain-node.service aitbc-blockchain-rpc.service aitbc-gpu-miner.service aitbc-mock-coordinator.service
# Start services # Start services
sudo systemctl start aitbc-mock-coordinator.service systemctl start aitbc-mock-coordinator.service
sudo systemctl start aitbc-blockchain-node.service systemctl start aitbc-blockchain-node.service
# Check logs # Check logs
journalctl -u aitbc-mock-coordinator --no-pager -n 20 journalctl -u aitbc-mock-coordinator --no-pager -n 20
@@ -260,7 +260,7 @@ server {
### Access ### Access
```bash ```bash
ssh aitbc-cascade # Direct SSH to container ssh aitbc # Direct SSH to aitbc server
``` ```
**GPU Access**: No GPU passthrough. All GPU workloads must run on **at1** (Windsurf development host), not inside incus containers. **GPU Access**: No GPU passthrough. All GPU workloads must run on **at1** (Windsurf development host), not inside incus containers.
@@ -378,16 +378,26 @@ All Python services in the AITBC container run on **Python 3.13.5** with isolate
# Note: Standardized /opt/aitbc structure for all services # Note: Standardized /opt/aitbc structure for all services
``` ```
**Verification Commands:** **Minimum Default Verification Commands:**
```bash ```bash
ssh aitbc-cascade "python3 --version" # Should show Python 3.13.5 # From aitbc1 primary server
ssh aitbc-cascade "node --version" # Should show v24.14.x ssh aitbc "python3 --version" # Should show Python 3.13.5
ssh aitbc-cascade "npm --version" # Should show compatible version ssh aitbc "node --version" # Should show v24.14.x
ssh aitbc-cascade "ls -la /opt/*/.venv/bin/python" # Check venv symlinks ssh aitbc "npm --version" # Should show compatible version
ssh aitbc-cascade "curl -s http://127.0.0.1:8000/v1/health" # Coordinator API health ssh aitbc "ls -la /opt/*/.venv/bin/python" # Check venv symlinks
ssh aitbc "curl -s http://127.0.0.1:8000/v1/health" # Coordinator API health
curl -s https://aitbc.bubuit.net/api/v1/health # External API access curl -s https://aitbc.bubuit.net/api/v1/health # External API access
``` ```
**SSH Access:**
```bash
# From aitbc1 to aitbc (secondary server)
ssh aitbc
# From aitbc to aitbc1 (primary server)
ssh aitbc1
```
### Nginx Routes (container) ### Nginx Routes (container)
Config: `/etc/nginx/sites-enabled/aitbc` Config: `/etc/nginx/sites-enabled/aitbc`
@@ -549,25 +559,25 @@ curl http://aitbc.keisanki.net/rpc/head # Node 3 RPC (port 8003)
### Deploying to Container ### Deploying to Container
```bash ```bash
# Push website files # Push website files
scp -r website/* aitbc-cascade:/var/www/aitbc.bubuit.net/ scp -r website/* aitbc:/var/www/aitbc.bubuit.net/
# Push app updates (blockchain-explorer serves its own interface) # Push app updates (blockchain-explorer serves its own interface)
# No separate deployment needed - blockchain-explorer handles both API and UI # No separate deployment needed - blockchain-explorer handles both API and UI
# Restart a service # Restart a service
ssh aitbc-cascade "systemctl restart coordinator-api" ssh aitbc "systemctl restart coordinator-api"
``` ```
## Health Checks ## Health Checks
```bash ```bash
# From at1 (via container) # From aitbc1 (via aitbc server)
ssh aitbc-cascade "curl -s http://localhost:8000/v1/health" ssh aitbc "curl -s http://localhost:8000/v1/health"
ssh aitbc-cascade "curl -s http://localhost:8003/rpc/head | jq .height" ssh aitbc "curl -s http://localhost:8003/rpc/head | jq .height"
# Test enhanced services # Test enhanced services
ssh aitbc-cascade "curl -s http://localhost:8010/health" # Multimodal GPU (CPU-only) ssh aitbc "curl -s http://localhost:8010/health" # Multimodal GPU (CPU-only)
ssh aitbc-cascade "curl -s http://localhost:8017/health" # Geographic Load Balancer ssh aitbc "curl -s http://localhost:8017/health" # Geographic Load Balancer
# From internet (Python 3.13.5 upgraded services) # From internet (Python 3.13.5 upgraded services)
curl -s https://aitbc.bubuit.net/health curl -s https://aitbc.bubuit.net/health
@@ -582,25 +592,25 @@ curl -s https://aitbc.bubuit.net/api/loadbalancer/health
ssh ns3-root "curl -s http://192.168.100.10:8003/rpc/head | jq .height" ssh ns3-root "curl -s http://192.168.100.10:8003/rpc/head | jq .height"
# Python version verification # Python version verification
ssh aitbc-cascade "python3 --version" # Python 3.13.5 ssh aitbc "python3 --version" # Python 3.13.5
``` ```
## Monitoring and Logging ## Monitoring and Logging
```bash ```bash
# Container systemd logs # Container systemd logs
ssh aitbc-cascade "journalctl -u aitbc-coordinator-api --no-pager -n 20" ssh aitbc "journalctl -u aitbc-coordinator-api --no-pager -n 20"
ssh aitbc-cascade "journalctl -u aitbc-blockchain-node --no-pager -n 20" ssh aitbc "journalctl -u aitbc-blockchain-node --no-pager -n 20"
# Enhanced services logs # Enhanced services logs
ssh aitbc-cascade "journalctl -u aitbc-multimodal-gpu --no-pager -n 20" ssh aitbc "journalctl -u aitbc-multimodal-gpu --no-pager -n 20"
ssh aitbc-cascade "journalctl -u aitbc-loadbalancer-geo --no-pager -n 20" ssh aitbc "journalctl -u aitbc-loadbalancer-geo --no-pager -n 20"
# Container nginx logs # Container nginx logs
ssh aitbc-cascade "tail -20 /var/log/nginx/aitbc.bubuit.net.error.log" ssh aitbc "tail -20 /var/log/nginx/aitbc.bubuit.net.error.log"
# Host nginx logs # Host nginx logs
sudo tail -20 /var/log/nginx/error.log tail -20 /var/log/nginx/error.log
``` ```
## Security ## Security
@@ -645,21 +655,19 @@ PORT=8010-8017 # Enhanced services port range
### Container Access & Port Logic (Updated March 6, 2026) ### Container Access & Port Logic (Updated March 6, 2026)
#### **SSH-Based Container Access** #### **SSH-Based Server Access**
```bash ```bash
# Access aitbc container # Access aitbc server
ssh aitbc-cascade ssh aitbc
# Access aitbc1 container # Access aitbc1 server (from incus host only)
ssh aitbc1-cascade ssh aitbc1-cascade
# Check services in containers # Check services in servers
ssh aitbc-cascade 'systemctl list-units | grep aitbc-' ssh aitbc 'systemctl list-units | grep aitbc-'
ssh aitbc1-cascade 'systemctl list-units | grep aitbc-'
# Debug specific services # Debug specific services
ssh aitbc-cascade 'systemctl status aitbc-coordinator-api' ssh aitbc 'systemctl status aitbc-coordinator-api'
ssh aitbc1-cascade 'systemctl status aitbc-wallet'
``` ```
#### **Port Distribution Strategy - NEW STANDARD** #### **Port Distribution Strategy - NEW STANDARD**
@@ -731,28 +739,22 @@ ssh aitbc1-cascade 'systemctl status aitbc-wallet'
# Check port usage # Check port usage
netstat -tlnp | grep -E ":(800[0-5]|801[0-7]|802[0-9])" netstat -tlnp | grep -E ":(800[0-5]|801[0-7]|802[0-9])"
ssh aitbc-cascade 'netstat -tlnp | grep -E ":(800[0-5]|801[0-7]|802[0-9])" ssh aitbc 'netstat -tlnp | grep -E ":(800[0-5]|801[0-7]|802[0-9])'
ssh aitbc1-cascade 'netstat -tlnp | grep -E ":(800[0-5]|801[0-7]|802[0-9])"
# Service Management Commands: # Service Management Commands:
# Primary services: # Primary services:
systemctl status aitbc-blockchain-node.service # localhost systemctl status aitbc-blockchain-node.service # localhost
systemctl status aitbc-blockchain-rpc.service # localhost (port 8006) systemctl status aitbc-blockchain-rpc.service # localhost (port 8006)
systemctl status aitbc-wallet.service # localhost (port 8002) systemctl status aitbc-wallet.service # localhost (port 8002)
ssh aitbc-cascade 'systemctl status aitbc-blockchain-node.service' # aitbc container ssh aitbc 'systemctl status aitbc-blockchain-node.service' # aitbc server
ssh aitbc1-cascade 'systemctl status aitbc-blockchain-node.service' # aitbc1 container
# Wallet services: # Wallet services:
ssh aitbc-cascade 'systemctl status aitbc-wallet.service' # port 8002 ssh aitbc 'systemctl status aitbc-wallet.service' # port 8002
ssh aitbc1-cascade 'systemctl status aitbc-wallet.service' # port 8002
# RPC services: # RPC services:
ssh aitbc-cascade 'systemctl status aitbc-blockchain-rpc.service' # port 8006 ssh aitbc 'systemctl status aitbc-blockchain-rpc.service' # port 8006
ssh aitbc1-cascade 'systemctl status aitbc-blockchain-rpc.service' # port 8006 ssh aitbc 'systemctl status aitbc-blockchain-rpc-dev.service' # port 8026
ssh aitbc-cascade 'systemctl status aitbc-blockchain-rpc-dev.service' # port 8026
ssh aitbc1-cascade 'systemctl status aitbc-blockchain-rpc-dev.service' # port 8026
# Development services: # Development services:
ssh aitbc-cascade 'systemctl status aitbc-blockchain-node-dev.service' ssh aitbc 'systemctl status aitbc-blockchain-node-dev.service'
ssh aitbc1-cascade 'systemctl status aitbc-blockchain-node-dev.service'
``` ```

View File

@@ -549,6 +549,16 @@ This document tracks components that have been successfully deployed and are ope
- Updated `docs/files.md` with new structure - Updated `docs/files.md` with new structure
- Fixed systemd service path for GPU miner - Fixed systemd service path for GPU miner
-**Project File Organization** - Completed March 25, 2026
- **Root Directory Cleanup**: Moved 60+ loose files to proper subdirectories
- **Development Scripts**: Organized into `dev/review/`, `dev/fixes/`, `scripts/testing/`
- **Configuration Files**: Genesis configs to `config/genesis/`, network configs to `config/networks/`
- **Documentation**: Moved to `docs/development/`, `docs/deployment/`, `docs/project/`
- **Temporary Files**: Organized into `temp/backups/`, `temp/patches/`, `logs/qa/`
- **Essential Root Files**: Only configuration, documentation, and system files remain
- **Dependency Analysis**: Verified no codebreak from file moves
- **Workflow Creation**: Established `/organize-project-files` workflow for future maintenance
## Recent Updates (2026-02-12) ## Recent Updates (2026-02-12)
### Persistent GPU Marketplace ✅ ### Persistent GPU Marketplace ✅

View File

@@ -2,9 +2,9 @@
## Overview ## Overview
This guide provides comprehensive deployment instructions for the **aitbc server** (primary container), including infrastructure requirements, service configurations, and troubleshooting procedures. **Updated March 7, 2026: Unified port logic deployed, codebase committed to git, enhanced services operational.** This guide provides comprehensive deployment instructions for the **aitbc server** (secondary development server), including infrastructure requirements, service configurations, and troubleshooting procedures. **Updated March 25, 2026: Updated architecture with aitbc1 as primary server and aitbc as secondary server.**
**Note**: This documentation is specific to the aitbc server. For aitbc1 server documentation, see [aitbc1.md](./aitbc1.md). **Note**: This documentation is specific to the aitbc secondary server. For aitbc1 primary server documentation, see [aitbc1.md](./aitbc1.md).
## System Requirements ## System Requirements
@@ -57,38 +57,38 @@ This guide provides comprehensive deployment instructions for the **aitbc server
### **Container Access & SSH Management (Updated March 6, 2026)** ### **Container Access & SSH Management (Updated March 6, 2026)**
#### **SSH-Based Container Access** #### **SSH-Based Server Access**
```bash ```bash
# Access aitbc server (primary container) # Access aitbc secondary server
ssh aitbc-cascade ssh aitbc
# Check aitbc server status # Check aitbc server status
ssh aitbc-cascade 'systemctl status' ssh aitbc 'systemctl status'
# List AITBC services on aitbc server # List AITBC services on aitbc server
ssh aitbc-cascade 'systemctl list-units | grep aitbc-' ssh aitbc 'systemctl list-units | grep aitbc-'
``` ```
#### **Service Management via SSH** #### **Service Management via SSH**
```bash ```bash
# Start/stop services on aitbc server # Start/stop services on aitbc server
ssh aitbc-cascade 'sudo systemctl start aitbc-coordinator-api' ssh aitbc 'systemctl start aitbc-coordinator-api'
ssh aitbc-cascade 'sudo systemctl stop aitbc-wallet' ssh aitbc 'systemctl stop aitbc-wallet'
# Check service logs on aitbc server # Check service logs on aitbc server
ssh aitbc-cascade 'sudo journalctl -f -u aitbc-coordinator-api' ssh aitbc 'journalctl -f -u aitbc-coordinator-api'
# Debug service issues on aitbc server # Debug service issues on aitbc server
ssh aitbc-cascade 'sudo systemctl status aitbc-coordinator-api' ssh aitbc 'systemctl status aitbc-coordinator-api'
ssh aitbc-cascade 'sudo systemctl status aitbc-wallet' ssh aitbc 'systemctl status aitbc-wallet'
# Check blockchain services on aitbc server # Check blockchain services on aitbc server
ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-node' ssh aitbc 'systemctl status aitbc-blockchain-node'
ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-rpc' ssh aitbc 'systemctl status aitbc-blockchain-rpc'
# Check development services on aitbc server # Check development services on aitbc server
ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-node-dev' ssh aitbc 'systemctl status aitbc-blockchain-node-dev'
ssh aitbc-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev' ssh aitbc 'systemctl status aitbc-blockchain-rpc-dev'
``` ```
#### **Port Distribution Strategy (Updated March 7, 2026)** #### **Port Distribution Strategy (Updated March 7, 2026)**
@@ -173,21 +173,21 @@ AITBC Platform Architecture (Updated March 7, 2026)
#### 1.1 System Preparation #### 1.1 System Preparation
```bash ```bash
# Update system packages # Update system packages
sudo apt update && sudo apt upgrade -y apt update && apt upgrade -y
# Install required packages # Install required packages
sudo apt install -y python3.13 python3.13-venv python3-pip nodejs npm nginx sqlite3 apt install -y python3.13 python3.13-venv python3-pip nodejs npm nginx sqlite3
# Create aitbc user # Create aitbc user
sudo useradd -m -s /bin/bash aitbc useradd -m -s /bin/bash aitbc
sudo usermod -aG sudo aitbc usermod -aG sudo aitbc
``` ```
#### 1.2 Directory Structure #### 1.2 Directory Structure
```bash ```bash
# Create AITBC directory structure (standardized) # Create AITBC directory structure (standardized)
sudo mkdir -p /opt/aitbc/{apps,config,logs,scripts,backups} mkdir -p /opt/aitbc/{apps,config,logs,scripts,backups}
sudo chown -R aitbc:aitbc /opt/aitbc chown -R aitbc:aitbc /opt/aitbc
``` ```
#### 1.3 Code Deployment #### 1.3 Code Deployment
@@ -200,8 +200,8 @@ git clone https://github.com/oib/AITBC.git .
# scp -r /path/to/aitbc/* aitbc@target:/opt/aitbc/ # scp -r /path/to/aitbc/* aitbc@target:/opt/aitbc/
# Set permissions (standardized) # Set permissions (standardized)
sudo chown -R aitbc:aitbc /opt/aitbc chown -R aitbc:aitbc /opt/aitbc
sudo chmod -R 755 /opt/aitbc chmod -R 755 /opt/aitbc
``` ```
### **Phase 2: Service Configuration** ### **Phase 2: Service Configuration**
@@ -245,26 +245,26 @@ chown aitbc:aitbc .env
#### 2.3 Systemd Service Installation #### 2.3 Systemd Service Installation
```bash ```bash
# Copy service files (updated for new port logic) # Copy service files (updated for new port logic)
sudo cp -r /opt/aitbc/systemd/* /etc/systemd/system/ cp -r /opt/aitbc/systemd/* /etc/systemd/system/
sudo systemctl daemon-reload systemctl daemon-reload
# Enable core services # Enable core services
sudo systemctl enable aitbc-coordinator-api.service systemctl enable aitbc-coordinator-api.service
sudo systemctl enable aitbc-exchange-api.service systemctl enable aitbc-exchange-api.service
sudo systemctl enable aitbc-blockchain-node.service systemctl enable aitbc-blockchain-node.service
sudo systemctl enable aitbc-blockchain-rpc.service systemctl enable aitbc-blockchain-rpc.service
sudo systemctl enable aitbc-blockchain-service.service systemctl enable aitbc-blockchain-service.service
sudo systemctl enable aitbc-network-service.service systemctl enable aitbc-network-service.service
sudo systemctl enable aitbc-explorer.service systemctl enable aitbc-explorer.service
# Enable enhanced services (CPU-only mode) # Enable enhanced services (CPU-only mode)
sudo systemctl enable aitbc-multimodal-gpu.service systemctl enable aitbc-multimodal-gpu.service
sudo systemctl enable aitbc-multimodal.service systemctl enable aitbc-multimodal.service
sudo systemctl enable aitbc-modality-optimization.service systemctl enable aitbc-modality-optimization.service
sudo systemctl enable aitbc-adaptive-learning.service systemctl enable aitbc-adaptive-learning.service
sudo systemctl enable aitbc-marketplace-enhanced.service systemctl enable aitbc-marketplace-enhanced.service
sudo systemctl enable aitbc-openclaw-enhanced.service systemctl enable aitbc-openclaw-enhanced.service
sudo systemctl enable aitbc-loadbalancer-geo.service systemctl enable aitbc-loadbalancer-geo.service
``` ```
### **Phase 3: Service Deployment** ### **Phase 3: Service Deployment**
@@ -272,43 +272,43 @@ sudo systemctl enable aitbc-loadbalancer-geo.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-coordinator-api.service systemctl start aitbc-coordinator-api.service
sleep 3 sleep 3
sudo systemctl start aitbc-exchange-api.service systemctl start aitbc-exchange-api.service
sleep 3 sleep 3
sudo systemctl start aitbc-blockchain-node.service systemctl start aitbc-blockchain-node.service
sleep 3 sleep 3
sudo systemctl start aitbc-blockchain-rpc.service systemctl start aitbc-blockchain-rpc.service
sleep 3 sleep 3
sudo systemctl start aitbc-blockchain-service.service systemctl start aitbc-blockchain-service.service
sleep 3 sleep 3
sudo systemctl start aitbc-network-service.service systemctl start aitbc-network-service.service
sleep 3 sleep 3
sudo systemctl start aitbc-explorer.service systemctl start aitbc-explorer.service
``` ```
#### 3.2 Enhanced Services Startup #### 3.2 Enhanced Services Startup
```bash ```bash
# Start enhanced services (CPU-only mode) # Start enhanced services (CPU-only mode)
sudo systemctl start aitbc-multimodal-gpu.service systemctl start aitbc-multimodal-gpu.service
sleep 2 sleep 2
sudo systemctl start aitbc-multimodal.service systemctl start aitbc-multimodal.service
sleep 2 sleep 2
sudo systemctl start aitbc-modality-optimization.service systemctl start aitbc-modality-optimization.service
sleep 2 sleep 2
sudo systemctl start aitbc-adaptive-learning.service systemctl start aitbc-adaptive-learning.service
sleep 2 sleep 2
sudo systemctl start aitbc-marketplace-enhanced.service systemctl start aitbc-marketplace-enhanced.service
sleep 2 sleep 2
sudo systemctl start aitbc-openclaw-enhanced.service systemctl start aitbc-openclaw-enhanced.service
sleep 2 sleep 2
sudo systemctl start aitbc-loadbalancer-geo.service systemctl start aitbc-loadbalancer-geo.service
``` ```
#### 3.3 Service Verification #### 3.3 Service Verification
```bash ```bash
# Check service status # Check service status
sudo systemctl list-units --type=service --state=running | grep aitbc 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
@@ -352,13 +352,13 @@ PRAGMA temp_store = MEMORY;
EOF EOF
# System limits # System limits
echo "aitbc soft nofile 65536" | sudo tee -a /etc/security/limits.conf echo "aitbc soft nofile 65536" | tee -a /etc/security/limits.conf
echo "aitbc hard nofile 65536" | sudo tee -a /etc/security/limits.conf echo "aitbc hard nofile 65536" | tee -a /etc/security/limits.conf
# Network optimization # Network optimization
echo "net.core.somaxconn = 1024" | sudo tee -a /etc/sysctl.conf echo "net.core.somaxconn = 1024" | tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 1024" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_max_syn_backlog = 1024" | tee -a /etc/sysctl.conf
sudo sysctl -p sysctl -p
``` ```
#### 4.3 Monitoring Setup #### 4.3 Monitoring Setup
@@ -417,7 +417,7 @@ chown aitbc:aitbc /opt/aitbc/scripts/monitor-services.sh
#### Service Not Starting #### Service Not Starting
```bash ```bash
# Check service logs # Check service logs
sudo journalctl -u aitbc-coordinator-api.service -n 50 journalctl -u aitbc-coordinator-api.service -n 50
# Check Python environment (must be 3.13+) # Check Python environment (must be 3.13+)
cd /opt/aitbc/apps/coordinator-api cd /opt/aitbc/apps/coordinator-api
@@ -443,14 +443,14 @@ mv /opt/aitbc/apps/coordinator-api/aitbc_coordinator.db /opt/aitbc/apps/coordina
#### Port Conflicts (New Port Logic) #### Port Conflicts (New Port Logic)
```bash ```bash
# Check port usage (new port logic) # Check port usage (new port logic)
sudo netstat -tlnp | grep -E ":(8000|8001|8003|8010|8011|8012|8013|8014|8015|8016|8017)" netstat -tlnp | grep -E ":(8000|8001|8003|8010|8011|8012|8013|8014|8015|8016|8017)"
# Kill conflicting processes # Kill conflicting processes
sudo fuser -k 8000/tcp # Core services fuser -k 8000/tcp # Core services
sudo fuser -k 8010/tcp # Enhanced services fuser -k 8010/tcp # Enhanced services
# Restart services # Restart services
sudo systemctl restart aitbc-coordinator-api.service systemctl restart aitbc-coordinator-api.service
``` ```
#### Container Access Issues #### Container Access Issues
@@ -460,16 +460,16 @@ curl -s http://localhost:8017/health # Should work
curl -s http://10.1.223.1:8017/health # Should work from containers curl -s http://10.1.223.1:8017/health # Should work from containers
# Check service binding # Check service binding
sudo netstat -tlnp | grep :8017 # Should show 0.0.0.0:8017 netstat -tlnp | grep :8017 # Should show 0.0.0.0:8017
``` ```
#### Permission Issues #### Permission Issues
```bash ```bash
# Fix file ownership (standardized) # Fix file ownership (standardized)
sudo chown -R aitbc:aitbc /opt/aitbc chown -R aitbc:aitbc /opt/aitbc
# Fix file permissions # Fix file permissions
sudo chmod -R 755 /opt/aitbc chmod -R 755 /opt/aitbc
chmod 600 /opt/aitbc/apps/coordinator-api/.env chmod 600 /opt/aitbc/apps/coordinator-api/.env
``` ```

View File

@@ -2,32 +2,33 @@
## Overview ## Overview
This document contains specific deployment notes and considerations for deploying the AITBC platform on the **aitbc1 server** (secondary container). These notes complement the general deployment guide with server-specific configurations and troubleshooting. **Updated for optimized CPU-only deployment with enhanced services disabled.** This document contains specific deployment notes and considerations for deploying the AITBC platform on the **aitbc1 server** (primary development server). These notes complement the general deployment guide with server-specific configurations and troubleshooting. **Updated March 25, 2026: Updated architecture with aitbc1 as primary server and aitbc as secondary server.**
**Note**: This documentation is specific to the aitbc1 server. For aitbc server documentation, see [aitbc.md](./aitbc.md). **Note**: This documentation is specific to the aitbc1 primary server. For aitbc secondary server documentation, see [aitbc.md](./aitbc.md).
## Server Specifications ## Server Specifications
### **aitbc1 Server Details** ### **aitbc1 Primary Server Details**
- **Hostname**: aitbc1 (container) - **Hostname**: aitbc1 (primary development server)
- **IP Address**: 10.1.223.40 (container IP) - **IP Address**: 10.1.223.40 (server IP)
- **Operating System**: Debian 13 Trixie (secondary development environment) - **Operating System**: Debian 13 Trixie (primary development environment)
- **Access Method**: SSH via aitbc1-cascade proxy - **Access Method**: SSH via aitbc1-cascade proxy (from incus host only)
- **Reverse Proxy Role**: Primary reverse proxy for aitbc.bubuit.net
- **GPU Access**: None (CPU-only mode) - **GPU Access**: None (CPU-only mode)
- **Miner Service**: Not needed - **Miner Service**: Not needed
- **Enhanced Services**: Mixed status (some enabled, some failing) - **Enhanced Services**: Mixed status (some enabled, some failing)
- **Web Root**: `/var/www/html/` - **Web Root**: `/var/www/html/`
- **Nginx Configuration**: Two-tier setup with SSL termination - **Nginx Configuration**: Primary reverse proxy with SSL termination
- **Container Support**: Incus containers with 0.0.0.0 binding for container access - **Container Support**: Incus containers with 0.0.0.0 binding for container access
- **Project Document Root**: `/opt/aitbc` (standardized across all AITBC containers) - **Project Document Root**: `/opt/aitbc` (standardized across all AITBC containers)
### **Network Architecture (Updated March 7, 2026)** ### **Network Architecture (Updated March 25, 2026)**
``` ```
Internet → aitbc1-cascade (Proxy) → aitbc1 (Container) Internet → aitbc1.bubuit.net (Primary Server) → aitbc.bubuit.net (Secondary Server)
SSH Access Application Server HTTPS :443 (SSL Termination) Application Services
Port 22/443 Port 8000-8001 (Core Services) Port 22/443 Port 8000-8001 (Core Services)
Port 8005-8006 Blockchain Services (AT1 Standard) Port 8005-8006 Blockchain Services (AT1 Standard)
Port 8025-8026 Development Services Port 8025-8026 Development Services
``` ```
**Note**: Now compliant with AT1 standard port assignments **Note**: Now compliant with AT1 standard port assignments
@@ -36,37 +37,40 @@ Internet → aitbc1-cascade (Proxy) → aitbc1 (Container)
#### **Primary Access Methods** #### **Primary Access Methods**
```bash ```bash
# Access aitbc1 server (secondary container) # Access aitbc1 primary server (from incus host only)
ssh aitbc1-cascade ssh aitbc1-cascade
# Check aitbc1 server connectivity # From aitbc secondary server to aitbc1 primary
ssh aitbc1-cascade 'echo "Container accessible"' ssh aitbc1
# Check aitbc1 primary server connectivity
ssh aitbc1-cascade 'echo "Primary server accessible"'
``` ```
#### **Service Management via SSH** #### **Service Management via SSH**
```bash ```bash
# List all AITBC services on aitbc1 server # List all AITBC services on aitbc1 primary server
ssh aitbc1-cascade 'systemctl list-units | grep aitbc-' ssh aitbc1 'systemctl list-units | grep aitbc-'
# Check specific service status on aitbc1 server # Check specific service status on aitbc1 primary server
ssh aitbc1-cascade 'systemctl status aitbc-coordinator-api' ssh aitbc1 'systemctl status aitbc-coordinator-api'
ssh aitbc1-cascade 'systemctl status aitbc-wallet' ssh aitbc1 'systemctl status aitbc-wallet'
# Start/stop services on aitbc1 server # Start/stop services on aitbc1 primary server
ssh aitbc1-cascade 'sudo systemctl start aitbc-coordinator-api' ssh aitbc1 'systemctl start aitbc-coordinator-api'
ssh aitbc1-cascade 'sudo systemctl stop aitbc-wallet' ssh aitbc1 'systemctl stop aitbc-wallet'
# View service logs on aitbc1 server # View service logs on aitbc1 primary server
ssh aitbc1-cascade 'sudo journalctl -f -u aitbc-coordinator-api' ssh aitbc1 'journalctl -f -u aitbc-coordinator-api'
ssh aitbc1-cascade 'sudo journalctl -f -u aitbc-blockchain-node' ssh aitbc1 'journalctl -f -u aitbc-blockchain-node'
# Check blockchain services on aitbc1 server # Check blockchain services on aitbc1 primary server
ssh aitbc1-cascade 'sudo systemctl status aitbc-blockchain-node' ssh aitbc1 'systemctl status aitbc-blockchain-node'
ssh aitbc1-cascade 'sudo systemctl status aitbc-blockchain-rpc' ssh aitbc1 'systemctl status aitbc-blockchain-rpc'
# Check development services on aitbc1 server # Check development services on aitbc1 primary server
ssh aitbc1-cascade 'sudo systemctl status aitbc-blockchain-node-dev' ssh aitbc1 'systemctl status aitbc-blockchain-node-dev'
ssh aitbc1-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev' ssh aitbc1 'systemctl status aitbc-blockchain-rpc-dev'
``` ```
#### **Port Distribution & Conflict Resolution (Updated March 6, 2026)** #### **Port Distribution & Conflict Resolution (Updated March 6, 2026)**
@@ -108,26 +112,26 @@ ssh aitbc1-cascade 'sudo systemctl status aitbc-blockchain-rpc-dev'
#### **Debug Container Service Issues** #### **Debug Container Service Issues**
```bash ```bash
# Debug coordinator API port conflict # Debug coordinator API port conflict
ssh aitbc-cascade 'sudo systemctl status aitbc-coordinator-api' ssh aitbc 'systemctl status aitbc-coordinator-api'
ssh aitbc-cascade 'sudo journalctl -u aitbc-coordinator-api -n 20' ssh aitbc 'journalctl -u aitbc-coordinator-api -n 20'
# Debug wallet service issues # Debug wallet service issues
ssh aitbc-cascade 'sudo systemctl status aitbc-wallet' ssh aitbc 'systemctl status aitbc-wallet'
ssh aitbc-cascade 'sudo journalctl -u aitbc-wallet -n 20' ssh aitbc 'journalctl -u aitbc-wallet -n 20'
# Check port usage in containers # Check port usage in servers
ssh aitbc-cascade 'sudo netstat -tlnp | grep :800' ssh aitbc 'netstat -tlnp | grep :800'
ssh aitbc1-cascade 'sudo netstat -tlnp | grep :800' ssh aitbc1 'netstat -tlnp | grep :800'
# Test service endpoints # Test service endpoints
ssh aitbc-cascade 'curl -s http://localhost:8001/health' ssh aitbc 'curl -s http://localhost:8001/health'
ssh aitbc1-cascade 'curl -s http://localhost:8002/health' ssh aitbc1 'curl -s http://localhost:8002/health'
``` ```
## Pre-Deployment Checklist ## Pre-Deployment Checklist
### **✅ Server Preparation** ### **✅ Server Preparation**
- [ ] SSH access confirmed via aitbc-cascade - [ ] SSH access confirmed via aitbc (from aitbc1) and aitbc1-cascade (from incus host)
- [ ] System packages updated - [ ] System packages updated
- [ ] aitbc user created with sudo access - [ ] aitbc user created with sudo access
- [ ] Directory structure created - [ ] Directory structure created
@@ -136,13 +140,15 @@ ssh aitbc1-cascade 'curl -s http://localhost:8002/health'
- [ ] Container networking configured - [ ] Container networking configured
- [ ] GPU access confirmed as not available - [ ] GPU access confirmed as not available
- [ ] Miner service requirements confirmed as not needed - [ ] Miner service requirements confirmed as not needed
- [ ] Reverse proxy role confirmed as primary
### **✅ Network Configuration** ### **✅ Network Configuration**
- [ ] Port forwarding configured on aitbc-cascade - [ ] Port forwarding configured on aitbc1 primary server
- [ ] SSL certificates installed on proxy - [ ] SSL certificates installed on primary server
- [ ] DNS records configured - [ ] DNS records configured for aitbc1.bubuit.net and aitbc.bubuit.net
- [ ] Load balancer rules set - [ ] Load balancer rules set
- [ ] Container access configured (0.0.0.0 binding) - [ ] Container access configured (0.0.0.0 binding)
- [ ] Bidirectional SSH access configured (aitbc ↔ aitbc1)
### **✅ Storage Requirements** ### **✅ Storage Requirements**
- [ ] Minimum 50GB free space available - [ ] Minimum 50GB free space available
@@ -271,27 +277,27 @@ sudo systemctl edit aitbc-coordinator-api.service
### **🔥 Issue 5: Nginx Proxy Configuration** ### **🔥 Issue 5: Nginx Proxy Configuration**
**Problem**: Requests not properly forwarded from aitbc-cascade to aitbc **Problem**: Requests not properly forwarded from aitbc1 primary server to aitbc secondary server
**Solution**: **Solution**:
```bash ```bash
# On aitbc-cascade, check proxy configuration # On aitbc1 primary server, check proxy configuration
cat /etc/nginx/sites-available/aitbc-proxy.conf cat /etc/nginx/sites-available/aitbc-proxy.conf
# Ensure upstream configuration includes aitbc # Ensure upstream configuration includes aitbc secondary server
upstream aitbc_backend { upstream aitbc_backend {
server 10.1.223.1:8000; # Coordinator API server 10.1.223.1:8000; # Coordinator API (aitbc secondary)
server 10.1.223.1:8001; # Exchange API server 10.1.223.1:8001; # Exchange API (aitbc secondary)
server 10.1.223.1:8003; # Blockchain RPC server 10.1.223.1:8003; # Blockchain RPC (aitbc secondary)
# Add enhanced services ports # Add enhanced services ports
server 10.1.223.1:8010; # Multimodal GPU server 10.1.223.1:8010; # Multimodal GPU (aitbc secondary)
server 10.1.223.1:8011; # GPU Multimodal server 10.1.223.1:8011; # GPU Multimodal (aitbc secondary)
server 10.1.223.1:8012; # Modality Optimization server 10.1.223.1:8012; # Modality Optimization (aitbc secondary)
server 10.1.223.1:8013; # Adaptive Learning server 10.1.223.1:8013; # Adaptive Learning (aitbc secondary)
server 10.1.223.1:8014; # Marketplace Enhanced server 10.1.223.1:8014; # Marketplace Enhanced (aitbc secondary)
server 10.1.223.1:8015; # OpenClaw Enhanced server 10.1.223.1:8015; # OpenClaw Enhanced (aitbc secondary)
server 10.1.223.1:8016; # Web UI server 10.1.223.1:8016; # Web UI (aitbc secondary)
server 10.1.223.1:8017; # Geographic Load Balancer server 10.1.223.1:8017; # Geographic Load Balancer (aitbc secondary)
} }
# Reload nginx configuration # Reload nginx configuration
@@ -300,17 +306,18 @@ sudo nginx -t && sudo systemctl reload nginx
### **🔥 Issue 6: SSL Certificate Issues** ### **🔥 Issue 6: SSL Certificate Issues**
**Problem**: SSL certificates not properly configured for aitbc domain **Problem**: SSL certificates not properly configured for aitbc domains
**Solution**: **Solution**:
```bash ```bash
# On aitbc-cascade, check certificate status # On aitbc1 primary server, check certificate status
sudo certbot certificates sudo certbot certificates
# Renew or obtain certificate # Renew or obtain certificate for both domains
sudo certbot --nginx -d aitbc.bubuit.net sudo certbot --nginx -d aitbc1.bubuit.net -d aitbc.bubuit.net
# Test SSL configuration # Test SSL configuration
curl -I https://aitbc1.bubuit.net
curl -I https://aitbc.bubuit.net curl -I https://aitbc.bubuit.net
``` ```
@@ -527,14 +534,17 @@ sudo systemctl restart aitbc-coordinator-api.service
### **Issue: Network Connectivity** ### **Issue: Network Connectivity**
```bash ```bash
# Test local connectivity # Test local connectivity on aitbc secondary server
curl -X GET "http://localhost:8000/v1/health" curl -X GET "http://localhost:8000/v1/health"
# Test external connectivity via proxy # Test external connectivity via aitbc1 primary server
curl -X GET "http://aitbc.bubuit.net/health" curl -X GET "http://aitbc.bubuit.net/health"
# Check proxy configuration # Test primary server direct access
ssh aitbc-cascade "cat /etc/nginx/sites-available/aitbc-proxy.conf" curl -X GET "http://aitbc1.bubuit.net/health"
# Check proxy configuration on aitbc1 primary server
ssh aitbc1 "cat /etc/nginx/sites-available/aitbc-proxy.conf"
``` ```
### **Issue: Container Access Problems** ### **Issue: Container Access Problems**
@@ -675,36 +685,36 @@ sudo systemctl restart aitbc-*.service
--- ---
**Server**: aitbc1 (Container) **Server**: aitbc1 (Primary Development Server)
**Environment**: Production **Environment**: Production
**IP Address**: 10.1.223.40 (container) **IP Address**: 10.1.223.40 (primary server)
**GPU Access**: None (CPU-only mode) **GPU Access**: None (CPU-only mode)
**Miner Service**: Not needed **Miner Service**: Not needed
**Enhanced Services**: Mixed status (some enabled, some failing) **Enhanced Services**: Mixed status (some enabled, some failing)
**Last Updated**: 2026-03-07 **Last Updated**: 2026-03-25
**Maintainer**: AITBC Operations Team **Maintainer**: AITBC Operations Team
**Status**: ✅ PRODUCTION READY (mixed enhanced services) **Status**: ✅ PRODUCTION READY (primary reverse proxy)
**Platform Health**: 85% functional **Platform Health**: 85% functional
**External Access**: 100% working **External Access**: 100% working
**CLI Functionality**: 70% working (container) **CLI Functionality**: 70% working (primary server)
**Multi-Site**: 1 of 3 sites operational **Multi-Site**: 1 of 2 sites operational
## Multi-Site Deployment Status ## Multi-Site Deployment Status
### ✅ **aitbc1 Container Status** ### ✅ **aitbc1 Primary Server Status**
- **Services Running**: 8 services active (mixed enhanced services) - **Services Running**: 8 services active (mixed enhanced services)
- **External Access**: 100% functional - **External Access**: 100% functional
- **CLI Installation**: Complete and working - **CLI Installation**: Complete and working
- **Performance**: Excellent - **Performance**: Excellent
- **Stability**: 95% (some enhanced services failing) - **Stability**: 95% (some enhanced services failing)
- **Reverse Proxy**: Primary proxy for aitbc.bubuit.net
### 📊 **Multi-Site Architecture** ### 📊 **Multi-Site Architecture**
- **at1 (localhost)**: 8 services running - **aitbc1 (primary server)**: 8 services running
- **aitbc (container)**: 9 services running ✅ - **aitbc (secondary server)**: 9 services running ✅
- **aitbc1 (container)**: 8 services running ⚠️ - **Total Services**: 17 across 2 sites
- **Total Services**: 25 across 3 sites
### 🛠️ **CLI Status in aitbc1 Container** ### 🛠️ **CLI Status in aitbc1 Primary Server**
- **CLI Version**: v0.1.0 installed - **CLI Version**: v0.1.0 installed
- **Wallet Management**: 100% working - **Wallet Management**: 100% working
- **Configuration**: 100% working - **Configuration**: 100% working
@@ -712,9 +722,10 @@ sudo systemctl restart aitbc-*.service
- **Marketplace**: Network errors (known limitation) - **Marketplace**: Network errors (known limitation)
### 🌐 **External Access Configuration** ### 🌐 **External Access Configuration**
- **Primary URL**: https://aitbc.bubuit.net/ - **Primary URL**: https://aitbc1.bubuit.net/ (primary server)
- **Secondary URL**: https://aitbc.bubuit.net/ (secondary server)
- **API Health**: https://aitbc.bubuit.net/api/health - **API Health**: https://aitbc.bubuit.net/api/health
- **SSL Certificate**: Valid and working - **SSL Certificate**: Valid and working for both domains
- **Performance**: <50ms response times - **Performance**: <50ms response times
- **Uptime**: 100% - **Uptime**: 100%
@@ -745,7 +756,8 @@ Additional Services:
``` ```
### 🔧 **Maintenance Notes** ### 🔧 **Maintenance Notes**
- **Container Access**: SSH via aitbc-cascade - **Primary Server Access**: SSH via aitbc1-cascade (from incus host) or aitbc1 (from aitbc)
- **Secondary Server Access**: SSH via aitbc (from aitbc1)
- **Service Management**: systemctl commands - **Service Management**: systemctl commands
- **Log Location**: /opt/aitbc/logs/ - **Log Location**: /opt/aitbc/logs/
- **Backup Location**: /opt/aitbc/backups/ - **Backup Location**: /opt/aitbc/backups/

View File

@@ -15,25 +15,39 @@
### Installation and Setup ### Installation and Setup
```bash ```bash
# Load development environment
source /opt/aitbc/.env.dev
# Test CLI installation # Test CLI installation
aitbc --help aitbc --help
aitbc version aitbc version
``` ```
**Note**: The CLI is pre-configured with a bash alias for automatic virtual environment activation:
```bash
# The following alias is configured in ~/.bashrc:
alias aitbc="source /opt/aitbc/cli/venv/bin/activate && aitbc"
```
This allows you to use `aitbc <command>` directly without manually sourcing the virtual environment.
### Basic Operations ### Basic Operations
```bash ```bash
# Wallet operations # Core operations
aitbc wallet create aitbc client submit --prompt "Generate an image" --model llama2
aitbc wallet list aitbc miner status
aitbc wallet balance aitbc wallet create --type hd
aitbc marketplace list
aitbc blockchain info
aitbc exchange create-pair --pair AITBC/BTC --base-asset AITBC --quote-asset BTC
aitbc explorer status
aitbc explorer block 12345
aitbc explorer transaction 0x123...
aitbc explorer search --address 0xabc...
# Exchange operations # Advanced features
aitbc exchange register --name "Binance" --api-key <key> aitbc analytics summary
aitbc exchange create-pair AITBC/BTC aitbc ai-trading start --strategy arbitrage
aitbc exchange start-trading --pair AITBC/BTC aitbc compliance kyc-submit --user-id user123
aitbc agent create --type trading
aitbc multimodal process --input image.jpg --mode text
# AI Trading & Analytics # AI Trading & Analytics
aitbc ai-trading start --strategy mean_reversion aitbc ai-trading start --strategy mean_reversion
@@ -119,35 +133,52 @@ aitbc-services restart
- `wallet backup` - Backup wallet - `wallet backup` - Backup wallet
- `wallet restore` - Restore wallet - `wallet restore` - Restore wallet
### **Exchange Commands** ### **Advanced Features**
- `exchange register` - Register with exchange - `analytics` - Chain performance monitoring and predictions
- `exchange create-pair` - Create trading pair - `ai-trading` - AI-powered trading strategies
- `exchange start-trading` - Start trading - `surveillance` - Market surveillance and compliance
- `exchange stop-trading` - Stop trading - `compliance` - Regulatory compliance and reporting
- `exchange status` - Exchange status - `governance` - Network governance and proposals
- `exchange balances` - Exchange balances
### **Blockchain Commands** ### **Development Tools**
- `blockchain info` - Blockchain information - `admin` - Administrative operations
- `blockchain status` - Node status - `config` - Configuration management
- `blockchain blocks` - List blocks - `monitor` - System monitoring and health
- `blockchain balance` - Check balance - `test` - CLI testing and validation
- `blockchain peers` - Network peers - `deploy` - Deployment and infrastructure management
- `blockchain transaction` - Transaction details
### **Config Commands** ### **Specialized Services**
- `config show` - Show configuration - `agent` - AI agent operations
- `config get <key>` - Get config value - `multimodal` - Multi-modal AI processing
- `config set <key> <value>` - Set config value - `oracle` - Price discovery and data feeds
- `config edit` - Edit configuration - `market-maker` - Automated market making
- `config validate` - Validate configuration - `genesis-protection` - Advanced security features
- `swarm` - Swarm intelligence operations
- `ai` - AI provider commands
### **Compliance Commands** ### **Enterprise Integration**
- `compliance list-providers` - List KYC providers - `enterprise-integration` - Enterprise system integration
- `compliance kyc-submit` - Submit KYC verification - `cross-chain` - Cross-chain operations
- `compliance kyc-status` - Check KYC status - `regulatory` - Regulatory reporting
- `compliance aml-screen` - AML screening
- `compliance full-check` - Full compliance check ### **Security & Authentication**
- `auth` - Authentication and token management
- `keystore` - Key management
- `multisig` - Multi-signature operations
- `genesis` - Genesis block operations
### **Network & Infrastructure**
- `node` - Node management
- `chain` - Chain operations
- `sync` - Synchronization operations
- `optimize` - Performance optimization
### **Plugin System**
- `plugin` - Plugin management
- `plugin-registry` - Plugin registry
- `plugin-marketplace` - Plugin marketplace
- `plugin-security` - Plugin security
- `plugin-analytics` - Plugin analytics
## 🧪 **Testing** ## 🧪 **Testing**
@@ -192,9 +223,6 @@ python3 run_simple_tests.py
### Environment Variables ### Environment Variables
```bash ```bash
# Load development environment
source /opt/aitbc/.env.dev
# Available aliases # Available aliases
aitbc-services # Service management aitbc-services # Service management
aitbc-fix # Quick permission fix aitbc-fix # Quick permission fix
@@ -210,13 +238,30 @@ aitbc --output json wallet balance
aitbc --output yaml blockchain info aitbc --output yaml blockchain info
# Debug mode # Debug mode
aitbc --debug wallet list aitbc --debug client submit --prompt "Test"
# Test mode # Test mode
aitbc --test-mode exchange status aitbc --test-mode exchange status
# Custom configuration # Custom configuration
aitbc --config-file /path/to/config wallet list aitbc --config-file /path/to/config wallet list
# Dry run mode
aitbc --dry-run deploy --target production
# Custom timeout
aitbc --timeout 60 blockchain info
# Custom API endpoint
aitbc --url http://localhost:8000 blockchain status
# Custom API key
aitbc --api-key <key> exchange register --name "Exchange"
# Verbosity levels
aitbc -v client list
aitbc -vv marketplace show --job-id 123
aitbc -vvv admin system-status
``` ```
### Service Integration ### Service Integration
@@ -229,6 +274,27 @@ aitbc --api-key <key> exchange register --name "Exchange"
# Timeout configuration # Timeout configuration
aitbc --timeout 60 blockchain info aitbc --timeout 60 blockchain info
# Skip SSL verification (testing only)
aitbc --no-verify --test-mode client status
# Plugin management
aitbc plugin list
aitbc plugin install --name gpu-optimizer
aitbc plugin enable --name monitoring
# Multi-modal processing
aitbc multimodal process --input document.pdf --modes text,image
aitbc multimodal status --job-id 12345
# AI operations
aitbc ai list-providers
aitbc ai generate --provider ollama --model llama2 --prompt "Summarize"
# Agent operations
aitbc agent create --type trading --name trader1
aitbc agent start --agent-id trader1
aitbc agent status --agent-id trader1
``` ```
## 🔍 **Troubleshooting** ## 🔍 **Troubleshooting**
@@ -254,13 +320,14 @@ aitbc --test-mode blockchain status
## 📚 **Additional Resources** ## 📚 **Additional Resources**
- [Testing Procedures](./testing.md) - Detailed testing documentation - [Testing Procedures](./testing.md) - Detailed testing documentation
- [Permission Setup](./permission-setup.md) - Development environment configuration
- [Service Management](../8_development/) - Service operation guides - [Service Management](../8_development/) - Service operation guides
- [Exchange Integration](../19_marketplace/) - Exchange and trading documentation - [Exchange Integration](../19_marketplace/) - Exchange and trading documentation
--- ---
**Last Updated**: March 8, 2026 **Last Updated**: March 25, 2026
**CLI Version**: 0.1.0 **CLI Version**: 0.1.0
**Test Coverage**: 67/67 tests passing (100%) **Test Coverage**: 67/67 tests passing (100%)
**Infrastructure**: Complete **Infrastructure**: Complete
**Command Groups**: 45+ command groups available
**Plugin System**: Full plugin architecture supported

View File

@@ -63,11 +63,11 @@
**🔧 Service Scripts Created:** **🔧 Service Scripts Created:**
```bash ```bash
/opt/aitbc/scripts/multimodal_gpu_service.py # Port 8010 /opt/aitbc/scripts/services/multimodal_gpu_service.py # Port 8010
/opt/aitbc/scripts/gpu_multimodal_service.py # Port 8011 /opt/aitbc/scripts/services/gpu_multimodal_service.py # Port 8011
/opt/aitbc/scripts/modality_optimization_service.py # Port 8012 /opt/aitbc/scripts/services/modality_optimization_service.py # Port 8012
/opt/aitbc/scripts/adaptive_learning_service.py # Port 8013 /opt/aitbc/scripts/services/adaptive_learning_service.py # Port 8013
/opt/aitbc/scripts/web_ui_service.py # Port 8016 /opt/aitbc/scripts/services/web_ui_service.py # Port 8016
``` ```
**🔧 Systemd Services Updated:** **🔧 Systemd Services Updated:**

View File

@@ -59,7 +59,7 @@ skill test
python -m pytest tests/integration/test_multichain.py -v python -m pytest tests/integration/test_multichain.py -v
# Run all tests including multi-chain scenarios # Run all tests including multi-chain scenarios
./tests/run_all_tests.sh ./scripts/testing/run_all_tests.sh
``` ```
#### Using CLI for Testing #### Using CLI for Testing
@@ -168,7 +168,7 @@ python -m aitbc_cli --url http://127.0.0.1:8000 --api-key test-key blockchain he
#### **4.1 Run Complete Test Suite** #### **4.1 Run Complete Test Suite**
```bash ```bash
# Execute all tests including multi-chain scenarios # Execute all tests including multi-chain scenarios
./tests/run_all_tests.sh ./scripts/testing/run_all_tests.sh
# Run specific multi-chain integration tests # Run specific multi-chain integration tests
python -m pytest tests/integration/test_multichain.py -v python -m pytest tests/integration/test_multichain.py -v
@@ -237,7 +237,7 @@ jobs:
### **Scheduled Testing** ### **Scheduled Testing**
```bash ```bash
# Regular multi-chain test execution # Regular multi-chain test execution
0 2 * * * cd /home/oib/windsurf/aitbc && ./tests/run_all_tests.sh 0 2 * * * cd /home/oib/windsurf/aitbc && ./scripts/testing/run_all_tests.sh
``` ```
## Troubleshooting ## Troubleshooting

View File

@@ -23,23 +23,23 @@ Historical development setup included mock coordinator services for testing purp
### 1. Localhost Cleanup ### 1. Localhost Cleanup
```bash ```bash
# Stop and disable mock service # Stop and disable mock service
sudo systemctl stop aitbc-mock-coordinator.service systemctl stop aitbc-mock-coordinator.service
sudo systemctl disable aitbc-mock-coordinator.service systemctl disable aitbc-mock-coordinator.service
# Remove service file # Remove service file
sudo rm /etc/systemd/system/aitbc-mock-coordinator.service rm /etc/systemd/system/aitbc-mock-coordinator.service
sudo systemctl daemon-reload systemctl daemon-reload
``` ```
### 2. AITBC Server Cleanup ### 2. AITBC Server Cleanup
```bash ```bash
# Stop and disable mock service # Stop and disable mock service
ssh aitbc-cascade "systemctl stop aitbc-coordinator.service" ssh aitbc "systemctl stop aitbc-coordinator.service"
ssh aitbc-cascade "systemctl disable aitbc-coordinator.service" ssh aitbc "systemctl disable aitbc-coordinator.service"
# Remove service file # Remove service file
ssh aitbc-cascade "rm /etc/systemd/system/aitbc-coordinator.service" ssh aitbc "rm /etc/systemd/system/aitbc-coordinator.service"
ssh aitbc-cascade "systemctl daemon-reload" ssh aitbc "systemctl daemon-reload"
``` ```
### 3. Production Service Verification ### 3. Production Service Verification

View File

@@ -209,21 +209,21 @@ server {
```bash ```bash
# Enable and start services # Enable and start services
sudo systemctl enable aitbc-reputation systemctl enable aitbc-reputation
sudo systemctl enable aitbc-rewards systemctl enable aitbc-rewards
sudo systemctl enable aitbc-trading systemctl enable aitbc-trading
sudo systemctl enable aitbc-analytics systemctl enable aitbc-analytics
sudo systemctl enable aitbc-certification systemctl enable aitbc-certification
# Start services # Start services
sudo systemctl start aitbc-reputation systemctl start aitbc-reputation
sudo systemctl start aitbc-rewards systemctl start aitbc-rewards
sudo systemctl start aitbc-trading systemctl start aitbc-trading
sudo systemctl start aitbc-analytics systemctl start aitbc-analytics
sudo systemctl start aitbc-certification systemctl start aitbc-certification
# Check status # Check status
sudo systemctl status aitbc-* systemctl status aitbc-*
``` ```
## Configuration Details ## Configuration Details
@@ -588,7 +588,7 @@ CACHE_CONFIG = {
1. **Database Connection Errors** 1. **Database Connection Errors**
```bash ```bash
# Check PostgreSQL status # Check PostgreSQL status
sudo systemctl status postgresql systemctl status postgresql
# Check connection # Check connection
psql -h localhost -U aitbc_user -d aitbc_economics psql -h localhost -U aitbc_user -d aitbc_economics
@@ -667,10 +667,10 @@ curl -f http://localhost:8000/health || echo "Health check failed"
```bash ```bash
# Rollback to previous version # Rollback to previous version
sudo systemctl stop aitbc-* systemctl stop aitbc-*
git checkout previous_version_tag git checkout previous_version_tag
pip install -r requirements.txt pip install -r requirements.txt
sudo systemctl start aitbc-* systemctl start aitbc-*
``` ```
### Database Rollback ### Database Rollback

View File

@@ -193,9 +193,9 @@ server {
#### **Services Not Starting** #### **Services Not Starting**
```bash ```bash
# Check service status # Check service status
sudo systemctl status aitbc-cross-chain-reputation systemctl status aitbc-cross-chain-reputation
sudo systemctl status aitbc-agent-communication systemctl status aitbc-agent-communication
sudo systemctl status aitbc-advanced-learning systemctl status aitbc-advanced-learning
# Check logs # Check logs
sudo journalctl -u aitbc-cross-chain-reputation sudo journalctl -u aitbc-cross-chain-reputation
@@ -206,7 +206,7 @@ sudo journalctl -u aitbc-advanced-learning
#### **Nginx Issues** #### **Nginx Issues**
```bash ```bash
# Check nginx status # Check nginx status
sudo systemctl status nginx systemctl status nginx
# Test configuration # Test configuration
sudo nginx -t sudo nginx -t
@@ -224,7 +224,7 @@ ls -la /var/www/aitbc.bubuit.net/
sudo nginx -t sudo nginx -t
# Restart nginx # Restart nginx
sudo systemctl restart nginx systemctl restart nginx
``` ```
### 📞 **Support Contacts** ### 📞 **Support Contacts**

View File

@@ -77,7 +77,7 @@ The AITBC Developer Ecosystem & DAO Grants system has been successfully implemen
#### Test Execution: #### Test Execution:
```bash ```bash
# Run all tests # Run all tests
./tests/run_all_tests.sh ./scripts/testing/run_all_tests.sh
# Individual suites # Individual suites
npx hardhat test tests/contracts/ npx hardhat test tests/contracts/
@@ -211,7 +211,7 @@ npm run test # Frontend E2E
./scripts/production-health-check.sh ./scripts/production-health-check.sh
# Monitor system logs # Monitor system logs
ssh aitbc-cascade "journalctl -u nginx -f" ssh aitbc "journalctl -u nginx -f"
# Check contract events # Check contract events
npx hardhat run scripts/monitor-contracts.js --network mainnet npx hardhat run scripts/monitor-contracts.js --network mainnet
@@ -220,7 +220,7 @@ npx hardhat run scripts/monitor-contracts.js --network mainnet
### Weekly Operations ### Weekly Operations
```bash ```bash
# Security updates # Security updates
ssh aitbc-cascade "apt update && apt upgrade -y" ssh aitbc "apt update && apt upgrade -y"
# Performance monitoring # Performance monitoring
./scripts/performance-report.sh ./scripts/performance-report.sh

View File

@@ -59,8 +59,8 @@
- **`tests/cli/test_wallet.py`**: Updated wallet tests for unified CLI interface - **`tests/cli/test_wallet.py`**: Updated wallet tests for unified CLI interface
- **`tests/cli/test_marketplace.py`**: Updated marketplace tests for CLI integration - **`tests/cli/test_marketplace.py`**: Updated marketplace tests for CLI integration
- **`tests/cli/test_cli_integration.py`**: Enhanced integration testing with CLI support - **`tests/cli/test_cli_integration.py`**: Enhanced integration testing with CLI support
- **`tests/conftest.py`**: Enhanced test configuration for CLI testing - **`tests/conftest.py`**: Enhanced test configuration
- **`tests/run_all_tests.sh`**: Updated test runner with CLI testing support - **`tests/scripts/testing/run_all_tests.sh`**: Updated test runner with CLI testing support
- **`tests/cli-test-updates-completed.md`**: Created CLI test completion summary - **`tests/cli-test-updates-completed.md`**: Created CLI test completion summary
- **`tests/test-integration-completed.md`**: Created test ecosystem integration summary - **`tests/test-integration-completed.md`**: Created test ecosystem integration summary
- **`docs/22_workflow/DOCS_WORKFLOW_COMPLETION_SUMMARY.md`**: Updated with latest workflow completion - **`docs/22_workflow/DOCS_WORKFLOW_COMPLETION_SUMMARY.md`**: Updated with latest workflow completion

View File

@@ -78,12 +78,12 @@ If you need to manually configure services:
```bash ```bash
# For AT1 (localhost) # For AT1 (localhost)
sudo systemctl disable aitbc-multimodal.service systemctl disable aitbc-multimodal.service
sudo systemctl enable aitbc-multimodal-gpu.service systemctl enable aitbc-multimodal-gpu.service
# For Production Servers # For Production Servers
sudo systemctl enable aitbc-multimodal.service systemctl enable aitbc-multimodal.service
sudo systemctl disable aitbc-multimodal-gpu.service systemctl disable aitbc-multimodal-gpu.service
``` ```
## Verification ## Verification
@@ -104,8 +104,8 @@ systemctl status aitbc-multimodal.service
### Service Not Found ### Service Not Found
```bash ```bash
# Ensure service files are copied to system directory # Ensure service files are copied to system directory
sudo cp /home/oib/windsurf/aitbc/systemd/aitbc-*-multimodal.service /etc/systemd/system/ cp /home/oib/windsurf/aitbc/systemd/aitbc-*-multimodal.service /etc/systemd/system/
sudo systemctl daemon-reload systemctl daemon-reload
``` ```
### Port Conflicts ### Port Conflicts

View File

@@ -145,7 +145,7 @@ testpaths = tests
## 🧪 **Verification Tests Created** ## 🧪 **Verification Tests Created**
Created comprehensive test suite `tests/test_explorer_fixes.py`: Created comprehensive test suite `tests/explorer/test_explorer_fixes.py`:
```python ```python
test_pytest_configuration_restored test_pytest_configuration_restored

View File

@@ -194,7 +194,7 @@ assert medium_security_commands_degrade_gracefully()
- **`CLI_TRANSLATION_SECURITY_IMPLEMENTATION_SUMMARY.md`** - This summary - **`CLI_TRANSLATION_SECURITY_IMPLEMENTATION_SUMMARY.md`** - This summary
### **Testing** ### **Testing**
- **`tests/test_cli_translation_security.py`** - Comprehensive test suite (23 tests) - **`tests/security/test_cli_translation_security.py`** - Comprehensive test suite (23 tests)
## 🚀 Usage Examples ## 🚀 Usage Examples

View File

@@ -86,7 +86,7 @@ class EventDrivenCacheSettings:
enable_health_checks: bool enable_health_checks: bool
``` ```
### 4. Comprehensive Test Suite (`tests/test_event_driven_cache.py`) ### 4. Comprehensive Test Suite (`tests/integration/test_event_driven_cache.py`)
**Test Coverage:** **Test Coverage:**
- **Core cache operations** (set, get, invalidate) - **Core cache operations** (set, get, invalidate)

View File

@@ -95,7 +95,7 @@ aitbc/
├── README.md # Project documentation ├── README.md # Project documentation
├── poetry.lock # Dependency lock file ├── poetry.lock # Dependency lock file
├── pyproject.toml # Python project configuration ├── pyproject.toml # Python project configuration
└── run_all_tests.sh # Test runner (convenience) └── scripts/testing/run_all_tests.sh # Test runner (convenience)
``` ```
### **Main Directories (Organized by Purpose)** ### **Main Directories (Organized by Purpose)**
@@ -207,7 +207,7 @@ aitbc/
-**Essential project files** (.gitignore, README, LICENSE) -**Essential project files** (.gitignore, README, LICENSE)
-**Configuration templates** (.env.example, .editorconfig) -**Configuration templates** (.env.example, .editorconfig)
-**Build files** (pyproject.toml, poetry.lock) -**Build files** (pyproject.toml, poetry.lock)
-**Convenience scripts** (run_all_tests.sh) -**Convenience scripts** (scripts/testing/run_all_tests.sh)
-**Core documentation** (README.md, PLUGIN_SPEC.md) -**Core documentation** (README.md, PLUGIN_SPEC.md)
### **Documentation Organization** ### **Documentation Organization**

View File

@@ -213,7 +213,7 @@ async def _sender_loop(self):
- **`apps/coordinator-api/src/app/services/multi_modal_websocket_fusion.py`** - Multi-modal fusion with backpressure - **`apps/coordinator-api/src/app/services/multi_modal_websocket_fusion.py`** - Multi-modal fusion with backpressure
### **Testing** ### **Testing**
- **`tests/test_websocket_backpressure_core.py`** - Comprehensive test suite - **`tests/websocket/test_websocket_backpressure_core.py`** - Comprehensive test suite
- **Mock implementations** for testing without dependencies - **Mock implementations** for testing without dependencies
### **Documentation** ### **Documentation**

View File

@@ -103,13 +103,13 @@ aitbc ai-surveillance status
#### **Verification Commands:** #### **Verification Commands:**
```bash ```bash
# Check user wallet on aitbc server # Check user wallet on aitbc server
ssh aitbc-cascade "cat /opt/aitbc/.aitbc/wallets/newuser.json | jq '.balance'" ssh aitbc "cat /opt/aitbc/.aitbc/wallets/newuser.json | jq '.balance'"
# View transaction details # View transaction details
ssh aitbc-cascade "cat /opt/aitbc/.aitbc/wallets/newuser.json | jq '.transactions[-1]'" ssh aitbc "cat /opt/aitbc/.aitbc/wallets/newuser.json | jq '.transactions[-1]'"
# View gift certificate # View gift certificate
ssh aitbc-cascade "cat /opt/aitbc/GIFT_CERTIFICATE_newuser.md" ssh aitbc "cat /opt/aitbc/GIFT_CERTIFICATE_newuser.md"
``` ```
### 🎉 **Success Metrics:** ### 🎉 **Success Metrics:**

View File

@@ -8,19 +8,19 @@
systemctl status aitbc-coordinator --no-pager systemctl status aitbc-coordinator --no-pager
# Start service # Start service
sudo systemctl start aitbc-coordinator systemctl start aitbc-coordinator
# Stop service # Stop service
sudo systemctl stop aitbc-coordinator systemctl stop aitbc-coordinator
# Restart service # Restart service
sudo systemctl restart aitbc-coordinator systemctl restart aitbc-coordinator
# Enable service (start on boot) # Enable service (start on boot)
sudo systemctl enable aitbc-coordinator systemctl enable aitbc-coordinator
# Disable service # Disable service
sudo systemctl disable aitbc-coordinator systemctl disable aitbc-coordinator
``` ```
### **Log Management with journalctl** ### **Log Management with journalctl**
@@ -142,7 +142,7 @@ systemctl status aitbc-coordinator --no-pager
sudo journalctl -u aitbc-coordinator --since "1 hour ago" --no-pager | tail -10 sudo journalctl -u aitbc-coordinator --since "1 hour ago" --no-pager | tail -10
# Service restart (if needed) # Service restart (if needed)
sudo systemctl restart aitbc-coordinator systemctl restart aitbc-coordinator
sleep 5 sleep 5
systemctl status aitbc-coordinator --no-pager systemctl status aitbc-coordinator --no-pager
@@ -162,7 +162,7 @@ sudo journalctl -u aitbc-coordinator --since "10 minutes ago" --no-pager
sudo journalctl -u aitbc-coordinator -p err --since "1 hour ago" --no-pager sudo journalctl -u aitbc-coordinator -p err --since "1 hour ago" --no-pager
# 4. Restart service if needed # 4. Restart service if needed
sudo systemctl restart aitbc-coordinator systemctl restart aitbc-coordinator
# 5. Verify functionality # 5. Verify functionality
curl -s http://localhost:8000/health curl -s http://localhost:8000/health

View File

@@ -1,9 +0,0 @@
--- /opt/aitbc/apps/blockchain-node/src/aitbc_chain/gossip/broker.py 2026-03-23 12:40:00.000000000 +0100
+++ /opt/aitbc/apps/blockchain-node/src/aitbc_chain/gossip/broker.py.new 2026-03-23 12:40:00.000000000 +0100
@@ -6,7 +6,7 @@
import warnings
from collections import defaultdict
-from contextlib import suppress
+from contextlib import suppress, asynccontextmanager
from dataclasses import dataclass
from typing import Any, Callable, Dict, List, Optional, Set

392
scripts/deployment/deploy.sh Executable file
View File

@@ -0,0 +1,392 @@
#!/bin/bash
# AITBC Automated Deployment Script
# This script handles automated deployment of AITBC services
set -e
# Configuration
ENVIRONMENT=${1:-staging}
VERSION=${2:-latest}
REGION=${3:-us-east-1}
NAMESPACE="aitbc-${ENVIRONMENT}"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Logging function
log() {
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
exit 1
}
success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
# Check prerequisites
check_prerequisites() {
log "Checking prerequisites..."
# Check if required tools are installed
command -v docker >/dev/null 2>&1 || error "Docker is not installed"
command -v docker-compose >/dev/null 2>&1 || error "Docker Compose is not installed"
command -v kubectl >/dev/null 2>&1 || error "kubectl is not installed"
command -v helm >/dev/null 2>&1 || error "Helm is not installed"
# Check if Docker daemon is running
docker info >/dev/null 2>&1 || error "Docker daemon is not running"
# Check if kubectl can connect to cluster
kubectl cluster-info >/dev/null 2>&1 || error "Cannot connect to Kubernetes cluster"
success "Prerequisites check passed"
}
# Build Docker images
build_images() {
log "Building Docker images..."
# Build CLI image
log "Building CLI image..."
docker build -t aitbc/cli:${VERSION} -f Dockerfile . || error "Failed to build CLI image"
# Build service images
for service_dir in apps/*/; do
if [ -f "$service_dir/Dockerfile" ]; then
service_name=$(basename "$service_dir")
log "Building ${service_name} image..."
docker build -t aitbc/${service_name}:${VERSION} -f "$service_dir/Dockerfile" "$service_dir" || error "Failed to build ${service_name} image"
fi
done
success "All Docker images built successfully"
}
# Run tests
run_tests() {
log "Running tests..."
# Run unit tests
log "Running unit tests..."
pytest tests/unit/ -v --cov=aitbc_cli --cov-report=term || error "Unit tests failed"
# Run integration tests
log "Running integration tests..."
pytest tests/integration/ -v || error "Integration tests failed"
# Run security tests
log "Running security tests..."
pytest tests/security/ -v || error "Security tests failed"
# Run performance tests
log "Running performance tests..."
pytest tests/performance/test_performance_lightweight.py::TestPerformance::test_cli_performance -v || error "Performance tests failed"
success "All tests passed"
}
# Deploy to Kubernetes
deploy_kubernetes() {
log "Deploying to Kubernetes namespace: ${NAMESPACE}"
# Create namespace if it doesn't exist
kubectl create namespace ${NAMESPACE} --dry-run=client -o yaml | kubectl apply -f -
# Apply secrets
log "Applying secrets..."
kubectl apply -f k8s/secrets/ -n ${NAMESPACE} || error "Failed to apply secrets"
# Apply configmaps
log "Applying configmaps..."
kubectl apply -f k8s/configmaps/ -n ${NAMESPACE} || error "Failed to apply configmaps"
# Deploy database
log "Deploying database..."
helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install postgres bitnami/postgresql \
--namespace ${NAMESPACE} \
--set auth.postgresPassword=${POSTGRES_PASSWORD} \
--set auth.database=aitbc \
--set primary.persistence.size=20Gi \
--set primary.resources.requests.memory=2Gi \
--set primary.resources.requests.cpu=1000m \
--wait || error "Failed to deploy database"
# Deploy Redis
log "Deploying Redis..."
helm upgrade --install redis bitnami/redis \
--namespace ${NAMESPACE} \
--set auth.password=${REDIS_PASSWORD} \
--set master.persistence.size=8Gi \
--set master.resources.requests.memory=512Mi \
--set master.resources.requests.cpu=500m \
--wait || error "Failed to deploy Redis"
# Deploy core services
log "Deploying core services..."
# Deploy blockchain services
for service in blockchain-node consensus-node network-node; do
log "Deploying ${service}..."
envsubst < k8s/deployments/${service}.yaml | kubectl apply -f - -n ${NAMESPACE} || error "Failed to deploy ${service}"
kubectl rollout status deployment/${service} -n ${NAMESPACE} --timeout=300s || error "Failed to rollout ${service}"
done
# Deploy coordinator
log "Deploying coordinator-api..."
envsubst < k8s/deployments/coordinator-api.yaml | kubectl apply -f - -n ${NAMESPACE} || error "Failed to deploy coordinator-api"
kubectl rollout status deployment/coordinator-api -n ${NAMESPACE} --timeout=300s || error "Failed to rollout coordinator-api"
# Deploy production services
for service in exchange-integration compliance-service trading-engine; do
log "Deploying ${service}..."
envsubst < k8s/deployments/${service}.yaml | kubectl apply -f - -n ${NAMESPACE} || error "Failed to deploy ${service}"
kubectl rollout status deployment/${service} -n ${NAMESPACE} --timeout=300s || error "Failed to rollout ${service}"
done
# Deploy plugin ecosystem
for service in plugin-registry plugin-marketplace plugin-security plugin-analytics; do
log "Deploying ${service}..."
envsubst < k8s/deployments/${service}.yaml | kubectl apply -f - -n ${NAMESPACE} || error "Failed to deploy ${service}"
kubectl rollout status deployment/${service} -n ${NAMESPACE} --timeout=300s || error "Failed to rollout ${service}"
done
# Deploy global infrastructure
for service in global-infrastructure global-ai-agents multi-region-load-balancer; do
log "Deploying ${service}..."
envsubst < k8s/deployments/${service}.yaml | kubectl apply -f - -n ${NAMESPACE} || error "Failed to deploy ${service}"
kubectl rollout status deployment/${service} -n ${NAMESPACE} --timeout=300s || error "Failed to rollout ${service}"
done
# Deploy explorer
log "Deploying explorer..."
envsubst < k8s/deployments/explorer.yaml | kubectl apply -f - -n ${NAMESPACE} || error "Failed to deploy explorer"
kubectl rollout status deployment/explorer -n ${NAMESPACE} --timeout=300s || error "Failed to rollout explorer"
success "Kubernetes deployment completed"
}
# Deploy with Docker Compose
deploy_docker_compose() {
log "Deploying with Docker Compose..."
# Set environment variables
export POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-aitbc123}
export REDIS_PASSWORD=${REDIS_PASSWORD:-aitbc123}
export GRAFANA_PASSWORD=${GRAFANA_PASSWORD:-admin}
# Stop existing services
log "Stopping existing services..."
docker-compose down || true
# Start services
log "Starting services..."
docker-compose up -d || error "Failed to start services"
# Wait for services to be healthy
log "Waiting for services to be healthy..."
sleep 30
# Check service health
for service in postgres redis blockchain-node coordinator-api exchange-integration; do
log "Checking ${service} health..."
if ! docker-compose ps ${service} | grep -q "Up"; then
error "Service ${service} is not running"
fi
done
success "Docker Compose deployment completed"
}
# Run health checks
run_health_checks() {
log "Running health checks..."
if command -v kubectl >/dev/null 2>&1 && kubectl cluster-info >/dev/null 2>&1; then
# Kubernetes health checks
log "Checking Kubernetes deployment health..."
# Check pod status
kubectl get pods -n ${NAMESPACE} || error "Failed to get pod status"
# Check service health
services=("coordinator-api" "exchange-integration" "trading-engine" "plugin-registry")
for service in "${services[@]}"; do
log "Checking ${service} health..."
kubectl get pods -n ${NAMESPACE} -l app=${service} -o jsonpath='{.items[0].status.phase}' | grep -q "Running" || error "${service} pods are not running"
# Check service endpoint
service_url=$(kubectl get svc ${service} -n ${NAMESPACE} -o jsonpath='{.status.loadBalancer.ingress[0].ip}' 2>/dev/null || echo "")
if [ -n "$service_url" ]; then
curl -f http://${service_url}/health >/dev/null 2>&1 || error "${service} health check failed"
fi
done
else
# Docker Compose health checks
log "Checking Docker Compose deployment health..."
services=("coordinator-api" "exchange-integration" "trading-engine" "plugin-registry")
for service in "${services[@]}"; do
log "Checking ${service} health..."
if ! docker-compose ps ${service} | grep -q "Up"; then
error "Service ${service} is not running"
fi
# Check health endpoint
port=$(docker-compose port ${service} | cut -d: -f2)
curl -f http://localhost:${port}/health >/dev/null 2>&1 || error "${service} health check failed"
done
fi
success "All health checks passed"
}
# Run smoke tests
run_smoke_tests() {
log "Running smoke tests..."
# Test CLI functionality
log "Testing CLI functionality..."
docker-compose exec aitbc-cli python -m aitbc_cli.main --help >/dev/null || error "CLI smoke test failed"
# Test API endpoints
log "Testing API endpoints..."
# Test coordinator API
coordinator_port=$(docker-compose port coordinator-api | cut -d: -f2)
curl -f http://localhost:${coordinator_port}/health >/dev/null || error "Coordinator API smoke test failed"
# Test exchange API
exchange_port=$(docker-compose port exchange-integration | cut -d: -f2)
curl -f http://localhost:${exchange_port}/health >/dev/null || error "Exchange API smoke test failed"
# Test plugin registry
plugin_port=$(docker-compose port plugin-registry | cut -d: -f2)
curl -f http://localhost:${plugin_port}/health >/dev/null || error "Plugin registry smoke test failed"
success "Smoke tests passed"
}
# Rollback deployment
rollback() {
log "Rolling back deployment..."
if command -v kubectl >/dev/null 2>&1 && kubectl cluster-info >/dev/null 2>&1; then
# Kubernetes rollback
log "Rolling back Kubernetes deployment..."
services=("coordinator-api" "exchange-integration" "trading-engine" "plugin-registry")
for service in "${services[@]}"; do
log "Rolling back ${service}..."
kubectl rollout undo deployment/${service} -n ${NAMESPACE} || error "Failed to rollback ${service}"
kubectl rollout status deployment/${service} -n ${NAMESPACE} --timeout=300s || error "Failed to rollback ${service}"
done
else
# Docker Compose rollback
log "Rolling back Docker Compose deployment..."
docker-compose down || error "Failed to stop services"
# Restart with previous version (assuming it's tagged as 'previous')
export VERSION=previous
deploy_docker_compose
fi
success "Rollback completed"
}
# Cleanup
cleanup() {
log "Cleaning up..."
# Remove unused Docker images
docker image prune -f || true
# Remove unused Docker volumes
docker volume prune -f || true
success "Cleanup completed"
}
# Main deployment function
main() {
log "Starting AITBC deployment..."
log "Environment: ${ENVIRONMENT}"
log "Version: ${VERSION}"
log "Region: ${REGION}"
case "${ENVIRONMENT}" in
"local"|"docker")
check_prerequisites
build_images
run_tests
deploy_docker_compose
run_health_checks
run_smoke_tests
;;
"staging"|"production")
check_prerequisites
build_images
run_tests
deploy_kubernetes
run_health_checks
run_smoke_tests
;;
"rollback")
rollback
;;
"cleanup")
cleanup
;;
*)
error "Unknown environment: ${ENVIRONMENT}. Use 'local', 'docker', 'staging', 'production', 'rollback', or 'cleanup'"
;;
esac
success "Deployment completed successfully!"
# Display deployment information
log "Deployment Information:"
log "Environment: ${ENVIRONMENT}"
log "Version: ${VERSION}"
log "Namespace: ${NAMESPACE}"
if [ "${ENVIRONMENT}" = "docker" ]; then
log "Services are running on:"
log " Coordinator API: http://localhost:8001"
log " Exchange Integration: http://localhost:8010"
log " Trading Engine: http://localhost:8012"
log " Plugin Registry: http://localhost:8013"
log " Plugin Marketplace: http://localhost:8014"
log " Explorer: http://localhost:8020"
log " Grafana: http://localhost:3000 (admin/admin)"
log " Prometheus: http://localhost:9090"
fi
}
# Handle script interruption
trap 'error "Script interrupted"' INT TERM
# Export environment variables for envsubst
export POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-aitbc123}
export REDIS_PASSWORD=${REDIS_PASSWORD:-aitbc123}
export GRAFANA_PASSWORD=${GRAFANA_PASSWORD:-admin}
export VERSION=${VERSION}
export NAMESPACE=${NAMESPACE}
# Run main function
main "$@"

View File

@@ -0,0 +1,588 @@
#!/bin/bash
# AITBC Production Deployment Script
# This script handles production deployment with zero-downtime
set -e
# Production Configuration
ENVIRONMENT="production"
VERSION=${1:-latest}
REGION=${2:-us-east-1}
NAMESPACE="aitbc-prod"
DOMAIN="aitbc.dev"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# Logging
log() {
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
exit 1
}
success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
# Pre-deployment checks
pre_deployment_checks() {
log "Running pre-deployment checks..."
# Check if we're on production branch
current_branch=$(git branch --show-current)
if [ "$current_branch" != "production" ]; then
error "Must be on production branch to deploy to production"
fi
# Check if all tests pass
log "Running tests..."
pytest tests/unit/ -v --tb=short || error "Unit tests failed"
pytest tests/integration/ -v --tb=short || error "Integration tests failed"
pytest tests/security/ -v --tb=short || error "Security tests failed"
pytest tests/performance/test_performance_lightweight.py::TestPerformance::test_cli_performance -v --tb=short || error "Performance tests failed"
# Check if production infrastructure is ready
log "Checking production infrastructure..."
kubectl get nodes | grep -q "Ready" || error "Production nodes not ready"
kubectl get namespace $NAMESPACE || kubectl create namespace $NAMESPACE
success "Pre-deployment checks passed"
}
# Backup current deployment
backup_current_deployment() {
log "Backing up current deployment..."
# Create backup directory
backup_dir="/opt/aitbc/backups/pre-deployment-$(date +%Y%m%d_%H%M%S)"
mkdir -p $backup_dir
# Backup current configuration
kubectl get all -n $NAMESPACE -o yaml > $backup_dir/current-deployment.yaml
# Backup database
pg_dump $DATABASE_URL | gzip > $backup_dir/database_backup.sql.gz
# Backup application data
kubectl exec -n $NAMESPACE deployment/coordinator-api -- tar -czf /tmp/app_data_backup.tar.gz /app/data
kubectl cp $NAMESPACE/deployment/coordinator-api:/tmp/app_data_backup.tar.gz $backup_dir/app_data_backup.tar.gz
success "Backup completed: $backup_dir"
}
# Build production images
build_production_images() {
log "Building production images..."
# Build CLI image
docker build -t aitbc/cli:$VERSION -f Dockerfile --target production . || error "Failed to build CLI image"
# Build service images
for service_dir in apps/*/; do
if [ -f "$service_dir/Dockerfile" ]; then
service_name=$(basename "$service_dir")
log "Building $service_name image..."
docker build -t aitbc/$service_name:$VERSION -f "$service_dir/Dockerfile" "$service_dir" || error "Failed to build $service_name image"
fi
done
# Push images to registry
log "Pushing images to registry..."
docker push aitbc/cli:$VERSION
for service_dir in apps/*/; do
if [ -f "$service_dir/Dockerfile" ]; then
service_name=$(basename "$service_dir")
docker push aitbc/$service_name:$VERSION
fi
done
success "Production images built and pushed"
}
# Deploy database
deploy_database() {
log "Deploying database..."
# Deploy PostgreSQL
helm upgrade --install postgres bitnami/postgresql \
--namespace $NAMESPACE \
--set auth.postgresPassword=$POSTGRES_PASSWORD \
--set auth.database=aitbc_prod \
--set primary.persistence.size=100Gi \
--set primary.resources.requests.memory=8Gi \
--set primary.resources.requests.cpu=2000m \
--set primary.resources.limits.memory=16Gi \
--set primary.resources.limits.cpu=4000m \
--set readReplicas.replicaCount=1 \
--set readReplicas.persistence.size=50Gi \
--wait \
--timeout 10m || error "Failed to deploy PostgreSQL"
# Deploy Redis
helm upgrade --install redis bitnami/redis \
--namespace $NAMESPACE \
--set auth.password=$REDIS_PASSWORD \
--set master.persistence.size=20Gi \
--set master.resources.requests.memory=2Gi \
--set master.resources.requests.cpu=1000m \
--set master.resources.limits.memory=4Gi \
--set master.resources.limits.cpu=2000m \
--set replica.replicaCount=2 \
--wait \
--timeout 5m || error "Failed to deploy Redis"
success "Database deployed successfully"
}
# Deploy core services
deploy_core_services() {
log "Deploying core services..."
# Deploy blockchain services
for service in blockchain-node consensus-node network-node; do
log "Deploying $service..."
# Create deployment manifest
cat > /tmp/$service-deployment.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: $service
namespace: $NAMESPACE
spec:
replicas: 2
selector:
matchLabels:
app: $service
template:
metadata:
labels:
app: $service
spec:
containers:
- name: $service
image: aitbc/$service:$VERSION
ports:
- containerPort: 8007
name: http
env:
- name: NODE_ENV
value: "production"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: aitbc-secrets
key: database-url
- name: REDIS_URL
valueFrom:
secretKeyRef:
name: aitbc-secrets
key: redis-url
resources:
requests:
memory: "2Gi"
cpu: "1000m"
limits:
memory: "4Gi"
cpu: "2000m"
livenessProbe:
httpGet:
path: /health
port: 8007
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 8007
initialDelaySeconds: 5
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: $service
namespace: $NAMESPACE
spec:
selector:
app: $service
ports:
- port: 8007
targetPort: 8007
type: ClusterIP
EOF
# Apply deployment
kubectl apply -f /tmp/$service-deployment.yaml -n $NAMESPACE || error "Failed to deploy $service"
# Wait for deployment
kubectl rollout status deployment/$service -n $NAMESPACE --timeout=300s || error "Failed to rollout $service"
rm /tmp/$service-deployment.yaml
done
success "Core services deployed successfully"
}
# Deploy application services
deploy_application_services() {
log "Deploying application services..."
services=("coordinator-api" "exchange-integration" "compliance-service" "trading-engine" "plugin-registry" "plugin-marketplace" "plugin-security" "plugin-analytics" "global-infrastructure" "global-ai-agents" "multi-region-load-balancer")
for service in "${services[@]}"; do
log "Deploying $service..."
# Determine port
case $service in
"coordinator-api") port=8001 ;;
"exchange-integration") port=8010 ;;
"compliance-service") port=8011 ;;
"trading-engine") port=8012 ;;
"plugin-registry") port=8013 ;;
"plugin-marketplace") port=8014 ;;
"plugin-security") port=8015 ;;
"plugin-analytics") port=8016 ;;
"global-infrastructure") port=8017 ;;
"global-ai-agents") port=8018 ;;
"multi-region-load-balancer") port=8019 ;;
esac
# Create deployment manifest
cat > /tmp/$service-deployment.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: $service
namespace: $NAMESPACE
spec:
replicas: 3
selector:
matchLabels:
app: $service
template:
metadata:
labels:
app: $service
spec:
containers:
- name: $service
image: aitbc/$service:$VERSION
ports:
- containerPort: $port
name: http
env:
- name: NODE_ENV
value: "production"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: aitbc-secrets
key: database-url
- name: REDIS_URL
valueFrom:
secretKeyRef:
name: aitbc-secrets
key: redis-url
- name: JWT_SECRET
valueFrom:
secretKeyRef:
name: aitbc-secrets
key: jwt-secret
- name: ENCRYPTION_KEY
valueFrom:
secretKeyRef:
name: aitbc-secrets
key: encryption-key
resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "1000m"
livenessProbe:
httpGet:
path: /health
port: $port
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: $port
initialDelaySeconds: 5
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: $service
namespace: $NAMESPACE
spec:
selector:
app: $service
ports:
- port: $port
targetPort: $port
type: ClusterIP
EOF
# Apply deployment
kubectl apply -f /tmp/$service-deployment.yaml -n $NAMESPACE || error "Failed to deploy $service"
# Wait for deployment
kubectl rollout status deployment/$service -n $NAMESPACE --timeout=300s || error "Failed to rollout $service"
rm /tmp/$service-deployment.yaml
done
success "Application services deployed successfully"
}
# Deploy ingress and load balancer
deploy_ingress() {
log "Deploying ingress and load balancer..."
# Create ingress manifest
cat > /tmp/ingress.yaml << EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: aitbc-ingress
namespace: $NAMESPACE
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/rate-limit: "100"
nginx.ingress.kubernetes.io/rate-limit-window: "1m"
spec:
tls:
- hosts:
- api.$DOMAIN
- marketplace.$DOMAIN
- explorer.$DOMAIN
secretName: aitbc-tls
rules:
- host: api.$DOMAIN
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: coordinator-api
port:
number: 8001
- host: marketplace.$DOMAIN
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: plugin-marketplace
port:
number: 8014
- host: explorer.$DOMAIN
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: explorer
port:
number: 8020
EOF
# Apply ingress
kubectl apply -f /tmp/ingress.yaml -n $NAMESPACE || error "Failed to deploy ingress"
rm /tmp/ingress.yaml
success "Ingress deployed successfully"
}
# Deploy monitoring
deploy_monitoring() {
log "Deploying monitoring stack..."
# Deploy Prometheus
helm upgrade --install prometheus prometheus-community/kube-prometheus-stack \
--namespace $NAMESPACE \
--create-namespace \
--set prometheus.prometheus.spec.retention=30d \
--set prometheus.prometheus.spec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage=50Gi \
--set grafana.adminPassword=$GRAFANA_PASSWORD \
--set grafana.persistence.size=10Gi \
--set defaultRules.create=true \
--wait \
--timeout 10m || error "Failed to deploy monitoring"
# Import Grafana dashboards
log "Importing Grafana dashboards..."
# Create dashboard configmaps
kubectl create configmap grafana-dashboards \
--from-file=monitoring/grafana/dashboards/ \
-n $NAMESPACE \
--dry-run=client -o yaml | kubectl apply -f -
success "Monitoring deployed successfully"
}
# Run post-deployment tests
post_deployment_tests() {
log "Running post-deployment tests..."
# Wait for all services to be ready
kubectl wait --for=condition=ready pod -l app!=pod -n $NAMESPACE --timeout=600s
# Test API endpoints
endpoints=(
"coordinator-api:8001"
"exchange-integration:8010"
"trading-engine:8012"
"plugin-registry:8013"
"plugin-marketplace:8014"
)
for service_port in "${endpoints[@]}"; do
service=$(echo $service_port | cut -d: -f1)
port=$(echo $service_port | cut -d: -f2)
log "Testing $service..."
# Port-forward and test
kubectl port-forward -n $NAMESPACE deployment/$service $port:8007 &
port_forward_pid=$!
sleep 5
if curl -f -s http://localhost:$port/health > /dev/null; then
success "$service is healthy"
else
error "$service health check failed"
fi
# Kill port-forward
kill $port_forward_pid 2>/dev/null || true
done
# Test external endpoints
external_endpoints=(
"https://api.$DOMAIN/health"
"https://marketplace.$DOMAIN/api/v1/marketplace/featured"
)
for endpoint in "${external_endpoints[@]}"; do
log "Testing $endpoint..."
if curl -f -s $endpoint > /dev/null; then
success "$endpoint is responding"
else
error "$endpoint is not responding"
fi
done
success "Post-deployment tests passed"
}
# Create secrets
create_secrets() {
log "Creating secrets..."
# Create secret from environment variables
kubectl create secret generic aitbc-secrets \
--from-literal=database-url="$DATABASE_URL" \
--from-literal=redis-url="$REDIS_URL" \
--from-literal=jwt-secret="$JWT_SECRET" \
--from-literal=encryption-key="$ENCRYPTION_KEY" \
--from-literal=postgres-password="$POSTGRES_PASSWORD" \
--from-literal=redis-password="$REDIS_PASSWORD" \
--namespace $NAMESPACE \
--dry-run=client -o yaml | kubectl apply -f -
success "Secrets created"
}
# Main deployment function
main() {
log "Starting AITBC production deployment..."
log "Environment: $ENVIRONMENT"
log "Version: $VERSION"
log "Region: $REGION"
log "Domain: $DOMAIN"
# Check prerequisites
command -v kubectl >/dev/null 2>&1 || error "kubectl is not installed"
command -v helm >/dev/null 2>&1 || error "Helm is not installed"
kubectl cluster-info >/dev/null 2>&1 || error "Cannot connect to Kubernetes cluster"
# Run deployment steps
pre_deployment_checks
create_secrets
backup_current_deployment
build_production_images
deploy_database
deploy_core_services
deploy_application_services
deploy_ingress
deploy_monitoring
post_deployment_tests
success "Production deployment completed successfully!"
# Display deployment information
log "Deployment Information:"
log "Environment: $ENVIRONMENT"
log "Version: $VERSION"
log "Namespace: $NAMESPACE"
log "Domain: $DOMAIN"
log ""
log "Services are available at:"
log " API: https://api.$DOMAIN"
log " Marketplace: https://marketplace.$DOMAIN"
log " Explorer: https://explorer.$DOMAIN"
log " Grafana: https://grafana.$DOMAIN"
log ""
log "To check deployment status:"
log " kubectl get pods -n $NAMESPACE"
log " kubectl get services -n $NAMESPACE"
log ""
log "To view logs:"
log " kubectl logs -f deployment/coordinator-api -n $NAMESPACE"
}
# Handle script interruption
trap 'error "Script interrupted"' INT TERM
# Export environment variables
export DATABASE_URL=${DATABASE_URL}
export REDIS_URL=${REDIS_URL}
export JWT_SECRET=${JWT_SECRET}
export ENCRYPTION_KEY=${ENCRYPTION_KEY}
export POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
export REDIS_PASSWORD=${REDIS_PASSWORD}
export GRAFANA_PASSWORD=${GRAFANA_PASSWORD}
export VERSION=${VERSION}
export NAMESPACE=${NAMESPACE}
export DOMAIN=${DOMAIN}
# Run main function
main "$@"

View File

@@ -4,30 +4,30 @@
case "${1:-help}" in case "${1:-help}" in
"start") "start")
echo "Starting AITBC services..." echo "Starting AITBC services..."
sudo systemctl start aitbc-coordinator-api.service systemctl start aitbc-coordinator-api.service
sudo systemctl start aitbc-blockchain-node.service systemctl start aitbc-blockchain-node.service
sudo systemctl start aitbc-blockchain-rpc.service systemctl start aitbc-blockchain-rpc.service
echo "Services started" echo "Services started"
;; ;;
"stop") "stop")
echo "Stopping AITBC services..." echo "Stopping AITBC services..."
sudo systemctl stop aitbc-coordinator-api.service systemctl stop aitbc-coordinator-api.service
sudo systemctl stop aitbc-blockchain-node.service systemctl stop aitbc-blockchain-node.service
sudo systemctl stop aitbc-blockchain-rpc.service systemctl stop aitbc-blockchain-rpc.service
echo "Services stopped" echo "Services stopped"
;; ;;
"restart") "restart")
echo "Restarting AITBC services..." echo "Restarting AITBC services..."
sudo systemctl restart aitbc-coordinator-api.service systemctl restart aitbc-coordinator-api.service
sudo systemctl restart aitbc-blockchain-node.service systemctl restart aitbc-blockchain-node.service
sudo systemctl restart aitbc-blockchain-rpc.service systemctl restart aitbc-blockchain-rpc.service
echo "Services restarted" echo "Services restarted"
;; ;;
"status") "status")
echo "=== AITBC Services Status ===" echo "=== AITBC Services Status ==="
sudo systemctl status aitbc-coordinator-api.service --no-pager systemctl status aitbc-coordinator-api.service --no-pager
sudo systemctl status aitbc-blockchain-node.service --no-pager systemctl status aitbc-blockchain-node.service --no-pager
sudo systemctl status aitbc-blockchain-rpc.service --no-pager systemctl status aitbc-blockchain-rpc.service --no-pager
;; ;;
"logs") "logs")
echo "=== AITBC Service Logs ===" echo "=== AITBC Service Logs ==="

Some files were not shown because too many files have changed in this diff Show More