Демо — попробовать без фермы
Два режима: «Новичок» — три шага без терминала, «Про» — конструкторы, генератор, симулятор и справочник. Сайт статический: всё считается в браузере, сервера нет.
Что будем фармить?
Фарм здесь — учебные транзакции в тестовой сети. Деньги ненастоящие, ничего не стоит.
Какой масштаб?
Smoke: 5 кошельков, 2 круга. Load: 200×5. Soak: 50×20. Chaos: 100×5 без крана — негативный путь.
Кошельки создаются сами. Для первой пробы хватит 5–10.
Один круг — это проход по всем кошелькам: кран, потом транзакции.
Кран — бесплатная раздача тестовых монет. Выключите, только если монеты уже есть.
Всё готово. Осталась одна команда.
| Сеть | — |
| Кошельков | — |
| Кругов | — |
| Кран | — |
…
- Установите Python 3.12 и выполните: pip install -r requirements.txt
- Положите скачанный файл-конфиг рядом с auto.py
- Вставьте команду в PowerShell и нажмите Enter
- Поле сайта оживёт после: python publish_dash.py
Меняет только behavior: паузы, активность, разброс сумм. На команду запуска не влияет.
# нажмите «Сгенерировать YAML»
python auto.py --wallets 50 --cycles 5
Команда пройдёт четыре фазы: добор кошельков → проверка крана и запрос монет → пул фарма с чанками и восстановлением → экспорт CSV/JSON. Повторный запуск продолжит state.json с места обрыва.
Только тестнеты. Ключи считаются в браузере и никуда не отправляются. При первом нажатии «Сгенерировать» страница загрузит ethers с esm.sh — это единственный внешний запрос демо-зоны. Без сети включится честный демо-режим с пометкой.
| # | address | private_key | actions |
|---|---|---|---|
| — | |||
- wallets_ok
- —
- actions_ok
- —
- errors
- —
- avg/cycle
- —
| cycle | mode | wallets | wallets_ok | actions_ok | errors | duration_s |
|---|---|---|---|---|---|---|
| — | ||||||
- auto_max_workers
- —
- auto_rpc_threads
- —
- auto_gen_workers
- —
- chunk_size
- —
Формулы: workers=min(max(20,cpu·2),128) · rpc=min(max(8,cpu·4),128) · gen=min(8,max(2,cpu)) · chunk=max(workers·4,100). RPC-потолок 128, gen-потолок 8.
Нарушение границ = отказ валидатора и SystemExit(1). Заглушки 0x0 и chain 99999 — не ошибки, а замечания: transfers работают, контрактное пропускается.
| Поле | Границы | По умолчанию / что делает |
|---|---|---|
| network.rpc_url | https URL или список; http — только 127.0.0.1/localhost/::1 | Мульти-RPC: монитор каждые 30 с выбирает лучшую живую ноду |
| network.chain_id | ≥ 1; 99999 = маркер-заглушка | Robinhood/vibe 46630 · Arc 5042002 |
| wallets.count | ≥ 0 | Сколько добрать при generate_if_missing; 0 в --wallets = взять из конфига |
| faucet.min_balance → target_balance | min ≤ target | ensure_balance докупает до target · vibe/robinhood 0.005→0.05 · flop/arc 0.01→0.1 · simple 0.003→0.015 |
| faucet.retries / max_concurrent | 1..20 / 1..64 | 2 · пачка крана --batch 50, пауза 3 с |
| actions[].type / weight | тип из набора; weight ≥ 0 | transfer, vibevibe_*, flop_*, arc_*. Нулевой вес = действие отключено |
| transfer.target | адрес или random_wallet | Обязателен для transfer. Случайный — из пула своих кошельков |
| contract.action contract/method | 0x-адрес + имя метода; 0x0…0 = заглушка | Заглушка = тихий фолбэк на transfer, buy/sell без signer_key пропускаются адаптивными весами |
| actions min/max_amount | ≥ 0, min ≤ max | Джиттер сумм + odd_amount_prob «неровных» значений: персона не выглядит скриптом |
| farming.actions_per_cycle | [min, max], min ≤ max | [3,8] vibe/robinhood · [5,15] flop · [5,12] arc · [2,4] simple |
| farming.delay_between_* | [min, max] секунд | Паузы умножаются на профильные delay_*_scale кошелька |
| farming.skip_cycle_probability | 0..1 | 0.05 · умножается на activity и время суток (ночь ×~1.5) |
| advanced.gas_limit | ≥ 1; ≥ 50000 при реальных контрактах | 300000 robinhood/flop · 200000 arc · 100000 vibe · 21000 simple |
| advanced.min_gas_for_action | ≥ 0 | 0.003 · ниже — действие пропускается |
| advanced.receipt_timeout | ≥ 1 секунда | 30 · по истечении wait_for_receipt = None без отката nonce; 3+ ошибки поллинга = failover ноды |
| threading.max_workers | 1..1000 | 20 vibe/robinhood · 30 flop/arc · 24 simple; пусто = авто min(max(20,cpu·2),128) |
| threading.rpc_threads / gen_workers / chunk_size | 1..256 / 1..32 / ≥ 1 | Авто: max(4,min(workers·3,128)) · min(8,max(2,cpu)) · max(workers·4,100) |
| cache.rpc_rate_limit / rpc_rate_floor | 1..10000 / 0.05..1 | Token-bucket на RPC; ставка плавает от здоровья нод, остаток переносится при смене ноды |
| database.path / master_key | без «..»; 64-hex ключ или файл | SQLite WAL по умолчанию; DSN postgres:// включает PostgreSQL. Нет ключа при шифрованных сидах = отказ |
| logging.level | имя уровня | Файл + консоль, ротация с ограничением прав, JSON-формат опционально |
| env | Перекрывает |
|---|---|
| FARMER_RPC_URL | network.rpc_url; список через «;» или запятую |
| FARMER_CHAIN_ID / FARMER_WALLET_COUNT | chain_id / wallets.count |
| FARMER_WORKERS / FARMER_RPC_THREADS / FARMER_GEN_WORKERS / FARMER_CHUNK_SIZE | threading.* |
| FARMER_FAUCET_MAX_CONCURRENT / FARMER_RPC_RATE / FARMER_RPC_RATE_FLOOR | faucet / cache |
| FARMER_MIN_BALANCE / FARMER_TARGET_BALANCE | faucet балансы |
| FARMER_LOG_LEVEL / FARMER_DB_PATH / FARMER_MASTER_KEY | логи / БД / ключ шифрования |
| FARMER_VIBE_SIGNER_KEY / CHAINSTACK_API_KEY | EIP-712 подпись buy/sell · Bearer-ключ MCP-крана (без него chainstack-стратегия исключается на pre-flight) |
| LICENSE_PASSWORD / FARMER_CONFIG | пароль лицензии (иначе getpass, 3 попытки) · путь к конфигу |
| Механизм | Числа |
|---|---|
| RPC-ретраи с круговым failover | 3 попытки · классификация retryable по тексту ошибки |
| EMA ноды / zombie / circuit breaker | α 0.7/0.3 · смерть после 3 ошибок · breaker 5 ошибок / 30 с |
| Монитор RPC / проба / супервизор | 30 с · пинг 2500 мс · рестарт с backoff 1с→30с |
| BatchWriter | flush 2 с / 500 строк · 3 сбоя подряд = дроп батча + cooldown 30 с |
| Лицензия | таймаут hub 8 с · тело ≤ 1 МБ · офлайн-grace 7 дней · кэш .license_cache |
| Портал: сессии / логин / TG | сессия 7 дней · логин 5/10 мин per-IP + 20/10 мин глобально · initData 16 КБ, окно 10 мин |
| Планировщик / single-instance | --schedule ≥ 0.05 ч · лок db_path.lock, один фарм на БД |
Источник истины — devdocs/ (§3–§10) и код core/. Портальные env — в разделе «Портал и Telegram» выше.