Merge gitea/main, preserving release v0.2.2 stability and CLI documentation
This commit is contained in:
25
config/genesis/genesis_ait_devnet.yaml
Normal file
25
config/genesis/genesis_ait_devnet.yaml
Normal 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
|
||||||
29
config/genesis/genesis_brother_chain_1773403269.yaml
Normal file
29
config/genesis/genesis_brother_chain_1773403269.yaml
Normal 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: []
|
||||||
249
config/genesis/genesis_enhanced_devnet.yaml
Normal file
249
config/genesis/genesis_enhanced_devnet.yaml
Normal 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
|
||||||
68
config/genesis/genesis_enhanced_local.yaml
Normal file
68
config/genesis/genesis_enhanced_local.yaml
Normal 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
|
||||||
85
config/genesis/genesis_enhanced_template.yaml
Normal file
85
config/genesis/genesis_enhanced_template.yaml
Normal 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"
|
||||||
296
config/genesis/genesis_prod.yaml
Normal file
296
config/genesis/genesis_prod.yaml
Normal 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'
|
||||||
76
config/genesis/test_multichain_genesis.yaml
Normal file
76
config/genesis/test_multichain_genesis.yaml
Normal 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
|
||||||
30
config/networks/chain_enhanced_devnet.yaml
Normal file
30
config/networks/chain_enhanced_devnet.yaml
Normal 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
|
||||||
8
config/templates/dummy.yaml
Normal file
8
config/templates/dummy.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
genesis:
|
||||||
|
chain_type: topic
|
||||||
|
consensus:
|
||||||
|
algorithm: pos
|
||||||
|
name: Test Chain
|
||||||
|
privacy:
|
||||||
|
visibility: public
|
||||||
|
purpose: test
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:**
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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'
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -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 ✅
|
||||||
|
|||||||
@@ -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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:**
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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**
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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**
|
||||||
|
|||||||
@@ -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**
|
||||||
|
|||||||
@@ -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:**
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
392
scripts/deployment/deploy.sh
Executable 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 "$@"
|
||||||
588
scripts/deployment/production-deploy.sh
Executable file
588
scripts/deployment/production-deploy.sh
Executable 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 "$@"
|
||||||
@@ -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
Reference in New Issue
Block a user