docs: update for codebase consolidation and startup fixes
- Remove source.py from architecture (deleted) - Add metrics.py to module list - Update warm start: trusts cached state, instant startup - Update signal handling: registered before startup - Add refactoring tasks to TASKS.md - Remove stale troubleshooting entry Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -21,12 +21,12 @@ Client -------> s5p -------> Hop 1 -------> Hop 2 -------> Target
|
||||
|
||||
- **server.py** -- asyncio SOCKS5 server, bidirectional relay, signal handling
|
||||
- **proto.py** -- protocol handshakes (SOCKS5, SOCKS4/4a, HTTP CONNECT), chain builder
|
||||
- **config.py** -- YAML config loading, proxy URL parsing, pool config
|
||||
- **config.py** -- YAML config loading, proxy URL parsing, API response parsing, pool config
|
||||
- **pool.py** -- managed proxy pool (multi-source, health-tested, persistent)
|
||||
- **source.py** -- legacy proxy source (single HTTP API, kept for backward compat)
|
||||
- **http.py** -- minimal async HTTP/1.1 client (GET/POST JSON, no external deps)
|
||||
- **connpool.py** -- pre-warmed TCP connection pool to first chain hop
|
||||
- **cli.py** -- argparse CLI, logging setup, cProfile support
|
||||
- **metrics.py** -- connection counters and human-readable summary (lock-free, asyncio-only)
|
||||
|
||||
## Deployment
|
||||
|
||||
@@ -53,14 +53,14 @@ All other functionality uses Python stdlib (`asyncio`, `socket`, `struct`).
|
||||
- **asyncio** -- single-threaded event loop, efficient for I/O-bound proxying
|
||||
- **Domain passthrough** -- never resolve DNS locally to prevent leaks
|
||||
- **Tor as a hop** -- no special Tor handling; it's just `socks5://127.0.0.1:9050`
|
||||
- **Graceful shutdown** -- SIGTERM/SIGINT handled in the event loop for clean container stops
|
||||
- **Graceful shutdown** -- SIGTERM/SIGINT registered before startup for clean container stops
|
||||
- **Config split** -- tracked example template, gitignored live config with real addresses
|
||||
- **Proxy pool** -- multi-source (API + file), health-tested, persistent, auto-cleaned
|
||||
- **Weighted selection** -- recently-tested proxies preferred via recency decay weight
|
||||
- **Failure backoff** -- connection failures penalize proxy weight for 60s, avoids retry waste
|
||||
- **Stale expiry** -- proxies dropped from sources evicted after 3 refresh cycles if not alive
|
||||
- **Chain pre-flight** -- static chain tested before pool health tests; skip on failure
|
||||
- **Warm start** -- quick-test alive subset on restart, defer full test to background
|
||||
- **Warm start** -- trust cached alive state on restart, defer all health tests to background
|
||||
- **SIGHUP reload** -- re-read config, update pool settings, re-fetch sources
|
||||
- **Dead reporting** -- POST evicted proxies to upstream API for list quality feedback
|
||||
- **Connection semaphore** -- cap concurrent connections to prevent fd exhaustion
|
||||
|
||||
Reference in New Issue
Block a user