h harvest v2.4.1 … GitHub
ТЕСТНЕТЫ · PYTHON 3.12 · MITБЕЗ ОБЕЩАНИЙ ДРОПА

Чужие тестнеты — под нагрузкой.
Ботами, по сценариям.

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
02

Зачем это всё

Если коротко: мне нравится возиться с тестнетами, и я хотел убрать из этого рутину. А ещё — показать, как всё устроено, без тумана.

Я начал harvest с простой задачи: у меня было несколько тестовых сетей и много одинаковых действий, которые я делал руками. Создать кошельки, дождаться крана, отправить перевод, записать, что получилось. Через пару вечеров стало понятно: это лучше поручить скрипту, а самому смотреть на цифры и иногда вмешиваться.

Поэтому здесь нет «секретной стратегии» или обещания, что вас заметят и что-то дадут. Есть Python-ферма, конфиги под конкретные сети, портал для запуска и остановки, и этот сайт. Всё можно прочитать, поменять и запустить у себя. Если что-то сломается — в логах будет видно, что именно.

Сайт специально сделан статическим. Демо-зона считает ключи в браузере и никуда их не отправляет. Поле показывает только то, что ферма сама решила опубликовать: без адресов и без приватных ключей.

— ssrjkk, автор harvest
Кошельки

Создать и не потерять

BIP-39 через eth_account, импорт и экспорт CSV/JSON, шифрование сидов AES-256-GCM. Повторный запуск не плодит дубликаты.

Кран

Дождаться топлива

Стратегии chainstack, direct и web, ретраи, лимиты и прокси. Если живого крана нет, ферма честно скажет об этом, а не будет делать вид.

Прогоны

Гонять чейн по сценарию

Асинхронный пул, чанки, восстановление после падения по state.json. Поведенческая персона привязана к адресу, поэтому перезапуск не меняет рисунок нагрузки.

Границы, о которых лучше знать сразу
  • Только тестнетыНикакого мейннета, реальных денег и реальных ключей. Это песочница для практики, а не способ заработать.
  • Без гарантийПроект не обещает дроп, поинты или прибыль. Тестнет может закрыться, правила могут поменяться, активность могут не засчитать.
  • Ключи у васДемо-генератор хранит ключи только в памяти вкладки. Ферма хранит их в вашей БД; для шифрования нужен мастер-ключ. Резервные копии — ваша ответственность.
  • Не «всё само»Конфиги, RPC и контракты иногда нужно править руками. Если сеть — заглушка, часть действий будет пропущена, и это нормально.
03

Четыре тестовые сети

Выбор сети — в меню main.py или флагом --config. У каждой сети свой конфиг и своя БД. Для плотного фарма без контрактов есть config.simple.yaml: только переводы, gas_limit 21000.

СетьКонфигchain_idВалютаДействия
Robinhood Chainconfig_robinhood.yaml46630ETHtransfer · vibevibe_swap/mint
Flop Labsconfig_flop.yaml99999 stubFLOPflop_compute/validate/stake + transfer
Arc (Minara.Fun)config_arc.yaml5042002ARCarc_launch/trade/add_liquidity + transfer
vibe/vibe — launchpad на Robinhoodconfig_vibevibe.yaml46630ETHtransfer · 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
04

Попробовать без спешки

Первая цель — 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   # холостой прогон без транзакций
Флаги auto.py
FlagЭффект
--wallets NN кошельков (0 — из конфига; по умолчанию 50)
--cycles NN циклов (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 кошелька и один цикл. Ферма не требует доверия — все шаги видны в логах.

Сборка exe · портал · тесты · публикация поля
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 → поле сайта
Меню main.py

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. Если что-то не сходится, это баг, а не «фича»: напишите автору.