March 23, 2024

Гайд для софта Linea Park

Links: Software | Telegram | Chat | Layer3 (рефка)

Описание

Софт выполняет только ончейн действия. Для получения LXP необходимо прокликать квесты на Layer3 руками после прогона транзакций.
  • Софт умеет работать с любым количеством аккаунтов, поддерживает любое кол-во OKX аккаунтов
  • Софт умеет отслеживать прогресс выполнения квестов и делать только те, которые еще не были выполнены
  • Поддерживает работу в потоках, прокси
  • Шифрует всю информацию об аккаунтах (приватники, прокси, api окекса, адреса для вывода средств с кошелька на OKX). После шифрования можно использовать только адреса кошельков для последующих запусков софта.
  • Есть возможность изменения GWEI в реальном времени. Стоит защита от одновременных транзакций, софт никогда не сделает транзакции в одну секунду.
  • С помощью софта можно вывести токены с OKX, сделать бридж из/в Linea, пройти квесты и вывести деньги обратно на биржу. И все это одним запуском и настройкой.
  • Можно пройти всю кампанию одной кнопкой

Установка

  1. Скачайте и установите Python
  2. Откройте терминал и скачайте репозиторий с помощью команды
    git clone https://github.com/rgalyeon/Linea_Park.git
  3. Перейдите в папку с софтом с помощью команды cd Linea_Park
  4. Создайте виртуальное окружение с помощью команды
    python -m venv venv
  5. Активируйте виртуально окружение с помощью команды
    source venv/bin/activate если у вас Mac или Linux
    .\venv\Scripts\activate если у вас Windows.
  6. Установите библиотеки необходимые для работы софта с помощью команды
    pip install -r requirements.txt

На этом установка закончена. Перейдем к обзору настроек для работы софта

Настройка софта

Полная настройка софта производится с помощью файлов:

  • wallet_data.xlsx - в этом файле указывается вся информация о кошельках
  • settings.py - основные настройки для работы софта: кол-во потоков, gwei, логи, прокси и прочие настройки
  • modules_settings.py - настройки работы модулей
  • config.py - можно поменять пути расположения файлов, которые софт использует для работы (можно не настраивать). Можно изменить название листа из которого
  • realtime_settings.json - если включен режим считывания настроек в реальном времени, то можно поменять значения газа, чтобы не перезапускать софт

Разберем каждый из файлов по порядку

wallet_data.xlsx

wallet_data.xlsx

Файл представляет собой excel таблицу со следующими колонками:

  • name - название кошелька, необязательная колонка, используется для удобного логирования и отображения в консоли. Это удобно, если вы запускаете несколько разных пачек кошельков, т.к. всегда будете видеть в консоли какие кошельки крутятся. Если не указывать, то вместо имени будет отображаться номер кошелька.
  • address - адрес кошелька в формате 0x, обязательное поле
  • private - приватные ключ в формате 0x, обязательное поле
  • proxy - прокси в формате login:password@ip:port, необязательное поле
  • okx_api - api OKX в формате API_KEY;SECRET;PASSWORD (через точку с запятой), необязательно поле. Используется для вывода средств с OKX. Можно указать разные api для разных кошельков, что позволяет работать с несколькими аккаунтами OKX одновременно
  • okx_address - адрес для пополнения OKX, необязательное поле. Используется для вывода с кошелька на биржу. Можно использовать это поле для отправки ETH не только на OKX, но и на любой другой адрес
Лайфхак: можно один раз указать сразу все данные обо всех аккаунтах, зашифровать и в дальнейшем указывать только адреса кошельков для последующих запусков. Софт будет хранить все данные в зашифрованном виде (файл encrypted_data.txt)

