unified: Phantom Protocol 2025 complete archive integration

This commit is contained in:
NW
2026-05-18 17:28:53 +01:00
commit b680c5aeca
553 changed files with 112091 additions and 0 deletions

View File

@@ -0,0 +1,465 @@
# Phantom TLD Infrastructure - Полная децентрализованная система доменов
# Поддерживает миллиарды доменов с высокой доступностью и производительностью
version: '3.8'
services:
# Основные TLD узлы
tld-node-1:
build:
context: .
dockerfile: docker/Dockerfile.tld-system
container_name: phantom-tld-node-1
hostname: tld-node-1
restart: unless-stopped
ports:
- "53:53/udp" # DNS
- "53:53/tcp" # DNS TCP
- "8053:8053" # TLD System API
- "8054:8054" # Consensus
- "8055:8055" # Metrics
- "8056:8056" # Health Check
volumes:
- tld-node-1-data:/var/lib/phantom
- tld-node-1-logs:/opt/phantom/logs
- ./config/tld-node-1.conf:/opt/phantom/config/tld-system.conf:ro
environment:
- PHANTOM_NODE_ID=tld-node-1
- PHANTOM_NODE_TYPE=primary
- PHANTOM_CONSENSUS_ROLE=validator
- PHANTOM_DNS_ENABLED=true
- PHANTOM_BOOTSTRAP_NODES=tld-node-2:8054,tld-node-3:8054
networks:
phantom-tld:
ipv4_address: 172.20.0.10
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8056/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
deploy:
resources:
limits:
cpus: '2.0'
memory: 4G
reservations:
cpus: '1.0'
memory: 2G
tld-node-2:
build:
context: .
dockerfile: docker/Dockerfile.tld-system
container_name: phantom-tld-node-2
hostname: tld-node-2
restart: unless-stopped
ports:
- "8153:53/udp" # DNS (альтернативный порт)
- "8153:53/tcp" # DNS TCP
- "8063:8053" # TLD System API
- "8064:8054" # Consensus
- "8065:8055" # Metrics
- "8066:8056" # Health Check
volumes:
- tld-node-2-data:/var/lib/phantom
- tld-node-2-logs:/opt/phantom/logs
- ./config/tld-node-2.conf:/opt/phantom/config/tld-system.conf:ro
environment:
- PHANTOM_NODE_ID=tld-node-2
- PHANTOM_NODE_TYPE=secondary
- PHANTOM_CONSENSUS_ROLE=validator
- PHANTOM_DNS_ENABLED=true
- PHANTOM_BOOTSTRAP_NODES=tld-node-1:8054,tld-node-3:8054
networks:
phantom-tld:
ipv4_address: 172.20.0.11
depends_on:
- tld-node-1
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8056/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
deploy:
resources:
limits:
cpus: '2.0'
memory: 4G
reservations:
cpus: '1.0'
memory: 2G
tld-node-3:
build:
context: .
dockerfile: docker/Dockerfile.tld-system
container_name: phantom-tld-node-3
hostname: tld-node-3
restart: unless-stopped
ports:
- "8253:53/udp" # DNS (альтернативный порт)
- "8253:53/tcp" # DNS TCP
- "8073:8053" # TLD System API
- "8074:8054" # Consensus
- "8075:8055" # Metrics
- "8076:8056" # Health Check
volumes:
- tld-node-3-data:/var/lib/phantom
- tld-node-3-logs:/opt/phantom/logs
- ./config/tld-node-3.conf:/opt/phantom/config/tld-system.conf:ro
environment:
- PHANTOM_NODE_ID=tld-node-3
- PHANTOM_NODE_TYPE=secondary
- PHANTOM_CONSENSUS_ROLE=validator
- PHANTOM_DNS_ENABLED=true
- PHANTOM_BOOTSTRAP_NODES=tld-node-1:8054,tld-node-2:8054
networks:
phantom-tld:
ipv4_address: 172.20.0.12
depends_on:
- tld-node-1
- tld-node-2
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8056/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
deploy:
resources:
limits:
cpus: '2.0'
memory: 4G
reservations:
cpus: '1.0'
memory: 2G
# Дополнительные DNS узлы для масштабирования
dns-resolver-1:
build:
context: .
dockerfile: docker/Dockerfile.tld-system
container_name: phantom-dns-resolver-1
hostname: dns-resolver-1
restart: unless-stopped
ports:
- "8353:53/udp" # DNS
- "8353:53/tcp" # DNS TCP
- "8083:8055" # Metrics
- "8086:8056" # Health Check
volumes:
- dns-resolver-1-logs:/opt/phantom/logs
- ./config/dns-resolver-1.conf:/opt/phantom/config/tld-system.conf:ro
environment:
- PHANTOM_NODE_ID=dns-resolver-1
- PHANTOM_NODE_TYPE=dns-only
- PHANTOM_CONSENSUS_ROLE=observer
- PHANTOM_DNS_ENABLED=true
- PHANTOM_TLD_NODES=tld-node-1:8053,tld-node-2:8063,tld-node-3:8073
networks:
phantom-tld:
ipv4_address: 172.20.0.20
depends_on:
- tld-node-1
- tld-node-2
- tld-node-3
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8056/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G
dns-resolver-2:
build:
context: .
dockerfile: docker/Dockerfile.tld-system
container_name: phantom-dns-resolver-2
hostname: dns-resolver-2
restart: unless-stopped
ports:
- "8453:53/udp" # DNS
- "8453:53/tcp" # DNS TCP
- "8093:8055" # Metrics
- "8096:8056" # Health Check
volumes:
- dns-resolver-2-logs:/opt/phantom/logs
- ./config/dns-resolver-2.conf:/opt/phantom/config/tld-system.conf:ro
environment:
- PHANTOM_NODE_ID=dns-resolver-2
- PHANTOM_NODE_TYPE=dns-only
- PHANTOM_CONSENSUS_ROLE=observer
- PHANTOM_DNS_ENABLED=true
- PHANTOM_TLD_NODES=tld-node-1:8053,tld-node-2:8063,tld-node-3:8073
networks:
phantom-tld:
ipv4_address: 172.20.0.21
depends_on:
- tld-node-1
- tld-node-2
- tld-node-3
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8056/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G
# Балансировщик нагрузки DNS
dns-load-balancer:
image: nginx:alpine
container_name: phantom-dns-lb
restart: unless-stopped
ports:
- "5353:53/udp" # Основной DNS порт для клиентов
volumes:
- ./config/nginx-dns.conf:/etc/nginx/nginx.conf:ro
networks:
phantom-tld:
ipv4_address: 172.20.0.30
depends_on:
- tld-node-1
- tld-node-2
- tld-node-3
- dns-resolver-1
- dns-resolver-2
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
reservations:
cpus: '0.2'
memory: 256M
# Система мониторинга
prometheus:
image: prom/prometheus:latest
container_name: phantom-prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--storage.tsdb.retention.time=30d'
- '--web.enable-lifecycle'
networks:
phantom-tld:
ipv4_address: 172.20.0.40
depends_on:
- tld-node-1
- tld-node-2
- tld-node-3
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G
grafana:
image: grafana/grafana:latest
container_name: phantom-grafana
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
- ./config/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro
- ./config/grafana/datasources:/etc/grafana/provisioning/datasources:ro
environment:
- GF_SECURITY_ADMIN_PASSWORD=phantom123
- GF_USERS_ALLOW_SIGN_UP=false
- GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
networks:
phantom-tld:
ipv4_address: 172.20.0.41
depends_on:
- prometheus
deploy:
resources:
limits:
cpus: '0.5'
memory: 1G
reservations:
cpus: '0.2'
memory: 512M
# Центральный мониторинг TLD системы
tld-monitor:
build:
context: .
dockerfile: docker/Dockerfile.tld-system
container_name: phantom-tld-monitor
restart: unless-stopped
ports:
- "8080:8080" # Веб-интерфейс мониторинга
volumes:
- ./config/monitor.conf:/opt/phantom/config/monitor.conf:ro
environment:
- PHANTOM_MONITOR_MODE=true
- PHANTOM_TLD_NODES=tld-node-1:8055,tld-node-2:8065,tld-node-3:8075
- PHANTOM_DNS_NODES=dns-resolver-1:8083,dns-resolver-2:8093
command: ["python3", "/opt/phantom/scripts/monitor.py"]
networks:
phantom-tld:
ipv4_address: 172.20.0.50
depends_on:
- tld-node-1
- tld-node-2
- tld-node-3
deploy:
resources:
limits:
cpus: '0.5'
memory: 1G
reservations:
cpus: '0.2'
memory: 512M
# Тестовый клиент для нагрузочного тестирования
load-tester:
build:
context: .
dockerfile: docker/Dockerfile.tld-system
container_name: phantom-load-tester
restart: "no"
volumes:
- ./test-results:/opt/phantom/test-results
environment:
- PHANTOM_TEST_MODE=true
- PHANTOM_DNS_SERVERS=172.20.0.10:53,172.20.0.11:53,172.20.0.12:53
- PHANTOM_TLD_APIS=172.20.0.10:8053,172.20.0.11:8063,172.20.0.12:8073
command: ["sleep", "infinity"] # Запускается вручную для тестов
networks:
phantom-tld:
ipv4_address: 172.20.0.60
depends_on:
- tld-node-1
- tld-node-2
- tld-node-3
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
cpus: '0.5'
memory: 512M
# Redis для кэширования и координации
redis:
image: redis:7-alpine
container_name: phantom-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis-data:/data
- ./config/redis.conf:/usr/local/etc/redis/redis.conf:ro
command: redis-server /usr/local/etc/redis/redis.conf
networks:
phantom-tld:
ipv4_address: 172.20.0.70
deploy:
resources:
limits:
cpus: '0.5'
memory: 1G
reservations:
cpus: '0.2'
memory: 512M
# PostgreSQL для аналитики и отчетности
postgres:
image: postgres:15-alpine
container_name: phantom-postgres
restart: unless-stopped
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
- ./config/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql:ro
environment:
- POSTGRES_DB=phantom_tld
- POSTGRES_USER=phantom
- POSTGRES_PASSWORD=phantom123
networks:
phantom-tld:
ipv4_address: 172.20.0.80
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G
networks:
phantom-tld:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
gateway: 172.20.0.1
volumes:
# Данные TLD узлов
tld-node-1-data:
driver: local
tld-node-2-data:
driver: local
tld-node-3-data:
driver: local
# Логи
tld-node-1-logs:
driver: local
tld-node-2-logs:
driver: local
tld-node-3-logs:
driver: local
dns-resolver-1-logs:
driver: local
dns-resolver-2-logs:
driver: local
# Мониторинг
prometheus-data:
driver: local
grafana-data:
driver: local
# Базы данных
redis-data:
driver: local
postgres-data:
driver: local