Files
aitbc/.windsurf/skills/service-port-mapping.md
aitbc 29779bc06f
Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Node Failover Simulation / failover-test (push) Has been cancelled
API Endpoint Tests / test-api-endpoints (push) Successful in 17s
Documentation Validation / validate-docs (push) Failing after 9s
Documentation Validation / validate-policies-strict (push) Successful in 3s
Integration Tests / test-service-integration (push) Successful in 2m38s
Python Tests / test-python (push) Failing after 9s
Security Scanning / security-scan (push) Successful in 26s
Systemd Sync / sync-systemd (push) Successful in 19s
refactor: update service layer exports and fix import paths
- Export service layer classes in aitbc/__init__.py lazy exports
- Add BlockchainService, RPCBlockchainService, BlockchainServiceFactory
- Add DatabaseService, SQLiteDatabaseService, DatabaseServiceFactory
- Remove obsolete AITBCHTTPClient export
- Fix import path in multichain_exchange_api.py (http_client -> network.http_client)
- Fix import path in agent-coordinator-wrapper.py (paths -> utils.paths)
- Update Learning Service port from 8011 to
2026-05-09 12:33:46 +02:00

306 lines
9.8 KiB
Markdown

---
description: Comprehensive AITBC service-to-port mapping reference for all nodes and environments
title: AITBC Service Port Mapping
version: 1.0
---
# AITBC Service Port Mapping Skill
## Purpose
Provide comprehensive service-to-port mapping reference for AITBC blockchain platform across all nodes (localhost, aitbc1, gitea-runner) and environments.
## Activation
Trigger when user needs to know which service runs on which port, troubleshoot port conflicts, configure service endpoints, or understand service architecture.
## Core AITBC Services
### Blockchain Layer
- **8006**: Blockchain RPC (aitbc_chain.app)
- Purpose: Main blockchain RPC endpoint for block queries, transactions, and chain operations
- Nodes: localhost, aitbc1, gitea-runner
- Service: aitbc-blockchain-rpc.service, aitbc-blockchain-node.service
- Wrapper: aitbc-blockchain-rpc-wrapper.py
- Config: RPC_BIND_PORT environment variable (default: 8006)
- **7070**: P2P Mesh Network (aitbc_chain.p2p_network)
- Purpose: Peer-to-peer gossip protocol for block propagation and node discovery
- Nodes: localhost, aitbc1
- Service: aitbc-blockchain-p2p.service
- Wrapper: aitbc-blockchain-p2p-wrapper.py
- Config: P2P_BIND_PORT environment variable (default: 7070)
- **8204**: Blockchain Event Bridge (blockchain_event_bridge.main)
- Purpose: Event streaming service for blockchain events to external systems
- Nodes: localhost, aitbc1
- Service: aitbc-blockchain-event-bridge.service
- Wrapper: aitbc-blockchain-event-bridge-wrapper.py
- Config: bind_port environment variable (default: 8204)
### Coordinator Layer
- **8011**: Coordinator API (app.main)
- Purpose: Main coordinator API for AI job submission, miner registration, marketplace operations
- Nodes: localhost, aitbc1
- Service: aitbc-coordinator-api.service
- Wrapper: aitbc-coordinator-api-wrapper.py
- Config: Hardcoded in wrapper (port 8011)
- **8012**: Adaptive Learning Service (app.services.adaptive_learning_app)
- Purpose: AI model adaptive learning and optimization service
- Nodes: localhost, aitbc1
- Service: aitbc-learning.service
- Config: Hardcoded in systemd (port 8012)
- Note: Changed from 8011 to 8012 to avoid port conflict with coordinator API
- **9001**: Agent Coordinator
- Purpose: Agent coordination, communication, and session management
- Nodes: localhost
- Service: aitbc-agent-coordinator.service
- Config: AITBC_COORDINATOR_PORT environment variable (default: 9001)
- Documentation: docs/agent-coordinator/ARCHITECTURE.md
### Exchange & Trading
- **8001**: Exchange API (simple_exchange_api.py)
- Purpose: Cross-chain exchange and trading platform
- Nodes: aitbc1
- Service: aitbc-exchange-api.service
- Wrapper: aitbc-exchange-api-wrapper.py
- Config: Hardcoded in wrapper (port 8001)
### Wallet Services
- **8003**: Wallet Daemon (simple_daemon.py)
- Purpose: Background wallet service for transaction signing and key management
- Nodes: localhost, aitbc1
- Service: aitbc-wallet.service
- Wrapper: aitbc-wallet-wrapper.py
- Config: Uses internal wallet RPC (no external port)
### AI Services
- **8005**: AI Service (src.ai_service.main)
- Purpose: AI model inference and computation service
- Nodes: localhost, aitbc1
- Service: aitbc-ai.service
- Config: Hardcoded in systemd (port 8005)
- **8020**: Multimodal Service (src.app.services.multimodal_app)
- Purpose: Multimodal AI processing and integration
- Nodes: aitbc1
- Service: aitbc-multimodal.service
- Config: Hardcoded in systemd (port 8020)
- **8021**: Modality Optimization Service (src.app.services.modality_optimization_app)
- Purpose: AI modality optimization and tuning
- Nodes: aitbc1
- Service: aitbc-modality-optimization.service
- Config: Hardcoded in systemd (port 8021)
### Agent Services
- **8014**: Hermes (aitbc-hermes-wrapper.py)
- Purpose: AI agent communication and coordination framework
- Nodes: localhost
- Service: aitbc-hermes.service
- Wrapper: aitbc-hermes-wrapper.py
- Config: Hardcoded in wrapper (port 8014)
- **8016**: Plugin Registry (aitbc-plugin-wrapper.py)
- Purpose: Agent plugin management and registry service
- Nodes: aitbc1
- Service: aitbc-plugin.service
- Wrapper: aitbc-plugin-wrapper.py
- Config: Hardcoded in wrapper (port 8016)
### Monitoring & Observability
- **8002**: Monitoring Service
- Purpose: System monitoring, metrics collection, and health checks
- Nodes: aitbc1
- Service: aitbc-monitoring.service
- Wrapper: aitbc-monitoring-wrapper.py
- Config: Hardcoded in wrapper (port 8002)
## Infrastructure Services
### Database & Cache
- **5432**: PostgreSQL
- Purpose: Relational database for coordinator, marketplace, and other services
- Nodes: localhost, aitbc1, gitea-runner
- Service: postgresql
- **6379**: Redis
- Purpose: Cache, message queue, and session storage
- Nodes: localhost, aitbc1, gitea-runner
- Service: redis
### Web & Proxy
- **80**: Nginx
- Purpose: Reverse proxy and web server for HTTPS termination and load balancing
- Nodes: localhost
- Service: nginx
- **443**: Nginx HTTPS
- Purpose: HTTPS endpoint for public API access
- Nodes: localhost
- Service: nginx
### Communication
- **22**: SSH
- Purpose: Secure shell access for remote management
- Nodes: localhost, aitbc1, gitea-runner
- Service: sshd
- **25**: SMTP
- Purpose: Email delivery for notifications
- Nodes: localhost, aitbc1, gitea-runner
- Service: postfix
### Real-time Communication
- **3478**: TURN Server
- Purpose: WebRTC TURN relay for real-time communication
- Nodes: localhost
- Service: coturn
### AI Infrastructure
- **11434**: Ollama
- Purpose: Local LLM inference service for AI operations
- Nodes: localhost
- Service: ollama
## Port Conflict Resolution
### Known Conflicts & Resolutions
- **8011 vs 8012**: Coordinator API (8011) conflicted with Adaptive Learning Service (8011)
- Resolution: Changed Adaptive Learning Service to port 8012 on all nodes
- Files modified: /etc/systemd/system/aitbc-learning.service
### Port Allocation Guidelines
- **8000-8099**: Core AITBC services (blockchain, coordinator, exchange, wallet)
- **8100-8199**: AI and agent services (multimodal, optimization, plugins)
- **8200-8299**: Event streaming and bridge services
- **9000-9099**: Agent coordination and orchestration
- **7000-7099**: P2P and networking services
## Service Discovery Commands
### Check Active Ports
```bash
# Localhost
sudo lsof -i -P -n | grep LISTEN
# Remote nodes
ssh aitbc1 "sudo lsof -i -P -n | grep LISTEN"
ssh gitea-runner "sudo lsof -i -P -n | grep LISTEN"
```
### Check Service Status
```bash
# All AITBC services
systemctl status aitbc-*.service
# Specific service
systemctl status aitbc-coordinator-api.service
```
### Check Service Port Configuration
```bash
# Systemd service files
grep -r "port" /etc/systemd/system/aitbc-*.service
# Wrapper scripts
grep -r "port" /opt/aitbc/scripts/wrappers/*.py
```
### Test Service Endpoints
```bash
# Coordinator API health
curl http://localhost:8011/v1/health
# Blockchain RPC head
curl http://localhost:8006/rpc/head
# Exchange API
curl http://localhost:8001/v1/health
# Agent Coordinator
curl http://localhost:9001/v1/health
```
## Environment Variables
### Port Configuration Variables
- `RPC_BIND_PORT`: Blockchain RPC port (default: 8006)
- `P2P_BIND_PORT`: P2P network port (default: 7070)
- `AITBC_COORDINATOR_PORT`: Agent coordinator port (default: 9001)
- `bind_port`: Event bridge port (default: 8204)
### Node-Specific Configuration
- `/etc/aitbc/.env`: Environment configuration
- `/etc/aitbc/node.env`: Node-specific configuration
- `/run/aitbc/secrets/.env`: Runtime secrets
## Troubleshooting
### Port Already in Use
1. Identify process: `sudo lsof -i :<port>`
2. Kill stale process: `sudo kill -9 <PID>`
3. Restart service: `sudo systemctl restart <service>`
### Service Not Listening
1. Check service status: `systemctl status <service>`
2. Check logs: `journalctl -u <service> -n 50`
3. Verify port configuration in wrapper script
4. Check firewall rules: `sudo iptables -L -n`
### Port Conflicts
1. Identify conflicting services using same port
2. Update one service to use different port
3. Update systemd service file and wrapper script
4. Reload systemd: `sudo systemctl daemon-reload`
5. Restart affected services
## Node-Specific Service Distribution
### Localhost (aitbc - Genesis Node)
- Core: 8006, 7070, 8204, 8011, 8012
- AI: 8005, 8014, 9001
- Wallet: 8003
- Infrastructure: 80, 443, 5432, 6379, 11434
### aitbc1 (Follower Node)
- Core: 8006, 7070, 8204, 8011, 8012
- Exchange: 8001
- AI: 8005, 8020, 8021, 8016
- Monitoring: 8002
- Wallet: 8003
- Infrastructure: 5432, 6379
### gitea-runner (CI/CD Node)
- Infrastructure only: 5432, 6379, 22, 25
- No AITBC services running (CI execution environment)
## Best Practices
### Port Configuration
1. Use environment variables for port configuration where possible
2. Document port changes in service files
3. Update wrapper scripts when changing ports
4. Test port availability before service deployment
5. Use standard port ranges for service categories
### Service Management
1. Always reload systemd after service file changes
2. Check service logs after port changes
3. Verify service health after restart
4. Monitor port conflicts during deployment
5. Document custom port configurations
### Security Considerations
1. Bind sensitive services to localhost when possible
2. Use firewall rules to restrict port access
3. Avoid exposing internal services to public internet
4. Use reverse proxy for public-facing services
5. Monitor port usage for unauthorized access
## Related Documentation
- [Multi-Node Operations](/opt/aitbc/docs/skills/aitbc-multi-node-operations.md)
- [Basic Operations](/opt/aitbc/docs/skills/aitbc-basic-operations.md)
- [Agent Coordinator](/opt/aitbc/docs/agent-coordinator/ARCHITECTURE.md)
- [Blockchain Troubleshooting](/opt/aitbc/docs/skills/aitbc-blockchain-troubleshooting.md)