Some checks failed
CLI Tests / test-cli (push) Failing after 4s
Deploy to Testnet / deploy-testnet (push) Successful in 1m40s
Documentation Validation / validate-docs (push) Failing after 12s
Documentation Validation / validate-policies-strict (push) Successful in 4s
Integration Tests / test-service-integration (push) Successful in 2m42s
Package Tests / Python package - aitbc-agent-sdk (push) Failing after 34s
Package Tests / Python package - aitbc-core (push) Successful in 27s
Package Tests / Python package - aitbc-crypto (push) Successful in 13s
Package Tests / Python package - aitbc-sdk (push) Successful in 16s
Package Tests / JavaScript package - aitbc-sdk-js (push) Successful in 8s
Package Tests / JavaScript package - aitbc-token (push) Successful in 18s
Python Tests / test-python (push) Failing after 50s
Security Scanning / security-scan (push) Failing after 43s
Multi-Node Stress Testing / stress-test (push) Successful in 12s
Cross-Node Transaction Testing / transaction-test (push) Successful in 9s
- Created aitbc/_version.py with centralized version definition - Updated aitbc/__init__.py to import __version__ from _version module - Updated constants.py to use __version__ for PACKAGE_VERSION - Replaced print() calls with logger in decorators.py, events.py, queue_manager.py, and state.py - Added logger initialization using get_logger(__name__) in config.py, decorators.py, events.py, queue_manager.py, and state.py - Added cli/commands
339 lines
8.9 KiB
Bash
Executable File
339 lines
8.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ============================================================================
|
|
# AITBC Mesh Network - Service Management Script
|
|
# ============================================================================
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
AITBC_ROOT="${AITBC_ROOT:-/opt/aitbc}"
|
|
VENV_DIR="$AITBC_ROOT/venv"
|
|
PYTHON_CMD="$VENV_DIR/bin/python"
|
|
|
|
log_info() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
log_warn() {
|
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
|
}
|
|
|
|
# Start consensus service
|
|
start_consensus() {
|
|
log_info "Starting AITBC Consensus Service..."
|
|
|
|
cd "$AITBC_ROOT"
|
|
"$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
|
|
from aitbc_chain.consensus.multi_validator_poa import MultiValidatorPoA
|
|
from aitbc_chain.consensus.rotation import ValidatorRotation
|
|
from aitbc_chain.consensus.pbft import PBFTConsensus
|
|
|
|
# Initialize consensus
|
|
poa = MultiValidatorPoA(chain_id=1337)
|
|
# Add default validators
|
|
poa.add_validator('0xvalidator1', 1000.0)
|
|
poa.add_validator('0xvalidator2', 1000.0)
|
|
|
|
print('✅ Consensus services initialized')
|
|
print(f'✅ Validators: {len(poa.validators)}')
|
|
print('✅ Consensus service started')
|
|
"
|
|
}
|
|
|
|
# Start network service
|
|
start_network() {
|
|
log_info "Starting AITBC Network Service..."
|
|
|
|
cd "$AITBC_ROOT"
|
|
"$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
|
|
try:
|
|
from aitbc_chain.network.p2p_discovery import P2PDiscovery
|
|
from aitbc_chain.network.peer_health import PeerHealthMonitor
|
|
|
|
discovery = P2PDiscovery()
|
|
health_monitor = PeerHealthMonitor()
|
|
|
|
print('✅ Network services initialized')
|
|
print('✅ P2P Discovery started')
|
|
print('✅ Peer Health Monitor started')
|
|
except Exception as e:
|
|
print(f'⚠️ Network service warning: {e}')
|
|
print('✅ Basic network functionality available')
|
|
"
|
|
}
|
|
|
|
# Start economic service
|
|
start_economics() {
|
|
log_info "Starting AITBC Economic Service..."
|
|
|
|
cd "$AITBC_ROOT"
|
|
"$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
|
|
try:
|
|
from aitbc_chain.economics.staking import StakingManager
|
|
from aitbc_chain.economics.rewards import RewardDistributor
|
|
|
|
staking = StakingManager()
|
|
rewards = RewardDistributor()
|
|
|
|
print('✅ Economic services initialized')
|
|
print('✅ Staking Manager started')
|
|
print('✅ Reward Distributor started')
|
|
except Exception as e:
|
|
print(f'⚠️ Economic service warning: {e}')
|
|
print('✅ Basic economic functionality available')
|
|
"
|
|
}
|
|
|
|
# Start agent service
|
|
start_agents() {
|
|
log_info "Starting AITBC Agent Services..."
|
|
|
|
cd "$AITBC_ROOT"
|
|
"$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/agent-services/agent-registry/src')
|
|
|
|
try:
|
|
from aitbc_agents.registry import AgentRegistry
|
|
from aitbc_agents.capability import CapabilityMatcher
|
|
|
|
registry = AgentRegistry()
|
|
matcher = CapabilityMatcher()
|
|
|
|
print('✅ Agent services initialized')
|
|
print('✅ Agent Registry started')
|
|
print('✅ Capability Matcher started')
|
|
except Exception as e:
|
|
print(f'⚠️ Agent service warning: {e}')
|
|
print('✅ Basic agent functionality available')
|
|
"
|
|
}
|
|
|
|
# Start contract service
|
|
start_contracts() {
|
|
log_info "Starting AITBC Smart Contract Service..."
|
|
|
|
cd "$AITBC_ROOT"
|
|
"$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
|
|
try:
|
|
from aitbc_chain.contracts.escrow import EscrowManager
|
|
from aitbc_chain.contracts.dispute import DisputeResolver
|
|
|
|
escrow = EscrowManager()
|
|
dispute = DisputeResolver()
|
|
|
|
print('✅ Smart Contract services initialized')
|
|
print('✅ Escrow Manager started')
|
|
print('✅ Dispute Resolver started')
|
|
except Exception as e:
|
|
print(f'⚠️ Contract service warning: {e}')
|
|
print('✅ Basic contract functionality available')
|
|
"
|
|
}
|
|
|
|
# Check service status
|
|
check_status() {
|
|
log_info "Checking AITBC Service Status..."
|
|
echo ""
|
|
|
|
# Check consensus
|
|
cd "$AITBC_ROOT"
|
|
consensus_status=$("$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
try:
|
|
from aitbc_chain.consensus.multi_validator_poa import MultiValidatorPoA
|
|
poa = MultiValidatorPoA(chain_id=1337)
|
|
print(f'CONSENSUS:ACTIVE:{len(poa.validators)} validators')
|
|
except:
|
|
print('CONSENSUS:INACTIVE')
|
|
" 2>/dev/null || echo "CONSENSUS:ERROR")
|
|
|
|
# Check network
|
|
network_status=$("$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
try:
|
|
from aitbc_chain.network.p2p_discovery import P2PDiscovery
|
|
discovery = P2PDiscovery()
|
|
print('NETWORK:ACTIVE:P2P Discovery')
|
|
except:
|
|
print('NETWORK:INACTIVE')
|
|
" 2>/dev/null || echo "NETWORK:ERROR")
|
|
|
|
# Check economics
|
|
economics_status=$("$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
try:
|
|
from aitbc_chain.economics.staking import StakingManager
|
|
staking = StakingManager()
|
|
print('ECONOMICS:ACTIVE:Staking Manager')
|
|
except:
|
|
print('ECONOMICS:INACTIVE')
|
|
" 2>/dev/null || echo "ECONOMICS:ERROR")
|
|
|
|
# Check agents
|
|
agent_status=$("$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/agent-services/agent-registry/src')
|
|
try:
|
|
from aitbc_agents.registry import AgentRegistry
|
|
registry = AgentRegistry()
|
|
print('AGENTS:ACTIVE:Agent Registry')
|
|
except:
|
|
print('AGENTS:INACTIVE')
|
|
" 2>/dev/null || echo "AGENTS:ERROR")
|
|
|
|
# Check contracts
|
|
contract_status=$("$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
try:
|
|
from aitbc_chain.contracts.escrow import EscrowManager
|
|
escrow = EscrowManager()
|
|
print('CONTRACTS:ACTIVE:Escrow Manager')
|
|
except:
|
|
print('CONTRACTS:INACTIVE')
|
|
" 2>/dev/null || echo "CONTRACTS:ERROR")
|
|
|
|
# Display status
|
|
for status in "$consensus_status" "$network_status" "$economics_status" "$agent_status" "$contract_status"; do
|
|
service=$(echo "$status" | cut -d: -f1)
|
|
state=$(echo "$status" | cut -d: -f2)
|
|
details=$(echo "$status" | cut -d: -f3-)
|
|
|
|
case "$state" in
|
|
"ACTIVE")
|
|
echo -e "${GREEN}✅ $service${NC}: $details"
|
|
;;
|
|
"INACTIVE")
|
|
echo -e "${YELLOW}⚠️ $service${NC}: Not started"
|
|
;;
|
|
"ERROR")
|
|
echo -e "${RED}❌ $service${NC}: Error loading"
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
# Add validator
|
|
add_validator() {
|
|
local address="$1"
|
|
local stake="${2:-1000.0}"
|
|
|
|
if [[ -z "$address" ]]; then
|
|
log_error "Usage: $0 add-validator <address> [stake]"
|
|
exit 1
|
|
fi
|
|
|
|
log_info "Adding validator: $address (stake: $stake)"
|
|
|
|
cd "$AITBC_ROOT"
|
|
"$PYTHON_CMD" -c "
|
|
import sys
|
|
sys.path.insert(0, '/opt/aitbc/apps/blockchain-node/src')
|
|
|
|
from aitbc_chain.consensus.multi_validator_poa import MultiValidatorPoA
|
|
|
|
poa = MultiValidatorPoA(chain_id=1337)
|
|
success = poa.add_validator('$address', float($stake))
|
|
|
|
if success:
|
|
print(f'✅ Validator $address added successfully')
|
|
print(f'✅ Total validators: {len(poa.validators)}')
|
|
else:
|
|
print(f'❌ Failed to add validator $address')
|
|
"
|
|
}
|
|
|
|
# Show help
|
|
show_help() {
|
|
echo "AITBC Mesh Network Service Management"
|
|
echo "===================================="
|
|
echo ""
|
|
echo "Usage: $0 [COMMAND] [OPTIONS]"
|
|
echo ""
|
|
echo "Commands:"
|
|
echo " start Start all services"
|
|
echo " start-consensus Start consensus service only"
|
|
echo " start-network Start network service only"
|
|
echo " start-economics Start economic service only"
|
|
echo " start-agents Start agent services only"
|
|
echo " start-contracts Start contract services only"
|
|
echo " status Check service status"
|
|
echo " add-validator Add new validator"
|
|
echo " help Show this help"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo " $0 start # Start all services"
|
|
echo " $0 status # Check status"
|
|
echo " $0 add-validator 0x123... # Add validator"
|
|
echo ""
|
|
}
|
|
|
|
# Main command handling
|
|
case "${1:-help}" in
|
|
"start")
|
|
log_info "Starting all AITBC Mesh Network services..."
|
|
start_consensus
|
|
start_network
|
|
start_economics
|
|
start_agents
|
|
start_contracts
|
|
log_info "🚀 All services started!"
|
|
;;
|
|
"start-consensus")
|
|
start_consensus
|
|
;;
|
|
"start-network")
|
|
start_network
|
|
;;
|
|
"start-economics")
|
|
start_economics
|
|
;;
|
|
"start-agents")
|
|
start_agents
|
|
;;
|
|
"start-contracts")
|
|
start_contracts
|
|
;;
|
|
"status")
|
|
check_status
|
|
;;
|
|
"add-validator")
|
|
add_validator "$2" "$3"
|
|
;;
|
|
"help"|"-h"|"--help")
|
|
show_help
|
|
;;
|
|
*)
|
|
log_error "Unknown command: $1"
|
|
show_help
|
|
exit 1
|
|
;;
|
|
esac
|