settings.py

  • SAVE_LOGS - True/False (с большой буквы) - сохранять ли файл с логами. Если аккаунтов большое количество (>300), то рекомендую выключать настройку.
  • RANDOM_WALLET - True/False - если включен, то будет выбирать кошельки в случайном порядке для выполнения модулей. Если выключен, то кошельки будут выполняться в порядке, указанном в файле wallet_data.xlsx
  • USE_PROXY - True/False - использовать ли прокси
  • SLEEP_FROM, SLEEP_TO - целые числа, указываются в секундах - минимальное и максимальное значения сна перед запуском следующего кошелька в одном потоке (сколько спать после окончания всех активностей на одном кошельке)
  • QUANTITY_THREADS - целое число - количество параллельных потоков (кошельков). Я обычно выставляю по количеству кошельков в случае если запускаю софт надолго, либо 10-20% от кол-ва кошей, чтобы коши крутились пачками
  • CHECK_QUESTS_PROGRESS - True/False - проверять ли прогресс выполнения квестов перед запуском модуля
  • SLEEP_AFTER_TX_FROM, SLEEP_AFTER_TX_TO - целые числа, указываются в секундах - минимальное и максимальное время сна после выполнения транзакции. На время сна блокируются все потоки, чтобы исключить выполнения транзакции в 1 секунду с нескольких кошельков. Т.е. если долгое время будет высокий гвей, то скопятся потоки и как только гвей упадет до нужных значений, то все потоки будут пытаться выполнить транзакцию в одно время. Чтобы этого избежать, в софте стоит блокировщик на время выполнения транзакции, а с помощью параметров вы можете настроить время блокировки.

Параметры настройки газа:

В софте Linea используется gwei в сети Linea, не путайте с gwei в сети ethereum
  • CHECK_GWEI - True/False - проверять ли гвей перед отправкой транзакции
  • MAX_GWEI - целое число - максимальное значение gwei в сети Linea при котором будут выполняться транзакции. Если текущий gwei выше MAX_GWEI, то софт будет ждать, когда газ снизится
  • REALTIME_GWEI - True/False - если включен, то софт будет считывать параметры газа из файла realtime_settings.json, в котором можно менять параметры газа в режиме реального времени
  • RANDOMIZE_GWEI - True/False - если включен, то софт будет максимальное значение gwei при котором выполняются транзакции из диапазона MAX_GWEI_RANGE. Это позволяет слегка рандомизировать MAX_GWEI для каждого кошелька (один сделает транзакцию когда гвей ниже 1.1, другой когда гвей ниже 1.02)
  • MAX_GWEI_RANGE - диапазон для значения max_gwei - для каждой транзакции будет выбирать случайное значение из диапазона и сравнивать его с текущим gwei в сети. Если текущий гвей ниже выбранного значения из диапазона, то транзакция пройдет. Эта настройка позволяет дополнительно рандомизировать задержки между выполнениями транзакций на разных кошельках
  • GAS_SLEEP_FROM, GAS_SLEEP_TO - целые числа - минимальное и максимальное значения задержки перед следующей проверкой gwei (сколько спать перед следующей проверкой газа в сети)
  • GAS_MULTIPLIER - мультипликатор для газа (можете не менять). Софт считывает текущий газ (комиссию) и домножает на это значение, чтобы транзакция точно прошла. Сейчас софт считывает среднее значение газа за несколько блоков, поэтому можно не настраивать
  • RETRY_COUNT - целое число - кол-во попыток отправить транзакцию в случае ошибки
  • LAYERSWAP_API_KEY - api ключ для бриджей с помощью Layerswap

На этом основные настройки заканчиваются

modules_settings.py и настройка модулей

В этом файле происходит настройка параметром для каждого модуля. Работа модулей расписана в комментариях в коде, но продублирую тут. Рассмотрим основные модули.

withdraw_okx

Модуль для вывода токенов с биржи OKX на кошелек. Перед выводом проверяет субаккаунты и переводит средства с субаккаунтов на основной аккаунт.

  • token - тиккер токена для вывода
  • chains - список сетей - выберет одну рандомную для вывода
  • min_amount - минимальное кол-во указанного токена для вывода
  • max_amount -максимальное кол-во указанного токена для вывода
  • terminate - True/False. Если True, то при ошибке вывода с биржи остановит весь софт
  • skip_enabled - True/False, если True, то проверит баланс на кошельке и если он больше чем skip_threshold, то софт пропустит выполнение модуля и не станет выводить с OKX
  • wait_unlimited_time - True/False - если True, то софт будет бесконечно ждать баланс на OKX. Используется для прокрута объемов в режиме нескольких потоков: как только 1 кошелек закончил крутить объемы и отправил баланс на биржу, то другой кошелек сделает вывод и начнет крутить объем согласно вашему маршруту
  • sleep_between_attempts - диапазон - минимальная и максимальная задержка перед следующей попыткой вывести деньги. Используется, если wait_unlimited_time = True

🔵 transfer_to_okx

