Restructured project for V2 refactor: **Structure Changes:** - Moved all V1 code to orig/ folder (preserved with git mv) - Created docs/planning/ directory - Added orig/README_V1.md explaining V1 preservation **Planning Documents:** - 00_V2_MASTER_PLAN.md: Complete architecture overview - Executive summary of critical V1 issues - High-level component architecture diagrams - 5-phase implementation roadmap - Success metrics and risk mitigation - 07_TASK_BREAKDOWN.md: Atomic task breakdown - 99+ hours of detailed tasks - Every task < 2 hours (atomic) - Clear dependencies and success criteria - Organized by implementation phase **V2 Key Improvements:** - Per-exchange parsers (factory pattern) - Multi-layer strict validation - Multi-index pool cache - Background validation pipeline - Comprehensive observability **Critical Issues Addressed:** - Zero address tokens (strict validation + cache enrichment) - Parsing accuracy (protocol-specific parsers) - No audit trail (background validation channel) - Inefficient lookups (multi-index cache) - Stats disconnection (event-driven metrics) Next Steps: 1. Review planning documents 2. Begin Phase 1: Foundation (P1-001 through P1-010) 3. Implement parsers in Phase 2 4. Build cache system in Phase 3 5. Add validation pipeline in Phase 4 6. Migrate and test in Phase 5 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
229 lines
6.1 KiB
Plaintext
229 lines
6.1 KiB
Plaintext
global_limits:
|
|
connection_timeout: 30s
|
|
idle_timeout: 300s
|
|
max_concurrent_connections: 50
|
|
read_timeout: 60s
|
|
write_timeout: 30s
|
|
monitoring:
|
|
enabled: true
|
|
log_slow_requests: true
|
|
metrics_interval: 60s
|
|
slow_request_threshold: 5s
|
|
track_provider_performance: true
|
|
provider_pools:
|
|
execution:
|
|
failover_enabled: true
|
|
health_check_interval: 30s
|
|
max_concurrent_connections: 20
|
|
providers:
|
|
- Alchemy WSS
|
|
- Alchemy WSS 2
|
|
- Chainstack WSS 1
|
|
- Chainstack WSS 2
|
|
- Chainstack WSS 3
|
|
- Arbitrum Public HTTP
|
|
- Chainstack HTTP
|
|
- Ankr HTTP
|
|
strategy: reliability_first
|
|
read_only:
|
|
failover_enabled: true
|
|
health_check_interval: 30s
|
|
max_concurrent_connections: 25
|
|
providers:
|
|
- Alchemy WSS
|
|
- Alchemy WSS 2
|
|
- Chainstack WSS 1
|
|
- Chainstack WSS 2
|
|
- Chainstack WSS 3
|
|
- Arbitrum Public HTTP
|
|
- Ankr HTTP
|
|
strategy: websocket_preferred
|
|
providers:
|
|
# HTTP Providers - Load distributed across multiple endpoints
|
|
- features:
|
|
- execution
|
|
- transaction_submission
|
|
- reading
|
|
health_check:
|
|
enabled: true
|
|
interval: 60s
|
|
timeout: 30s
|
|
http_endpoint: https://arbitrum-mainnet.core.chainstack.com/53c30e7a941160679fdcc396c894fc57
|
|
name: Chainstack HTTP
|
|
priority: 1
|
|
rate_limit:
|
|
burst: 100
|
|
max_retries: 3
|
|
requests_per_second: 100
|
|
retry_delay: 1s
|
|
timeout: 30s
|
|
type: standard
|
|
ws_endpoint: ""
|
|
- features:
|
|
- execution
|
|
- transaction_submission
|
|
- reading
|
|
health_check:
|
|
enabled: true
|
|
interval: 60s
|
|
timeout: 30s
|
|
http_endpoint: https://rpc.ankr.com/arbitrum
|
|
name: Ankr HTTP
|
|
priority: 3
|
|
rate_limit:
|
|
burst: 60
|
|
max_retries: 3
|
|
requests_per_second: 30
|
|
retry_delay: 1s
|
|
timeout: 30s
|
|
type: standard
|
|
ws_endpoint: ""
|
|
- features:
|
|
- execution
|
|
- transaction_submission
|
|
- reading
|
|
health_check:
|
|
enabled: true
|
|
interval: 60s
|
|
timeout: 30s
|
|
http_endpoint: https://arb1.arbitrum.io/rpc
|
|
name: Arbitrum Public HTTP
|
|
priority: 1
|
|
rate_limit:
|
|
burst: 20
|
|
max_retries: 3
|
|
requests_per_second: 10
|
|
retry_delay: 2s
|
|
timeout: 30s
|
|
type: standard
|
|
ws_endpoint: ""
|
|
# WebSocket Providers - Real-time data streams with HTTP fallback
|
|
|
|
# Alchemy - Premium provider (Priority 1)
|
|
- features:
|
|
- reading
|
|
- real_time
|
|
- execution
|
|
health_check:
|
|
enabled: true
|
|
interval: 30s
|
|
timeout: 60s
|
|
http_endpoint: https://arb-mainnet.g.alchemy.com/v2/d6VAHgzkOI3NgLGem6uBMiADT1E9rROB
|
|
name: Alchemy WSS
|
|
priority: 1
|
|
rate_limit:
|
|
burst: 1000
|
|
max_retries: 3
|
|
requests_per_second: 330
|
|
retry_delay: 1s
|
|
timeout: 60s
|
|
type: standard
|
|
ws_endpoint: wss://arb-mainnet.g.alchemy.com/v2/d6VAHgzkOI3NgLGem6uBMiADT1E9rROB
|
|
|
|
# Alchemy 2 - Secondary premium provider (Priority 2)
|
|
- features:
|
|
- reading
|
|
- real_time
|
|
- execution
|
|
health_check:
|
|
enabled: true
|
|
interval: 30s
|
|
timeout: 60s
|
|
http_endpoint: https://arb-mainnet.g.alchemy.com/v2/Qpf70Ii5GojW2pD14601r
|
|
name: Alchemy WSS 2
|
|
priority: 2
|
|
rate_limit:
|
|
burst: 1000
|
|
max_retries: 3
|
|
requests_per_second: 330
|
|
retry_delay: 1s
|
|
timeout: 60s
|
|
type: standard
|
|
ws_endpoint: wss://arb-mainnet.g.alchemy.com/v2/Qpf70Ii5GojW2pD14601r
|
|
|
|
# Chainstack Endpoint 1 (Priority 3)
|
|
- features:
|
|
- reading
|
|
- real_time
|
|
- execution
|
|
health_check:
|
|
enabled: true
|
|
interval: 30s
|
|
timeout: 60s
|
|
http_endpoint: https://arbitrum-mainnet.core.chainstack.com/5d4d7ef9a15d34c16a5d566c4d077d9d
|
|
name: Chainstack WSS 1
|
|
priority: 3
|
|
rate_limit:
|
|
burst: 100
|
|
max_retries: 3
|
|
requests_per_second: 100
|
|
retry_delay: 1s
|
|
timeout: 60s
|
|
type: standard
|
|
ws_endpoint: wss://arbitrum-mainnet.core.chainstack.com/5d4d7ef9a15d34c16a5d566c4d077d9d
|
|
|
|
# Chainstack Endpoint 2 (Priority 4) - Original endpoint
|
|
- features:
|
|
- reading
|
|
- real_time
|
|
- execution
|
|
health_check:
|
|
enabled: true
|
|
interval: 30s
|
|
timeout: 60s
|
|
http_endpoint: https://arbitrum-mainnet.core.chainstack.com/53c30e7a941160679fdcc396c894fc57
|
|
name: Chainstack WSS 2
|
|
priority: 4
|
|
rate_limit:
|
|
burst: 100
|
|
max_retries: 3
|
|
requests_per_second: 100
|
|
retry_delay: 1s
|
|
timeout: 60s
|
|
type: standard
|
|
ws_endpoint: wss://arbitrum-mainnet.core.chainstack.com/53c30e7a941160679fdcc396c894fc57
|
|
|
|
# Chainstack Endpoint 3 (Priority 5)
|
|
- features:
|
|
- reading
|
|
- real_time
|
|
- execution
|
|
health_check:
|
|
enabled: true
|
|
interval: 30s
|
|
timeout: 60s
|
|
http_endpoint: https://arbitrum-mainnet.core.chainstack.com/f69d14406bc00700da9b936504e1a870
|
|
name: Chainstack WSS 3
|
|
priority: 5
|
|
rate_limit:
|
|
burst: 100
|
|
max_retries: 3
|
|
requests_per_second: 100
|
|
retry_delay: 1s
|
|
timeout: 60s
|
|
type: standard
|
|
ws_endpoint: wss://arbitrum-mainnet.core.chainstack.com/f69d14406bc00700da9b936504e1a870
|
|
- features:
|
|
- reading
|
|
- real_time
|
|
health_check:
|
|
enabled: true
|
|
interval: 30s
|
|
timeout: 60s
|
|
http_endpoint: https://arb1.arbitrum.io/rpc
|
|
name: Arbitrum Public WS
|
|
priority: 10
|
|
rate_limit:
|
|
burst: 20
|
|
max_retries: 3
|
|
requests_per_second: 10
|
|
retry_delay: 2s
|
|
timeout: 60s
|
|
type: standard
|
|
ws_endpoint: wss://arb1.arbitrum.io/ws
|
|
rotation:
|
|
fallover_enabled: true
|
|
health_check_required: true
|
|
retry_failed_after: 5m
|
|
strategy: priority_based
|