❗ Running & Debug

Подготовка среды

Система поддерживает Windows, macOS и Linux, но для постоянной работы лучше использовать Linux-сервер — он стабильнее, потребляет меньше ресурсов и даёт лучшую производительность в Node.js.

Приложение написано на Node.js и работает в одном потоке, поэтому каждое запущенное приложение использует только одно ядро CPU. Отсюда простое правило: 1 инстанс = 1 CPU. Добавлять ядра имеет смысл только если вы хотите запускать несколько экземпляров системы одновременно.

Минимальные требования: 1 CPU, 2 GB RAM. Этого достаточно — система не ресурсоёмкая и в среднем использует 10–20% одного ядра. Главное — высокая частота CPU, так как Node.js сильно зависит от скорости одного потока.

Куда важнее расположение сервера. Чем ближе он к валидаторам Solana, тем меньше сетевые задержки и выше шанс попасть в блок. Лучше размещать сервера в тех регионах и на тех провайдерах, где работают основные валидаторы Solana (например, TerraSwitcharrow-up-right или CherryServersarrow-up-right).

Посмотреть, где располагаются валидаторы (в каких регионах и на каких серверах) можно тут

Подготовка системы

1. Настройте пресет

Создайте resources/presets/<имя>.toml с нужными параметрами. Обязательно укажите:

  • PAYER_PRIVATE_KEY — приватный ключ кошелька, с которого будут выполняться все транзакции;

  • DEFAULT_RPC.URLнадёжный endpoint. Скорость не важна.

  • GRPC.URL — быстрый endpoint для мониторинга событий в сети; критически важен для стратегии BACKRUN

  • TRANSACTION_PROCESSOR.[имя].API_KEYS — API-ключи для каждого активного процессора (опционально);

Ниже личные рекомендации RPC / gRPC провайдеров, услугами которых можно воспользоваться.

Так же предварительно настройте Pool Filters, по которым система будет подгружать пулы и между которыми будет происходить арбитраж. Протестировать до запуска, какие пулы приходят по указанным фильтрам, можно через CLI утилиту "Fetch Pools"

Полный список всех конфигураций:

Preset Configurationchevron-right

2. Создайте Durable Nonces (обязательно для Backrun)

Durable Noncearrow-up-right — обязательны для стратегии Backrun, позволяют синхронизировать транзакции. Рекомендуется создать 100 аккаунтов. Создание 100 аккаунтов стоит ~0.145 SOL, эти средства выделяются на рент аккаунтов и их можно полностью вернуть при закрытии этих аккаунтов. Создать / Закрыть можно через CLI утилиту "Manage Nonce"

Подробнее, зачем это:

Backrun Strategychevron-right

3. Пополните кошелек и конвертируйте SOL в wSOL

Для того, чтобы система корректно функционировала, ОБЯЗАТЕЛЬНО нужно заранее создать wSOL аккаунт и пополнить его. Система НЕ создает этот аккаунт автоматически. Конвертировать SOL можно через CLI утилиту "Wrap Sol".

Так же позаботьтесь о том, что у вас есть баланс SOL на кошельке. С него будут оплачиваться:

  • transaction fee за неуспешные транзакции

  • плата за создание / расширение LUT таблиц (можно потом полностью вернуть)

  • tips JITO и другим процессорам

  • комиссия lending протоколам за Flash Loan

circle-info

Рекомендуется иметь около 0.3 SOL и 0.1 WSOL на кошельке для корректной работы.

Благодаря функции Flash Loan больше и не требуется, так как ликвидность для выполнения арбитража мы можем брать в безопасный займ.

4. Укажите свои LUT (опционально)

В system.toml в разделе TABLE_LOOKUP_STORAGE вы можете указать свои кастомные таблицы. Они будут использоваться системой для всех арбитражных транзакций заранее.

Table Lookup Managementchevron-right

Запуск системы

На старте работы системы важно быть осторожным, особенно если вы запускаете её впервые. Следуйте этим рекомендациям, чтобы минимизировать риски и непредсказуемые расходы:

1. Не выставляйте высокий Priority Fee

Priority fee настраивается в пресете через блок TRANSACTION.COMPUTE_UNIT_PRICE

Если включена стратегия Transaction Spam с большим TPS, система начнёт отправлять большое количество транзакций в блокчейн. Каждая транзакция, даже если она не успешна, списывает комиссию за включение валидатором. Поэтому на старте установите минимальный Priority Fee (например, 100 µLAM/CU) и небольшое количество транзакций в секунду, чтобы безопасно протестировать работу системы и предсказуемость расходов.

2. Проверьте фильтры пулов (Pool Filters)

Если фильтры не настроены, система загрузит все доступные пулы (может быть до 1000+), что приведёт к массовому созданию таблиц через Table Lookup Manager (если он включен). Для каждого нового пула будут автоматически расширяться таблицы. Хотя плату за создание и расширение таблиц можно вернуть, на старте лучше протестировать, какие пулы придут, чтобы избежать неожиданного поведения.

3. Следите за логами

При запуске бота создаётся папка logs, в которой формируется файл с текущим запуском. Все непредсказуемые события, ошибки и предупреждения логируются туда. Регулярно проверяйте этот файл, чтобы вовремя выявлять проблемы и понимать, как работает система.

Last updated