Модуль для отправки ETH с кошелька на биржу.

  • from_chains - список сетей - выберет сеть с наибольшим балансом eth из указанных в списке
  • min_amount, max_amount - минимальное и максимальное значения для вывода eth. Выберет рандомно из диапазона
  • decimal - количество знаков после запятой для округления кол-ва eth для вывода
  • all_amount - True/False - если True, то для вывода будут использоваться проценты вместо абсолютных значений. Будут использоваться параметры min_percent, max_percent вместо min_amount, max_amount.
  • min_percent, max_percent - минимальный и максимальный процент от суммы eth на кошельке, который будет выведен на OKX. Работает, если all_amount = True
  • save_funds - диапазон кол-ва токена, которое нужно оставить на кошельке. Выбирает рандомно из диапазона. Пример использования: вы хотите вывести весь баланс со всех кошельков, но у вас везде разный объем. В таком случае можно поставить параметр all_amount = True и min_percent = 100, max_percent = 100, а в save_funds указать небольшое число эфира, которое будет использоваться для комиссий за транзакцию, либо для других ваших целей. Комиссия за отправку транзакции на вывод будет расходоваться из save_funds
  • min_required_amount - минимальная необходимая сумма (в токенах eth) на кошельке для того, чтобы вывод произошел. Пример использования: вы хотите вывести средства из разных сетей со всех кошельков, но где-то лежит 0.01 eth, где-то 0.0001 eth и вы не хотите выводить копейки. В таком случае можно установить параметр min_required_amount = 0.005 и софт не будет выводить из сетей, в которых меньше чем 0.005 эфира
  • bridge_from_all_chains - True/False - если True, то будет выводить не из одной рандомной сети из списка from_chains, а из всех. Этой настройкой можно собрать эфир со всех сетей на биржу
  • sleep_between_transfers - диапазон в секундах - минимальная и максимальная задержка для выводов на биржу из разных сетей. Работает, если включен параметр bridge_from_all_chains

🔵 bridge_orbiter

Модуль для перевода eth из одной сети в другую с помощью Orbiter. Все бриджи в софте работают одинаковым образом, поэтому достаточно разобраться только с одним мостом. Настройки по большей части повторяют настройки из модуля transfer_eth (см. выше)

  • from_chains - список сетей - выберет сеть с наибольшим балансом eth из указанных в списке
  • to_chain - строка - название сети, в которую будет отправлен eth
  • min_amount, max_amount - минимальное и максимальное значения для вывода eth. Выберет рандомно из диапазона
  • decimal - количество знаков после запятой для округления кол-ва eth для вывода
  • all_amount - True/False - если True, то для вывода будут использоваться проценты вместо абсолютных значений. Будут использоваться параметры min_percent, max_percent вместо min_amount, max_amount.
  • min_percent, max_percent - минимальный и максимальный процент от суммы eth на кошельке, который будет выведен на OKX. Работает, если all_amount = True
  • check_balance_on_dest - True/False - если включен, то будет проверять баланс в сети назначения (to_chain). Если баланс в сети to_chain больше, чем указан в параметре check_amount, то софт пропустит модуль и не будет делать бридж
  • check_amount - кол-во eth, которое проверяет софт перед отправкой. Если баланс в сети назначения больше, чем указан в параметре check_amount, то софт пропустит модуль и не будет делать бридж. Работает только при включенном параметре check_balance_on_dest
  • save_funds - диапазон кол-ва токена, которое нужно оставить на кошельке. Выбирает рандомно из диапазона. Подробное описание смотри выше в модуле transfer_to_okx.
  • min_required_amount - минимальная необходимая сумма (в токенах eth) на кошельке для того, чтобы бридж произошел.
  • bridge_from_all_chains - True/False - если True, то будет выводить не из одной рандомной сети из списка from_chains, а из всех.
  • sleep_between_transfers - диапазон в секундах - минимальная и максимальная задержка для выводов на биржу из разных сетей. Работает, если включен параметр bridge_from_all_chains

🔵 progress_check

Чекер прогресса выполнения квестов. При его запуске софт для каждого кошелька из wallet_data.xlsx через API Lineascan получает данные о транзакциях, проверяет какие квесты выполнены и создает таблицу progress.xlsx (по умолчанию) в которой содержится информация о кошельке и его прогрессе.

При запуске модулей софт будет проверять по таблице выполнен ли модуль. Если да, то пропустит выполнение, если нет, то попытается сделать и при успешном выполнении заполнит таблицу.

Для комфортной работы модуля необходимы прокси и апи ключи Lineascan, т.к. бесплатное api имеет ограничения в 5 запросов в секунду.

