Files
autoreg-skills-max/skills/ai-provider-autoreg/references/tokenharbor-farm-rate-limit-ops.md

39 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TokenHarbor-ферма: топология rate-limit и дисциплина волн
Проверено в бою 2026-10-12 (полный шторм троттлинга: DC + home + free-пул одновременно).
## 1. Топология rate-limit TH (free-аккаунты лимитятся ПО СЕТЕВОМУ АДРЕСУ)
| Выход | Chat/serving | Signup | Вердикт |
|---|---|---|---|
| DC (сервер) | 429 навсегда — «many free accounts are sharing this network address» | 429 | непригоден by design |
| Home residential | работает, пока не спален | палит выход | остывает ~1ч после паузы |
| Free-прокси (GH-листы) | **0 из 419 живых** смогли chat POST | ~5-10% конверсия | только signup |
| Paid residential (1024proxy DE, свежий IP/запрос) | работает | работает | единственный стабильный путь |
Ключевой факт: **GET /models проходит на IP, которые ловят 429 на chat POST**. Проба пула — только целевым authenticated POST (max_tokens=3), не GET.
## 2. Разделение трафиков (главное правило)
- Signup-волны и serving НИКОГДА не делят выход. Волны жгут прокси-пул, serving держит home/paid.
- **Recovery (логины в TH) палит home-выход так же, как сайнапы** — гонять recovery через прокси или ставить на паузу, пока home нужен для serving. CF 502 HTML на home-леге = выход под челленджем, ждать ~1ч.
- Различай тексты 429: «Too many sign-ups from this network» = signup-лимит (~1ч); «many free accounts sharing this network address» = serving-лимит на shared IP (для DC — перманентно); CF 502 HTML = IP под Cloudflare-челленджем.
## 3. Дисциплина волн
- **Перед запуском волн — psutil-скан на дубли** (cmdline содержит имя скрипта, исключить ' -c '). Дубли волн жрут один mail-сплит → «This email is already on board» фейлы и сожжённые прокси впустую. Из пары дублей оставлять старейший по create_time.
- Каждая волна = свой mail-сплит. Сплиты разного размера — запускать сначала крупные.
- **Отложенный рестарт через `sleep N && cmd &` в одном background-вызове тихо умирает** (цепочка не переживает cleanup сессии терминала). Каждую долгую задачу запускать ОТДЕЛЬНЫМ terminal(background=true) вызовом, лог в свой файл через >>.
- Счётчик «SIGNUP OK» в логе волны lag'ает банк на 2-5 мин (verify mail → login → key). Правда — в accounts.jsonl, не в логе.
## 4. Serving-шим (aiohttp-прокси)
- **ClientTimeout(total=N) убивает длинные стримы** (клиентские сессии стримят минуты). Правильно: `ClientTimeout(sock_connect=8-10, sock_read=20-45)` — fail-fast на мёртвых прокси, sock_read = зазор между чанками, живой стрим не ограничен по длительности.
- Порядок лега: home (быстрый, если не спален) → proxy-пул (2-3 попытки) → 502 быстро. Direct-DC-лег бессмыслен при free-акках (перманентный 429) — не тратить на него таймаут.
- **Мусорные каналы в one-api.db ломают диагностику**: key аномальной длины (сотни+ символов) даёт `ValueError: Invalid header value` у urllib-проб и рвёт ротацию new-api. При «беспричинных» 503 — первым делом `SELECT id,length(key) FROM channels WHERE status=1 AND length(key)>100`, дизейблить найденное.
- Автопуш ключей в шлюз — cron каждые 15 мин, рестарт new-api только при новых каналах.
## 5. Бесплатный контур замкнутый (когда paid-прокси нет)
Фидер: каждые 30 мин скачать все живые GH-листы (skill proxy-free-trial) → дедуп против pool-БД → ipify-проба → вставить свежих в пул волн. ~9.5K уникальных за цикл, сотни свежих IP. Serving при этом остаётся на home-остывании — free-пул для чата мёртв, это нужно говорить пользователю прямо, с пруфом (N живых → 0 chat-способных), а не обещать «скоро оживёт».