4.8 KiB
TokenHarbor key-pool: формат, 429-диагностика, signup-статус
Операционные заметки по пулу TH-ключей для шлюза api.[REDACTED-NAME].com (one-api, VPS [REDACTED-IP], БД /opt/grok-gateway/new-api/one-api.db). Основной реger: th_tonline_claim.py (login t-online акков → verify → $5 claim → key → пуш). Skill th-autoreg user-owned — этот файл живёт здесь.
1. Формат tokenharbor_keys.txt — парсить поле, не строку
email | thk_live_<64 символа> | timestamp
email | thk_live_... | REVOKED | timestamp
- Bearer с ЦЕЛОЙ строкой вместо ключа → обманчивый
401 Invalid or revoked API key(TH не различает «мусор» и «отозван»). - Перед любым тестом: сплит по
|, взять поле с префиксомthk_live_, отфильтроватьREVOKEDи#-комментарии. - Ключ =
thk_live_+ 64 символа[a-zA-Z0-9_-].
2. 429 «Hourly rate limit reached» — окно TH, не мёртвые ключи
Когда шлюз (сотни TH-каналов) выбивает часовой лимит free-модели, ВСЕ валидные live-ключи начинают отдавать 429 на прямых запросах к tokenharbor.ai. Лимит на модель/пул, НЕ на IP — повторяется с Windows и VPS одновременно.
Диагностика (2 минуты, без SSH):
- Прямой запрос валидным ключом на
claude-haiku-5.5:free→ 429 hourly. - Тот же ключ на другой free-модели (
deepseek-v4-flash) → если 200, ключи и роутинг ЖИВЫ, это модельное окно. - Через шлюз
https://api.[REDACTED-NAME].com/v1/chat/completions(токен в ~/tmp/.testkey) проверить обе модели: 429 на haiku + 200 на другой TH-free модели = подтверждение.
НЕ делать при таком 429: ротацию прокси (лимит не по IP), «починку» mapping в one-api.db, перезапуск реger'а. Ждать сброса часового окна.
Free-модели TH (из /v1/models): claude-haiku-5.5, mimo-v2.6-flash, mimo-v2.5, deepseek-v4.1-flash, deepseek-v4-flash. Остальные ~60 — платные. Старые акки: free allowance used, next period <дата>.
3. Signup-путь сломан на стороне TH (не капча)
/login?mode=signup: НЕТ видимого Turnstile ([data-sitekey],.cf-turnstile,window.turnstile, challenges.cloudflare — все пусты).- Форма сабмитится (React nativeSet +
input[type="password"]), но сервер отвечает «We couldn't create your account right now» на ЛЮБЫЕ email — реальные из пула и фейковые gmx/t-online. - Вывод: капча-солверы (2captcha/sidecar) signup не чинят; блок серверный. Не тратить баланс солверов.
- Рабочий путь пополнения пула:
th_tonline_claim.py N— login уже существующих t-online аккаунтов (17k пул, письма доходят), claim $5, создание ключа, автопуш на шлюз. - Волна ~1 акк/мин; лог
th_run_*.log; прогресс[N/200].
4. Синхронизация ключей в шлюз
th_sync_vps.py— пуш ключей в one-api.db (channels tokenharbor). Прогон даёт +N свежих каналов; после синкаsystemctl restart new-api.- Роутинг haiku: budsin-каналы с высоким priority и mapping
claude-haiku-5.5→claude-haiku-4-5подменяют модель — при жалобе «haiku отдаёт 4.5» первым делом проверить budsin в abilities/model_mapping и удалить его haiku-строки. - Проверка оригинальности ответа:
idНЕ должен начинаться сfw-(fireworks-подмена),modelв ответе =claude-haiku-5.5.
5. 2captcha для этого проекта (рабочий ключ в .env авторег-проекта, TWOCAPTCHA_KEY)
- Баланс/задачи ТОЛЬКО
POST https://api.2captcha.com/res.phpс lowercase-параметрами; GET → ERROR_EMPTY_METHOD; домен2captcha.com/res.php→ 400 (Cloudflare). - Баланс приходит в поле
requestкак строка. - Ключ из旧 записей памяти может быть опечаткой (ERROR_KEY_DOES_NOT_EXIST) — всегда валидировать getbalance перед волной.