refactor: migrate P2P network from Redis gossip to direct TCP mesh architecture
Some checks failed
Security Scanning / security-scan (push) Has been cancelled
Integration Tests / test-service-integration (push) Has been cancelled
Python Tests / test-python (push) Has been cancelled
Systemd Sync / sync-systemd (push) Has been cancelled

- Replaced Redis-based P2P with direct TCP connections for decentralized mesh networking
- Added handshake protocol with node_id exchange for peer authentication
- Implemented bidirectional connection management (inbound/outbound streams)
- Added peer dialing loop to continuously reconnect to initial peers
- Added ping/pong keepalive mechanism to maintain active connections
- Prevented duplicate connections through endpoint
This commit is contained in:
aitbc
2026-04-09 12:07:34 +02:00
parent 9bf38e1662
commit 5c09774e06
22 changed files with 304 additions and 473 deletions

View File

@@ -1,38 +0,0 @@
[Unit]
Description=AITBC Advanced AI Service - Enhanced AI Capabilities
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc/apps/coordinator-api
Environment=PATH=/usr/bin
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src
ExecStart=/opt/aitbc/venv/bin/python -m app.services.advanced_ai_service
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-advanced-ai
# Security settings (relaxed for development)
# NoNewPrivileges=true
# PrivateTmp=true
# ProtectSystem=strict
# ProtectHome=true
ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data /opt/aitbc/apps/coordinator-api
# Resource limits
LimitNOFILE=65536
LimitNPROC=4096
# GPU access (if available)
DeviceAllow=/dev/nvidia0 rw
DeviceAllow=/dev/nvidiactl rw
DeviceAllow=/dev/nvidia-uvm rw
[Install]
WantedBy=multi-user.target

View File

@@ -1,46 +0,0 @@
[Unit]
Description=AITBC Blockchain HTTP API (Port 8005)
After=network.target aitbc-blockchain-node.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=NODE_ID=aitbc
Environment=BLOCKCHAIN_HTTP_PORT=8005
Environment=PYTHONPATH=/opt/aitbc/services
EnvironmentFile=/etc/aitbc/production.env
# Blockchain HTTP execution
ExecStart=/opt/aitbc/venv/bin/python /opt/aitbc/services/blockchain_http_launcher.py
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
TimeoutStopSec=10
# Production reliability
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=60
# Production logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-blockchain-http
# Production security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/aitbc/data/blockchain /var/log/aitbc/production/blockchain
# Production performance
LimitNOFILE=65536
LimitNPROC=4096
MemoryMax=1G
CPUQuota=25%
[Install]
WantedBy=multi-user.target

View File

@@ -1,6 +1,6 @@
[Unit]
Description=AITBC Blockchain P2P Network Service
After=network.target redis.service
After=network.target
[Service]
Type=simple
@@ -10,7 +10,7 @@ WorkingDirectory=/opt/aitbc/apps/blockchain-node
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=/etc/aitbc/blockchain.env
ExecStart=/opt/aitbc/venv/bin/python -m aitbc_chain.p2p_network --host ${p2p_bind_host} --port ${p2p_bind_port} --redis ${gossip_broadcast_url} --node-id ${proposer_id}
ExecStart=/opt/aitbc/venv/bin/python -m aitbc_chain.p2p_network --host ${p2p_bind_host} --port ${p2p_bind_port} --peers ${p2p_peers} --node-id ${proposer_id}
Restart=always
RestartSec=5
StandardOutput=journal

View File

@@ -1,11 +0,0 @@
[Unit]
Description=AITBC Coordinator Proxy Health Check
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/opt/aitbc/apps/coordinator-api/scripts/check_coordinator_proxy.sh
[Install]
WantedBy=multi-user.target

View File

@@ -1,14 +0,0 @@
[Unit]
Description=AITBC Cross Chain Reputation Service
After=network.target
[Service]
Type=simple
User=aitbc
WorkingDirectory=/opt/aitbc/services
ExecStart=/usr/bin/python3 -m cross_chain_reputation
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -1,13 +0,0 @@
[Unit]
Description=AITBC Edge Node Monitoring - aitbc1-edge-secondary
After=network.target
[Service]
Type=simple
User=root
ExecStart=/tmp/aitbc-monitoring/monitor.sh
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target

View File

@@ -1,38 +0,0 @@
[Unit]
Description=AITBC Enterprise API Gateway - Multi-tenant API Management
After=network.target
Wants=network.target
[Service]
Type=simple
User=aitbc
Group=aitbc
WorkingDirectory=/opt/aitbc/apps/coordinator-api
Environment=PATH=/usr/bin
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src
ExecStart=/usr/bin/python3 -m app.services.enterprise_api_gateway
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-enterprise-api
# Security settings
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data
# Resource limits
LimitNOFILE=65536
LimitNPROC=4096
# Performance settings
Nice=-5
IOSchedulingClass=best-effort
IOSchedulingPriority=0
[Install]
WantedBy=multi-user.target

View File

