Gradient Network Automation Bot
Комбайн для автоматизации действий в проекте Gradient.network.
Навигация по мануалу
Основной функционал
- Регистрация аккаунтов (с возможностью использования инвайтов)
- Авторизация ранее зарегистрированных аккаунтов (по логину и паролю)
- Регистрация необходимого количества нод на каждом аккаунте
- Фарминг поинтов и тапов
- Асинхронный режим работы всех модулей
- Ротация прокси при ошибках
- Подробное логирование (в терминал, в файл) с режимом дебага
- Хранение информации об аккаунтах и нодах в локальной БД (SQLite)
Дополнительный функционал
- Создание уникальные цифровых отпечатков для нод (с помощью Local API Ads Power)
- Решение капчи с помощью Capmonster
- Верификация почты при регистрации по IMAP-протоколу
- Использование для каждого аккаунта уникального набора HTTP-заголовков (headers)
Инструкция по запуску
Для начала распакуйте загруженный из бота архив с софтом в отдельную папку для удобства работы с ним, должна получиться примерно следующая структура (может незначительно изменяться после выхода обновлений):
Все файлы с расширением *.py зашифрованы, поэтому настоятельно не рекомендуем вносить в них какие-либо изменения - это нарушит работу скрипта (он попросту перестанет работать).
Шифрование файлов помогает нам защитить софт от его непреднамеренного распространения и использования наших трудов сторонними разработчиками себе во благо + мы с Вами будем уверены, что софт не разойдется по сотням или даже тысячам рук, что могло бы совершенно точно "убить темку" на самом старте.
Билд софта всегда будет собираться на одной и той же версии Python - 3.11.5
.
Для запуска скрипта Вам необходимо использовать точно такую же версию Python - 3.11.5 (скачать)
Возможно, подойдет 3.11 с другим индексом - это не проверялось. Версия ниже - совершенно точно не подойдет. Можете протестировать самостоятельно, вдруг повезет.
Для удобства работы с софтом рекомендую использовать один из редакторов кода: PyCharm Community Edition или Visual Studio Code - оба редактора бесплатные.
Перед запуском софта необходимо будет установить зависимости (сторонние библиотеки), необходимые для работы софта - хранятся в файле requirements.txt
.
Установку зависимостей и запуск софта рекомендуется выполнять из виртуального окружения (более подробно про работы с виртуальным окружением почитайте здесь - https://pythonchik.ru/okruzhenie-i-pakety/virtualnoe-okruzhenie-python-venv):
1. Переходим в папку, в которую распаковали софт (скрин выше)
2. Убеждаемся, что у нас установлена нужная версия Python командой:
python -V
3. Если отсутствует, то создаем виртуальное окружение командой:
python -m venv venv
При успешном создании виртуального окружения в папке с софтом должна появиться новая папка - venv:
4. Активируем виртуальное окружение:
venv\Scripts\activate
venv\Scripts\activate.bat
Ошибка: .\venv\Scripts\activate : Невозможно загрузить файл C:\path\venv\Scripts\activate.ps1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу http://go.microsoft.com/fwlink/?LinkID=135170. строка:1 знак:1
Запустите Power Shell от имени администратора и введите команду:
Set-ExecutionPolicy RemoteSigned
Подтвердите действия вводом в Power Shell:
A
source venv/bin/activate
После успешной активации в терминале слева от имени устройства должно в скобках появиться название виртуального окружения (у нас это venv
):
Отлично, теперь мы находимся в виртуальном окружении.
5. Устанавливаем нужные библиотеки (выполняем разово + при выпуске новых версий скрипта):
pip install -r requirements.txt
6. Выполняем все действия по настройке из следующего раздела и можно запускать скрипт:
python main.py
Не забывайте всегда перед запуском скрипта проверять, находиться ли Вы в виртуальном окружении.
Инструкция по настройке
Все конфигурационные файлы хранятся в директории data
- эта папка должна находиться в той же директории, из которой будет запускаться главный файл.
Шаг 1. Заполняем файл accounts.txt
Заполнить информацией об аккаунтах, каждый с новой строки по одному из форматов (для каждого аккаунта можно использовать свой формат):
{email}
Актуально только для еще не зарегистрированных аккаунтов (пароль будет сгенерирован софтом автоматически)
{email}:{password}
Так можно указать свой пароль для аккаунта, по умолчанию он будет использован только при регистрации аккаунта. После первичной регистрации пароль сохраняется в БД и в дальнейшем приоритетно будет использоваться именно пароль из базы данных.
Если Вам по каким-то причинам необходимо перезаписать пароль из БД на основе паролей из файла, то необходимо установить в settings.yml: wallet -> use_password_from_file -> true
{email}:{password}:{imap_username}:{imap_password}
Уникальные IMAP юзернейм и пароль для почты, иначе для получения кодов подтверждения с почты будет использоваться единый почтовый ящик из settings.yml (address, service_password); вместо плейсхолдера {password} можно вставить как свой собственный пароль, так и "generate" - тогда софт сам сгенерирует пароль (это работает ТОЛЬКО если Вы указываете IMAP-данные)
{email}:{password}:{imap_username}:{imap_password}:{imap_client}
Работает так же, как и в примере выше, только добавляется дополнительный параметр - imap_client - это CLIENT_ID, когда Вы используете почты от Microsoft с OAuth2 авторизацией (outlook, hotmail и другие). Софт использует OAuth2 авторизацию для почтовых доменов, которые в качестве IMAP-сервера используют outlook.office365.com
. imap_password здесь - это не пароль от почты, а REFRESH TOKEN.
Пример 1. Нужно зарегистрировать аккаунты с нуля, для всех email уже настроен редирект на единый адрес электронной почты
Заполняем файл accounts.txt email-ами:
При таком заполнении пароли будут сгенерированы при запуске модуля регистрации автоматически и сохранены в базу данных. Если Вы хотите вручную установить пароли (отделяем почту от пароля с помощью ":"):
Так, для первого и третьего аккаунта будет установлен пароль "my_password123", а для второго и четвертого - сгенерирован автоматически.
Чтобы при работе модуля регистрации скрипт мог автоматически получать коды подтверждения с электронной почты, необходимо указать IMAP-сервер в settings.yml
для домена почты (в примере - для icloud.com, так как все почты именно в этой зоне):
В это примере мы предварительно настроили переадресацию, чтобы все письма с указанных в accounts.txt email-ов пересылались на единую почту, например, на - [email protected]. В таком случае необходимо указать в settings.yml именно этот адрес и пароль доступа по протоколу IMAP:
Пример 2. Нужно зарегистрировать аккаунты с нуля, у каждого email свои данные для IMAP-авторизации
Заполняем файл accounts.txt email-ами и для каждого прописываем пароль, имя и пароль от IMAP-сервера:
Убеждаемся, что для каждой доменной зоны прописан IMAP-сервер в settings.yml
(смотри пример 1).
Шаг 2. Заполняем файл proxy.txt
Скрипт поддерживает работу исключительно с прокси формата SOCKS5.
Файл proxy.txt заполнить прокси - скрипт при запуске распределит прокси рандомно между всеми аккаунтами, формат:
Для фарминга рекомендуется использовать резидентские (ISP) прокси с оплатой только за израсходованный трафик. Такие прокси обычно имеют 2 режима смены IP-адреса: при каждом запросе (прокси с ротацией) и раз в N-минут ("липкие" прокси).
Для более-менее стабильной работы нод необходимо использовать именно "липкие" (sticky) прокси, которые позволят дольше поддерживать работу с выданным IP-адресом
При возникновении ошибок при отправке запросов или при работе нод, скрипт будет рандомно брать новую прокси из файла proxy.txt и заново выполнять ошибочное действие.
Загружайте в файл как можно больше прокси, чтобы при повторных попытках у софта была возможность выбрать новую прокси. Условно, на 1500 нод загрузите в файл 20 000 прокси. При работе с резидентскими прокси проблем с генерацией новых прокси-сессий быть не должно.
При генерации "липких" прокси ОБЯЗАТЕЛЬНО установите максимально возможный период жизни соединения (TTL).
Так TTL устанавливается для luna-прокси:
Для travchis-прокси TTL можно установить тут:
Шаг 3. Заполняем файл referral_codes.txt
Файл referral_codes.txt заполнить реферальными кодами для регистрации новых аккаунтов (каждый с новой строки). При регистрации пользователя берется рандомно один код из списка (если они там есть).
Можете зарегистрировать сперва вручную несколько аккаунтов и сохранить их реферальные коды в этот файл.
Шаг 4. Редактируем файл settings.yml
Это основной файл настроек, в котором можно управлять различными поведенческими параметрами софта и другими настройками.
При редактировании этого файла будьте аккуратны (все отступы важны).
Рекомендуем внимательно следить за отступами там, где они есть, и использовать при редактировании редакторы с подсветкой yml-синтаксиса (VS Code, PyCharm и тд).
Вставьте свой лицензионный ключ для софта, получить ключ можно после покупки в боте - https://t.me/wavedaobot.
# LICENSE license_key: "your-license-key"
Для каждого ключа по умолчанию установлено ограничение на 2 активные сессии
.
Так с помощью одного лицензионного ключа можно запустить единовременно два экземпляра софта (у себя на компьютере и на сервере, например).
Если при запуске софта Вы получаете ошибку о превышении количества активных сессий, закройте все терминалы с запущенным скриптом и повторите попытку через несколько минут.
При фарминге понитов и тапов отправляется версия официального расширения Gradient, посмотреть ее можно здесь - https://chromewebstore.google.com/detail/gradient-sentry-node/caacbgbklghmpodbdafajbgdnegacfmo.
# Gradient Extension Version extension_version: "1.0.15"
По-умолчанию там будет установлена версия, которая являлась актуальной на момент сборки софта.
Раздел для управления некоторыми аспектами при работе с аккаунтами.
# WALLETS SETTINGS wallet: threads_count: 1 # [int] Simultaneous number of accounts to run shuffle: true # [true or false] Shuffle wallet addresses before start module use_referral: true # [true or false] Register by random referral code from referral_codes.txt use_password_from_file: false # [true or false] Use password from accounts.txt file instead of database password manual_email_code: false # [true or false] Manual entry of confirmation code from e-mail
- threads_count (целое число) - количество аккаунтов (потоков) в работе; если тут будет 1 - то при запуске, например, модуля регистрации или авторизации - одновременно в работе будет находиться только один аккаунт; при запуске модуля фарминга
имеется особенность - этот модуль бесконечный, то есть работает до тех пор, пока скрипт не будет принудительно остановлен, поэтому при запуске фарминга указывайте в threads_count число аккаунтов, на которых нужно запустить фарминг или большеезапускаются все аккаунты, присутствующие в accounts.txt - shuffle (true или false) - true - если нужно перемешивать аккаунты перед запуском, false - если нет
- use_referral (true или false) - нужно ли использовать реферальные код при регистрации новых аккаунтов
- use_password_from_file (true или false) - true - если Вам по каким-то причинам необходимо перезаписать пароль из БД на основе паролей из файла
- manual_email_code (true или false) - true - если хотите вручную вводить коды подтверждения с email (при запросе кода софт станет на паузу пока Вы не пришлете ему код)
Раздел для управления настройками при работе с нодами
# NODES SETTINGS node: reg_count: from: 1 # [int] Random count node creation, from to: 3 # [int] Random count node creation, to limit: 3 # [int] Limit nodes per account check_status: true # [true or false] Check node status via API (consumes additional traffic) check_ip_change: false # [true or false] Notify about node IP change via MQTT mqtt_version: 3 # [3 or 5] MQTT Protocol version (not to change without understanding)
- reg_count - указываем в from и to целые числа, между которыми будет рандомно выбрано число нод для регистрации на аккаунте
- limit (целое число) - максимальный лимит нод на аккаунте (используется в модуле регистрации, не будет создавать регистрировать новые ноды, если превышено указанное значение)
- check_status (true или false) - true - если нужно проверять статус нод по API Gradient (с помощью этой функции скрипт будет видеть на нодах статус "Unsupported", который появляется для нод, которые имеют недопустимый IP-адрес и перезапускать их с новым прокси), влечет за собой дополнительные расходы по трафику, но положительно влияет на добычу поинтов
- check_ip_change (true или false) - true - если при каждом переподключении ноды необходимо проверять текущий IP-адрес и при изменении отправляет информацию о новом IP в Gradient (оригинальное расширение делает именно так, но при использовании резидентских прокси IP-адреса будут меняться достаточно часто, поэтому смотрите сами, стоит ли отправлять такую информацию проекту) - влечет за собой дополнительные расходы по трафику, никак не влияет на добычу поинтов
- mqtt_version (3 или 5) - Gradient использует для функционирования нод MQTT-сервер, для "общения" с которым мы используем MQTT-клиент, можно выбрать его версию: 3 или 5. В оригинальном расширении используется 5-я версия, но при тестировании мы установили, что 3-я версия расходует меньше трафика, поэтому оставили возможность выбора;
Этот раздел для того, чтобы все действия с аккаунтами и нодами не происходили одномоментно, а промежутки времени между их выполнением рандомизировались.
Оптимальные параметры уже настроены "из коробки", но могут быть отредактированы по Вашему собственном усмотрению.
Каждый параметр имеет ключи from и to - это целые числа "от" и "до", соответственно. Скрипт выберет рандомное значение из этого интервала.
# SLEEP SETTINGS sleep: # Timeout before launching the account between_accounts: from: 50 # Min seconds to: 700 # Max seconds # Timeout between errors between_errors: from: 15 to: 45 # Timeout between starting farming on an individual node between_nodes: from: 50 to: 150 # Timeout between receiving statistics for all nodes at once between_nodes_stats: from: 600 to: 900 # Timeout between checking the status of an individual node # (from must not be less than the to parameter in between_nodes_stats) between_single_node_stat: from: 900 to: 1200 # Timeout between checking the current version of the browser extension between_version_check: from: 3600 to: 10800
- between_accounts - пауза перед запуском аккаунта
- between_errors - пауза после возникновения ошибки
- between_nodes - пауза перед первым запуском фармингом на ноде
- between_nodes_stats - пауза между получением статистики по всем нодам на аккаунте (актуально при активном параметре
node -> check_status
) - between_single_node_stat - пауза между проверкой статистики по конкретной ноде (актуально при активном параметре
node -> check_status
, минимальное значение должно быть больше или равно параметру to из between_nodes_stats) - between_version_check - пауза между проверкой версии расширения (берется из settings.yml и отправляется раз в сутки либо при изменении на новую)
Можно настроить максимальное количество попыток повторения ошибочных действий, после которых работа модуля для определенного аккаунта будет прервана:
# Number of attempts in case of an error retry_count: 5
Этот параметр не распространяется на количество ошибок при фарминге - там попытки переподключения / ротации прокси будут происходить бесконечно.
При работе с модулем регистрации необходимо разгадывать капчу, софт использует одного из двух провайдеров: Capmonster или 2Captcha, поэтому предварительно необходимо пополнить баланс выбранного сервиса:
# CAPTCHA SETTINGS captcha: provider: "2captcha" # capmonster or 2captcha capmonster_api_key: "" # Your Capmonster API Key (https://capmonster.cloud/Dashboard) 2captcha_api_key: "" # Your 2Captcha API Key (https://2captcha.com/ru/enterpage) gradient_website_url: "https://app.gradient.network/" # not to change without understanding gradient_site_key: "6Lfe5TAqAAAAAI3mJZFYU17Rzjh9DB5KDRReuqYV" # not to change without understanding
Когда определитесь с сервисом для решения капчи, укажите в параметре captcha -> provider его название, это может быть: "capmonster" или "2captcha" (в конфиге есть комментарий с подсказкой правильных названий).
Функционал у обоих сервисов одинаковый, стоимость +- тоже (копеечная). Просто иногда при работе с одним из них могут возникать ошибки и в такой ситуации просто используйте другой в качестве альтернативы.
Где искать API-ключ для Capmonster:
Вставляем его в capmonster_api_key.
Где искать API-ключ для 2Captcha:
Вставляем его в 2captcha_api_key.
Остальные параметры редактировать не нужно, только если мы Вам об этом не скажем.
Раздел для управления настройками прокси:
# PROXY SETTINGS proxy: active: true # [true or false] rotate_on_error: true # [true or false] type: "socks5" # Support only socks5 type
- active (true или false) - true - чтобы активировать использование прокси; крайне не рекомендуем использовать софт без прокси, особенно при работе с большим количеством аккаунтов
- rotate_on_error (true или false) - true - чтобы включить замену прокси при ошибках; рекомендуем оставить включенным
- type - тип прокси, софт поддерживает работу только с прокси SOCKS5 - учтите это при выборе прокси-провайдера
# DEBUG MODE debug: active: false # [true or false] Activate debug mode logging_in_file: true # [true or false] Log in files
- active (true или false) - true - чтобы добавить в логи результаты всех запросов к API Gradient, может помочь при поиске ошибок в работе софта (если они имеют место быть)
- logging_in_file (true или false) - true - чтобы логи сохранялись в файл (логи будут храниться в папке logs в корне скрипта)
4.10 Фингерпринт (создание цифрового отпечатка для нод)
Управление созданием фингерпринтов:
# ADS POWER SETTINGS ads: api_url: "http://local.adspower.net:50325" # Link to access Local API api_key: "f513021d0aae**************" # API key to access Local API group_name: "Gradient" # Ads Power group name for profile creation
- api_key - API-ключ для Local API Ads Power, генерируется в том же окне (под URL-адресом)
- group_name - имя группы в Ads Power, в которой будет создаваться профиль для получения фингерпринта
Если у Вас еще нет аккаунта
Зарегистрируйте его по ссылке (так Вы сможете получить свой первый реферальный код):
https://app.gradient.network/signup?code=YR8WVH
Как использовать модули
В этом разделе можно найти информацию о том, как работать с тем или иным модулем.
Модуль "Registrate accounts"
Предназначен для регистрации аккаунтов в Gradient с нуля.
При работе модуль автоматически решает капчу и получает коды подтверждения с email по протоколу IMAP (в автоматическом или ручном режиме).
После успешной регистрации данные об аккаунте сохраняются в локальную базу данных:
- email;
- пароль;
- идентификатор пользователя;
- токены доступа (для быстрой авторизации);
- реферальный код (зарегистрированного пользователя);
- кастомные заголовки (headers).
Для автоматического получения кодов подтверждений с email необходимо корректно настроить IMAP-данные для авторизации:
Кейс 1. Если для каждого аккаунта нужно использовать индивидуальные логин и пароль от IMAP (почты)
В таком случае необходимо в файле accounts.txt для каждой почты (аккаунта) прописать IMAP-данные, пример:
[email protected]:password_for_account:[email protected]:password_for_imap
- [email protected] - email для регистрации
- password_for_account - пароль, который будет установлен при регистрации в Gradient (можно указать generate - тогда пароль будет сгенерирован софтом)
- [email protected] - IMAP логин (обязательно указывайте с доменной зоной)
- password_for_imap - IMAP пароль
Если Вы хотите использовать почты от Microsoft (outlook, hotmail и т.д.), то необходимо использовать следующий формат в accounts.txt для возможности авторизации таких почтовых аккаунтов по IMAP с OAuth2:
[email protected]:password_for_account:[email protected]:refresh_token_for_imap:client_id
- [email protected] - email для регистрации
- password_for_account - пароль, который будет установлен при регистрации в Gradient (можно указать generate - тогда пароль будет сгенерирован софтом)
- [email protected] - IMAP логин (обязательно указывайте с доменной зоной)
- refresh_token_for_imap - REFRESH TOKEN для получения временного пароля при IMAP-авторизации (это специальная длинная строка, НЕ ОБЫЧНЫЙ пароль)
- client_id - CLIENT ID для OAuth2 IMAP-авторизации
Кейс 2. Если Вы настроили для ВСЕХ регистрируемых аккаунтов редирект на ЕДИНУЮ почту
Этот кейс особенно актуален при работе с почтами, которые были сгенерированы с помощью функции "Скрыть мой e-mail" в icloud.com, потому как прямо в личном кабинете icloud.com можно включить автоматический редирект со всех сгенерированных ящиков на единый email:
В таком случае достаточно создать пароль для IMAP-протокола в настройках аккаунта (https://account.apple.com/account/manage), раздел - "Пароли приложений":
И установить IMAP-логин (почта, на которую редиректятся все письма) и полученный пароль приложений (он же IMAP-пароль) в settings.yml:
# EMAIL SETTINGS email: address: "[email protected]" service_password: "your-imap-app-password" imap_servers: icloud.com: - imap.mail.me.com # IMAP server for iCloud - 993 # IMAP port for iCloud
Модуль "Auth accounts"
Предназначен для добавления в базу данных софта аккаунтов, которые ранее УЖЕ БЫЛИ ЗАРЕГИСТРИРОВАНЫ в Gradient.
Поэтому для использования этого модуля в accounts.txt достаточно добавить аккаунты в формате:
[email protected]:password_for_account
- [email protected] - email от аккаунта в Gradient
- password_for_account - пароль от аккаунта в Gradient
Модуль "Auth accounts" НЕ НУЖНО запускать для аккаунтов, которые были зарегистрированы в Gradient с помощью модуля регистрации "Registrate accounts".
Модуль "Create nodes"
Для фарминга поинтов в Gradient необходимо единоразово создать ноды для каждого аккаунта. В личном кабинете нет отдельной функции добавления нод, потому что они создаются при запуске расширения Gradient для Google Chrome. Точнее, для установленного в браузере расширения создается одна нода.
Количество нод, которые будут созданы софтом, регулируется в settings.yml (смотрите настройки этого файла в гайде выше).
Сколько нод создавать? Решать каждому из вас. Имхо, самый правдоподобный вариант - это 1 аккаунт = 1 нода.
Модуль "Start fingerprinting"
Начиная с версии расширения Gradient >= 1.0.11 при фарминге поинтов каждая нода отправляет фингерпринт (уникальный цифровой отпечаток Вашего компьютера).
Поэтому если Вы указали в settings.yml -> extension_version больше или равную версии 1.0.11
, то перед запуском модуля фарминга необходимо для каждой ноды создать уникальный цифровой отпечаток.
Для создания фингерпринтов софт использует платную версию анти-детект браузера Ads Power.
Если у Вас еще нет подписки, необходимо оформить ее:
- Регистрируемся в Ads Power
- Приобретаем тариф на необходимое количество профилей
Для создания цифровых отпечатков софт использует Local API Ads Power, а именно: создает новый профиль -> снимает отпечаток -> удаляет профиль. И так по кругу.
Для каждого аккаунта Ads Power устанавливает дневные лимиты на создание профилей: количество приобретенных профилей * 10.
Пример. Если Вы купили 100 профилей на месяц, то лимит будет = 100 * 10 = 1000 профилей в сутки = генерация 1000 отпечатков в сутки.
Судя по всему, для новых пользователей есть какой-то бонус: при покупке 10 профилей лимит составляет 450 созданий профилей в сутки = генерация 450 отпечатков в сутки.
Алгоритм запуска модуля создания цифровых отпечатков нод:
- Аккаунты должны быть уже добавлены в БД с помощью одного из модулей (регистрации ИЛИ (не И) авторизации)
- Ноды для этих аккаунтов уже должны быть созданы с помощью модуля создания нод
- Заполнены файлы accounts.txt и proxy.txt (профили браузеров будут использовать прокси из файла)
- Ads Power запущен и выполнен вход в аккаунт с оплаченной подпиской на выбранное количество профилей
- В settings.yml добавлены настройки для Local API Ads Power (смотри выше инструкцию по заполнению файла настроек)
- Можно запускать модуль генерации фингерпринтов
Запускайте этот модуль исключительно в один поток, в settings.yml установите:
# WALLETS SETTINGS wallet: threads_count: 1
А паузы между аккаунтами сделайте минимальными:
# SLEEP SETTINGS sleep: # Timeout before launching the account between_accounts: from: 1 # Min seconds to: 1 # Max seconds
Внимание! ADS Power и софт для генерации отпечатков должны быть запущены на одном устройстве, так как API ADS Power локальное. Софт не сможет получить к нему доступ, если оно будет запущено на другом компьютере.
Скрин из документации Gradient'a:
Расшифрую их логику: на одном аккаунте может быть несколько нод, но каждая из них должна быть установлена на отдельном устройстве. Именно поэтому софт создает уникальные отпечатки для каждой ноды.
Модуль "Start farming"
Все предыдущие модули служат для того, чтобы подготовить Gradient-аккаунты к запуску модуля фарминга (поинтов и тапов).
Перед запуском этого модуля Вы должны были уже выполнить следующие действия:
- Аккаунты должны быть уже добавлены в БД с помощью одного из модулей (регистрации ИЛИ (не И) авторизации)
- Ноды для этих аккаунтов уже должны быть созданы с помощью модуля создания нод
- Заполнены файлы accounts.txt и proxy.txt
- Для нод должны быть созданы отпечатки (фингерпринты) с помощью модуля "Start fingerprinting"
- В settings.yml сделаны необходимые настройки (смотри инструкцию по settings.yml выше)
- Можно запускать фарминг
Если по каким-то причинам Вы пока еще не создали отпечатки для нод, но хотите начать фарминг - установите версию расширения в settings.yml -> extension_version - 1.0.10
, так как, начиная с 1.0.11
, отпечатки уже должны отправляться.
При отсутствии отпечатков и использовании версии выше 1.0.10
модуль фарминга работать не будет и завершится ошибкой "Farming on node 111111111 cannot be run with the current version of the extension, as no fingerprints have been created for that node".
Ответы на часто задаваемые вопросы (FAQ)
Возможные ошибки
- "Too many open files" - возникает, когда исчерпан лимит на количество файловых дескрипторов, используемых софтом для работы с файлами и для каждого прокси-соединения (чем больше нод в работе - тем больше дескрипторов используется). На Windows этот лимит жестко ограничен на уровне операционной системы и не может быть изменен. Поэтому если Вы уже столкнулись с этой проблемой, то есть всего два варианта:
- Уменьшить количество аккаунтов в работе (нод)
- Перейти на другую операционную систему (Linux или Mac OS), где при достижении лимита на использование файловых дескрипторов, его можно увеличить и таким образом решить ошибку
- "INVALID_LOGIN_CREDENTIALS" - может возникать при работе с аккаунтами (регистрации, авторизации, создании нод и т.д.) и говорит о том, что либо регистрация аккаунта не была завершена корректно (убедитесь, что в БД accounts.db в таблице accounts для этого аккаунта registration_completed = 1), либо в БД по какой-то причине содержатся неправильные данные для авторизации (логин и пароль). Можно попробовать исправить эту ошибку следующим способом: вручную сбросить для этой почты пароль и установить новый, с помощью модуля "Auth accounts" авторизовать этот аккаунт с новым паролем, предварительно установив в settings.yml wallet->use_password_from_file: true , чтобы в БД пароль был перезаписан на новый. Если и это не поможет - отправляем такой аккаунт в утиль и берем новый.
Работа с базой данных
Всю информацию об аккаунтах софт хранит в БД SQLite в файле data/accounts.db (он создается автоматически после первого запуска софта).
- accounts - здесь хранятся данные об аккаунтах, среди которых:
- password - пароль от аккаунта (заданный Вами самостоятельно или сгенерированный софтом)
- points - сумма поинтов, полученных от фарминга нодами (фактически поинтов может быть больше за счет реферальных, бонусных и других вознаграждений)
- registration_completed - 1 (успешная регистрация), 0 (регистрация не завершена)
- referral_code - реферальный код данного аккаунта
- nodes - тут информация о созданных для аккаунтов нодах:
В таблицах БД хранится и другая необходимая для работы софта информация.
Для просмотра содержимого accounts.db можно использовать:
- PyCharm
- https://dbeaver.io/
- https://sqlitebrowser.org/
- или любое другое ПО для просмотра БД SQLite (гугл в помощь)
Редактировать вручную БД крайне не рекомендую, если не понимаете, что делаете и к чему это может привести. А если очень чешутся руки - сделайте хотя бы бэкап базы перед тем, как все сломаете :)
Список разрешенных для регистрации доменов
По состоянию на 23.10.2024:
- aol.com
- aptechlearning.edu.vn
- bk.ru
- caothang.edu.vn
- dau.edu.vn
- daum.net
- deped.gov.ph
- dmail.ai
- docomo.ne.jp
- donga.edu.vn
- duck.com
- ethermail.io
- foxmail.com
- free.fr
- fpt.edu.vn
- galxe.com
- gmail.com
- gm.uit.edu.vn
- googlemail.com
- gradient.network
- hanmail.net
- hotmail.co.jp
- hotmail.com
- hotmail.de
- hotmail.fr
- hotmail.it
- hotmail.co.uk
- hul.edu.vn
- huce.edu.vn
- hcmut.edu.vn
- husc.edu.vn
- inbox.lv
- inbox.ru
- internet.ru
- i.ua
- laposte.net
- live.com
- live.fr
- live.it
- mail.com
- mail.ru
- meta.ua
- msn.com
- moet.edu.vn
- mozmail.com
- myyahoo.com
- nate.com
- naver.com
- naver.com
- nodeverse.ai
- ntu.edu.vn
- outlook.co.nz
- outlook.co.uk
- outlook.com
- outlook.com.tr
- outlook.com.vn
- outlook.de
- outlook.dk
- outlook.es
- outlook.fr
- outlook.it
- outlook.jp
- passinbox.com
- pm.me
- proton.me
- protonmail.ch
- protonmail.com
- relay.firefox.com
- retgames.co.kr
- rocketmail.com
- simplelogin.com
- spkt.edu.vn
- st.utc2.edu.vn
- student.hcmute.edu.vn
- student.hust.edu.vn
- students.hou.edu.vn
- sv.uneti.edu.vn
- tntaec.edu.vn
- tutamail.com
- tuta.com
- tuta.io
- tutanota.com
- ukr.net
- ut.edu.vn
- vp.pl
- vk.com
- web.de
- windowslive.com
- wp.pl
- xdata.edu.vn
- ya.ru
- yahoo.co.id
- yahoo.co.in
- yahoo.co.jp
- yahoo.co.uk
- yahoo.com
- yahoo.com.au
- yahoo.com.br
- yahoo.com.hk
- yahoo.com.ph
- yahoo.com.sg
- yahoo.com.tw
- yahoo.com.vn
- yahoo.de
- yahoo.es
- yahoo.fr
- yahoo.gr
- yahoo.it
- yahoo.ne.jp
- yahoo.yt
- yandex.com
- yandex.ru
- ymail.com
- yopmail.com
- zoho.com
- zohomail.com
Теперь можно регистрировать аккаунты с помощью любых email.
Список запрещенных в Gradient стран (IP)
По состоянию на 19.10.2024:
- Afghanistan
- Antigua And Barbuda
- Belarus
- Central African Republic
- China
- Cuba
- Eritrea
- Iran, Islamic Republic Of
- Iraq
- Lebanon
- Libyan Arab Jamahiriya
- Myanmar
- North Korea
- Somalia
- Sudan
- Syrian Arab Republic