Чужие тестнеты — под нагрузкой.
Ботами, по сценариям.
harvest — QA-стенд для EVM-тестнетов: поднимает флот кошельков с поведенческими персонами, топит чейн транзакциями по сценарию и показывает здоровье сети и отчёт прогона. Написан на Python, работает с вашей машины.
Только тестовые сети. Демо-ключи остаются в браузере, стенд — на вашем компьютере. Никаких гарантий дропа или прибыли: это инструмент проверки чужих чейнов, а не лотерейный билет.
Автор: ssrjkk · @ssrjkk_bot · github.com/ssrjkk/harvest
| Что внутри | |
|---|---|
| Сети | 4 тестовые · Robinhood, Flop, Arc, vibe/vibe |
| Управление | Python CLI · меню · веб-портал · Telegram |
| Темы / языки | Paper · Ink · Moss · Terminal / RU · EN |
| Лицензия | MIT · код можно читать и менять |
git clone https://github.com/ssrjkk/harvest.git cd harvest pip install -r requirements.txt python main.py
Зачем это всё
Если коротко: мне нравится возиться с тестнетами, и я хотел убрать из этого рутину. А ещё — показать, как всё устроено, без тумана.
Я начал harvest с простой задачи: у меня было несколько тестовых сетей и много одинаковых действий, которые я делал руками. Создать кошельки, дождаться крана, отправить перевод, записать, что получилось. Через пару вечеров стало понятно: это лучше поручить скрипту, а самому смотреть на цифры и иногда вмешиваться.
Поэтому здесь нет «секретной стратегии» или обещания, что вас заметят и что-то дадут. Есть Python-ферма, конфиги под конкретные сети, портал для запуска и остановки, и этот сайт. Всё можно прочитать, поменять и запустить у себя. Если что-то сломается — в логах будет видно, что именно.
Сайт специально сделан статическим. Демо-зона считает ключи в браузере и никуда их не отправляет. Поле показывает только то, что ферма сама решила опубликовать: без адресов и без приватных ключей.
Создать и не потерять
BIP-39 через eth_account, импорт и экспорт CSV/JSON, шифрование сидов AES-256-GCM. Повторный запуск не плодит дубликаты.
Дождаться топлива
Стратегии chainstack, direct и web, ретраи, лимиты и прокси. Если живого крана нет, ферма честно скажет об этом, а не будет делать вид.
Гонять чейн по сценарию
Асинхронный пул, чанки, восстановление после падения по state.json. Поведенческая персона привязана к адресу, поэтому перезапуск не меняет рисунок нагрузки.
- Только тестнетыНикакого мейннета, реальных денег и реальных ключей. Это песочница для практики, а не способ заработать.
- Без гарантийПроект не обещает дроп, поинты или прибыль. Тестнет может закрыться, правила могут поменяться, активность могут не засчитать.
- Ключи у васДемо-генератор хранит ключи только в памяти вкладки. Ферма хранит их в вашей БД; для шифрования нужен мастер-ключ. Резервные копии — ваша ответственность.
- Не «всё само»Конфиги, RPC и контракты иногда нужно править руками. Если сеть — заглушка, часть действий будет пропущена, и это нормально.
Четыре тестовые сети
Выбор сети — в меню main.py или флагом --config. У каждой сети свой конфиг и своя БД. Для плотного фарма без контрактов есть config.simple.yaml: только переводы, gas_limit 21000.
| Сеть | Конфиг | chain_id | Валюта | Действия |
|---|---|---|---|---|
| Robinhood Chain | config_robinhood.yaml | 46630 | ETH | transfer · vibevibe_swap/mint |
| Flop Labs | config_flop.yaml | 99999 stub | FLOP | flop_compute/validate/stake + transfer |
| Arc (Minara.Fun) | config_arc.yaml | 5042002 | ARC | arc_launch/trade/add_liquidity + transfer |
| vibe/vibe — launchpad на Robinhood | config_vibevibe.yaml | 46630 | ETH | transfer · buy/sell — если настроен signer_key |
99999 у Flop — маркер-заглушка: переводы работают, контрактные вызовы без реальных адресов откатываются на transfer. Это не ошибка конфига.
* В shipped config_vibevibe.yaml включён transfer. buy/sell на VibePassMarket требуют EIP-712 подписи TradeIntent ключом tradeSigner (vibevibe.signer_key или env FARMER_VIBE_SIGNER_KEY). Без ключа они пропускаются; transfer, claimRewards и stake работают. ABI — в abi/vibevibe.json.
python auto.py --config config_vibevibe.yaml --wallets 50 --cycles 5 python auto.py --config config.simple.yaml --wallets 200 --cycles 2
Попробовать без спешки
Первая цель — Windows/PowerShell и exe-сборка, но Python 3.12 работает везде. Начните с 3–5 кошельков: так проще понять, что происходит.
git clone https://github.com/ssrjkk/harvest.git cd harvest pip install -r requirements.txt python main.py # меню: сеть → фарм python auto.py --dry-run # холостой прогон без транзакций
| Flag | Эффект |
|---|---|
| --wallets N | N кошельков (0 — из конфига; по умолчанию 50) |
| --cycles N | N циклов (0 — бесконечно) |
| --config FILE | Конфиг ($FARMER_CONFIG → config.yaml) |
| --skip-faucet / --skip-farm | Пропустить кран / фарм |
| --schedule H | Пайплайн каждые H часов (мин. 0.05) |
| --batch / --workers / --fast | Пачка крана · воркеры · минимальные задержки |
| --dry-run / --export / --encrypt | Холостой прогон · экспорт CSV+JSON · AES-шифрование |
| --history N / --doctor / --version | История циклов · диагностика · версия |
Совет: сначала --dry-run, потом 3 кошелька и один цикл. Ферма не требует доверия — все шаги видны в логах.
pip install -r requirements.txt pyinstaller harvest.spec --noconfirm --clean Unblock-File dist\harvest\harvest.exe pip install -r requirements-portal.txt python -m portal # aiohttp + API + бот python -m pytest tests -q # локальная проверка python publish_dash.py # state.json → gh-pages → поле сайта
1 — создать кошельки · 2 — один цикл · 3 — live-консоль (p — пауза, q — стоп) · 4 — монитор балансов · 5 — кран на всех · 6 — статистика · 7/8 — экспорт/импорт JSON · C — история · 9 — диагностика RPC · D — doctor · B — бэкапы · G — локальная веб-панель (FastAPI, 127.0.0.1:8080) · L — лицензия · S — смена сети · H — справка. С аргументами main.py делегирует в auto (так же ведёт себя exe).
Подробности — в доках и в DOCUMENTATION.md. Если что-то не сходится, это баг, а не «фича»: напишите автору.