@@ -1,29 +0,0 @@
[Unit]
Description=AITBC Blockchain Follower Node (Port 8007)
After=network.target aitbc-blockchain-node.service
Wants=aitbc-blockchain-node.service
[Service]
Type=simple
User=root
Group=root
Environment=NODE_ENV=production
Environment=NODE_ID=follower-node-8007
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/services
Environment=BLOCKCHAIN_DATA_DIR=/var/lib/aitbc/data/follower
Environment=BLOCKCHAIN_CONFIG_DIR=/etc/aitbc
Environment=BLOCKCHAIN_LOG_DIR=/var/log/aitbc/production
Environment=BLOCKCHAIN_PORT=8007
Environment=BLOCKCHAIN_ROLE=follower
Environment=BLOCKCHAIN_GENESIS_NODE=http://localhost:8006
ExecStart=/opt/aitbc/venv/bin/python /opt/aitbc/services/blockchain_simple.py
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
TimeoutStopSec=30
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -1,24 +0,0 @@
[Unit]
Description=AITBC Geographic Load Balancer (Port 8017)
After=network.target aitbc-coordinator-api.service aitbc-marketplace-enhanced.service
Wants=aitbc-coordinator-api.service aitbc-marketplace-enhanced.service
[Service]
Type=simple
User=aitbc
Group=aitbc
WorkingDirectory=/opt/aitbc
Environment=PATH=/usr/bin
Environment=PORT=8017
Environment=SERVICE_TYPE=loadbalancer-geo
Environment=LOG_LEVEL=INFO
ExecStart=/usr/bin/python3 /opt/aitbc/apps/coordinator-api/scripts/geo_load_balancer.py --port 8017
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-loadbalancer-geo
[Install]
WantedBy=multi-user.target

View File

@@ -1,13 +0,0 @@
[Unit]
Description=AITBC Miner Dashboard
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/aitbc-miner-dashboard
ExecStart=/usr/bin/python3 dashboard_server.py
Restart=always
[Install]
WantedBy=multi-user.target

View File

@@ -1,45 +0,0 @@
[Unit]
Description=AITBC Real Mining Blockchain Service
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=NODE_ID=aitbc
Environment=PYTHONPATH=/opt/aitbc/services
EnvironmentFile=/etc/aitbc/production.env
# Real mining execution
ExecStart=/opt/aitbc/venv/bin/python /opt/aitbc/services/mining_blockchain.py
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
TimeoutStopSec=10
# Mining reliability
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=60
# Mining logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-mining-blockchain
# Mining security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/aitbc/data/blockchain /var/log/aitbc/production/blockchain
# Mining performance
LimitNOFILE=65536
LimitNPROC=4096
MemoryMax=4G
CPUQuota=80%
[Install]
WantedBy=multi-user.target

View File

@@ -1,23 +0,0 @@
[Unit]
Description=AITBC Blockchain Node Service
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/root/aitbc/apps/blockchain-node
Environment=PATH=/usr/bin
Environment=PYTHONPATH=/root/aitbc/apps/blockchain-node
Environment=RUST_LOG=info
ExecStart=/usr/bin/python3 -m node.main --datadir /root/aitbc/data --rpc-bind 0.0.0.0:8545
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-node
[Install]
WantedBy=multi-user.target

View File

@@ -1,45 +0,0 @@
[Unit]
Description=AITBC OpenClaw AI Service
After=network.target aitbc-mining-blockchain.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=NODE_ID=aitbc
Environment=PYTHONPATH=/opt/aitbc/services
EnvironmentFile=/etc/aitbc/production.env
# OpenClaw AI execution
ExecStart=/opt/aitbc/venv/bin/python /opt/aitbc/services/openclaw_ai.py
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
TimeoutStopSec=10
# AI service reliability
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=60
# AI logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-openclaw-ai
# AI security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/aitbc/data/openclaw /var/log/aitbc/production/openclaw
# AI performance
LimitNOFILE=65536
LimitNPROC=4096
MemoryMax=2G
CPUQuota=60%
[Install]
WantedBy=multi-user.target

View File

@@ -1,46 +0,0 @@
[Unit]
Description=AITBC Real Marketplace with AI Services
After=network.target aitbc-mining-blockchain.service aitbc-openclaw-ai.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=NODE_ID=aitbc
Environment=REAL_MARKETPLACE_PORT=8009
Environment=PYTHONPATH=/opt/aitbc/services
EnvironmentFile=/etc/aitbc/production.env
# Real marketplace execution
ExecStart=/opt/aitbc/venv/bin/python /opt/aitbc/services/real_marketplace_launcher.py
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
TimeoutStopSec=10
# Marketplace reliability
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=60
# Marketplace logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-real-marketplace
# Marketplace security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/aitbc/data/marketplace /var/log/aitbc/production/marketplace
# Marketplace performance
LimitNOFILE=65536
LimitNPROC=4096
MemoryMax=1G
CPUQuota=40%
[Install]
WantedBy=multi-user.target