Если во время проверки прогресса у софта не получилось проверить прогресс, то он выдаст об этом сообщение. Если в таблице не будет данных о кошельке, то софт будет выполнять модули даже если вы уже выполняли его раннее.

Под капотом работает следующим образом:

  • Берет прокси от кошелька и случайны апи ключ и отправляет запрос
  • Если не получилось, то пробует отправить запрос без прокси и со случайным апи ключом
  • Если опять не получилось, то сделает 10 попыток с другими прокси и случайными апи ключами

Как настроить:

  • Включите параметр CHECK_QUESTS_PROGRESS в settings.py
  • На сайте https://lineascan.build/login регистрируйтесь и создайте апи. На 1 аккаунт можно создать 3 апи. Зарегистрируйте сразу пачку, чтобы было 9-18 апи ключей (зависит от кол-во аккаунтов)
  • В файле config.py в параметр LINEA_API_KEYS добавьте ваши апи ключи. Чем больше, тем лучше
Не переименовывайте название колонок в таблице. Они совпадают с названием модулей. Если вы решите заполнить таблицу руками и поменяете название колонки, то софт не поймет вас и будет считать задание не выполненным

🟠 custom_routes

Основной модуль для комфортного прогона Linea. Позволяет сформировать собственный маршрут для выполнения модулей.

  • use_modules - список модулей, которые будут использоваться при запуске. Название модулей - это название функций, которые будут запускаться. Названия можно найти в комментарии к модулю, либо в самом файле modules_settings.py - он полностью состоит из функций, которые будут запускаться.
    Модуль поддерживает вложенность: можно указать use_modules = [adopt_cat, [game_boom_mint, send_mail]]. В таком случае модуль adopt_cat выполнится обязательно, затем выполнится один из двух модулей - либо game_boom_mint, либо send_mail. Полезно в случае, если вы ходите на части кошельков сделать один модуль, а на другой части второй модуль
  • sleep_from, sleep_to - минимальная и максимальная задержка между выполнением модулей
  • random_module = True/False - если True, то модули из списка будут выполняться в случайном порядке
Если включен random_module и в use_modules есть модуль вывода с OKX, то софт всегда первым шагом сделает вывод с OKX. Если в use_modules указаны основные таски и бонусные из одного задания, то софт сперва выполнит основной таск, затем бонусный

Запуск софта

После того, как вы выполнили установку и заполнили файл wallet_data.xlsx, то можно переходить к запуску.

Первый запуск

При первом запуске вам необходимо сделать шифрование чувствительных данных (приватники, прокси...). Для этого используем команду
python main.py
и выбираем модуль 1) Encrypt private keys

Модуль попросит вас установить и подтвердить пароль с помощью которого в дальнейшем вы сможете запускать софт.

Внимание: пароль не отображается на экране (он невидимый), но введенные символы запоминаются.

После шифрования софт создаст файл encrypted_data.txt, в котором хранятся данные о ваших кошельках в зашифрованном виде, затем удалит все колонки из файла wallet_data.xlsx, кроме address.

При следующих запусках вам достаточно указывать ТОЛЬКО АДРЕСА ваших кошельков, которые вы хотите запустить для прогона. Это удобно, потому что вы скорее всего будете использовать чекеры для проверки статистик ваших кошельков, а затем копировать адреса нескольких кошельков из чекера, чтобы добить некоторые модули. Так вот можно сразу копировать адреса и вставлять в софт, нет необходимости заново вводить приваты, прокси и т.д.

Если у вас появятся новые кошельки, данные о которых не были зашифрованы, то необходимо еще раз заполнить таблицу wallet_data.xlsx и запустить модуль Encrypt private keys.

Последующие запуски

После того как вы зашифровали приватные ключи и указали адреса кошельков, которые хотите использовать для прогона в файле wallet_data.xlsx, необходимо снова ввести команду
python main.py
в терминале и выбрать нужный вам модуль. Удобнее всего всегда выбирать 5) Use custom routes и настраивать собственный маршрут для прогона.

После выбора модуля, софт спросит у вас пароль (он необходим, чтобы получить доступ к зашифрованным данным о кошельках). Если пароль правильный, то софт начнет выполнение модулей.

Вы великолепны! Всем жирных дропов!

Отблагодарить автора

Лучшая ваша благодарность - это обратная связь. Поделиться ей можно в чате

Буду безмерно рад звезде 🌟 на гитхабе или подписке на канал, в котором я публикую анонсы и изменения в софтах и отвечаю на вопросы по софтам

Кошелек для донатов: rgalyeon.eth