Резервы: обычные, связанные и из файлов
Резерв показывает, сколько средств обменник готов выдать клиенту. Если резерв меньше суммы заявки или настроен неправильно, направление может скрыться, форма может не дать создать заявку, а оператор получит спорную ситуацию.
Какие виды резервов есть
Обычный резерв валюты
Сумма хранится у конкретной валюты
Основной вариант для большинства обменников
Фиксированный резерв
Сумма задается вручную и не должна автоматически меняться
Когда владелец хочет держать публичный лимит руками
Связанный резерв
Резерв одной валюты привязан к другому резерву
Когда несколько валют используют один общий остаток
Резерв из файла
Сумма приходит из удаленного txt-файла через ключ
Когда внешний сервис публикует остатки
Резерв направления
Дополнительная логика в настройке направления
Когда нужно ограничить конкретную пару
Обычные резервы и резервы из файлов — разные вещи. Файл не заменяет весь раздел резервов. Файл дает ключ и сумму, а обычный резерв валюты должен быть явно привязан к этому ключу.
Список резервов
Валюта
К какой валюте относится резерв
Правильный код, сеть и платежная система
Сумма
Текущий доступный остаток
Соответствует ли реальным средствам
Быстрое изменение суммы
Позволяет обновить резерв прямо из списка
После правки проверить журнал
Дерево связанных резервов
Показывает, какие резервы прикреплены к корню
Нет ли случайной привязки
Сортировка
Меняет порядок корневых резервов
Удобно для операторов
Настройки
Точность отображения и включение файловых резервов
Нужно для файлового режима
Создание и обновление обычного резерва
Валюта
Выбор активной валюты
Выбирайте точную сеть, например USDT TRC20
Сумма
Добавляемая или задаваемая сумма
Указывайте фактический доступный остаток
Комментарий
Причина ручного изменения
Пишите коротко: "пополнение", "коррекция", "вывод"
Если резерв по активной валюте отсутствует, система может создать его автоматически с нулевой суммой. Это удобно, но нулевой резерв не означает, что валюта готова к работе.
Редактирование резерва
Сумма
Ручное значение резерва
Не завышайте без реальных средств
Фиксированный резерв
Оставляет резерв под ручным контролем
Может мешать автоматическому изменению
Комментарий
Попадает в историю изменения
Помогает расследовать спор
Резерв из файла
Привязывает обычный резерв к файловому ключу
Доступно только если включены резервы из файла
Связанный резерв
Делает текущий резерв дочерним от другого
Нельзя привязывать резерв к самому себе
Как работает связанный резерв
Связанный резерв нужен, если несколько валют используют один общий остаток. Например, у обменника один общий крипто-баланс, но на сайте есть несколько способов вывода. В этом случае один резерв может быть корневым, а другие привязаны к нему как дочерние.
Перед привязкой проверьте:
Какая валюта должна быть главной.
Какие направления используют каждую валюту.
Не получится ли двойной учет одного и того же остатка.
Как будет выглядеть резерв на сайте.
История резервов
Журнал резерва показывает ручные изменения суммы.
Было
Сумма до изменения
Стало
Сумма после изменения
Тип
Пополнение или уменьшение
Менеджер
Кто изменил резерв
Дата
Когда произошло изменение
Комментарий
Причина, если ее указали
Если резерв неожиданно изменился, сначала откройте историю. Если изменения в истории нет, проверьте файловый резерв, связанный резерв и автоматические списания по заявкам.
Настройки резервов
Количество знаков резерва
Сколько знаков после запятой показывать
Для crypto можно больше, для фиата меньше
Резервы из файла
Включает возможность привязать резерв к файловым ключам
Включайте только если настроен источник и cron
Резервы из файлов
Резервы из файлов нужны, когда внешний источник публикует остатки в простом txt-файле. Система читает файл, находит строки формата ключ : сумма, создает или обновляет файловые ключи, а затем обновляет обычные резервы, которые к этим ключам привязаны.
Формат файла
Правила:
Одна строка — один резерв
Название : сумма
Название может быть любым
Reserve, ReserveBitcoin, Everyone — это примеры, не обязательные имена
Разделитель
Используется двоеточие :
Пустые строки можно пропускать
Они не создают резерв
Комментарии можно писать через #, ;, //
Такие строки игнорируются
Сумма должна быть числом
Неверная сумма попадет в ошибку
Максимальный размер файла
До 10 МБ
Источники файлов
Название источника
Понятное имя файла/поставщика
Main reserve file
Ссылка
HTTP/HTTPS ссылка на txt-файл
https://example.com/reserve.txt
Статус
Включен ли источник
Включайте после проверки preview
Последняя проверка
Когда источник проверялся
Если давно, проверить cron
Последний успех
Когда файл успешно прочитался
Важнее, чем просто дата проверки
Ошибка
Почему файл не прочитался
Неверный URL, недоступен файл, пустой файл
Размер и тип файла
Информация о последнем ответе
Помогает понять, что сервер отдает не txt
Количество ключей
Сколько строк найдено
Если 0, формат файла неправильный
Файловые ключи
Источник
К какому txt-файлу относится ключ
Один и тот же ключ в разных источниках считается отдельно
Название
Человекочитаемое имя ключа
Должно совпадать со строкой файла или быть понятным
Key
Нормализованный ключ
Используется системой для сравнения
Amount
Сумма из файла
Следующая синхронизация может перезаписать ручную правку
Статус
Активен ли ключ
Неактивный ключ не обновляет привязанные резервы
Количество знаков
Точность суммы
До 18 знаков
Last seen
Когда ключ был найден в файле
Если давно, строка исчезла из файла
Last error
Ошибка по ключу
Например ключ больше не найден
Привязанные резервы
Сколько обычных резервов используют ключ
Если больше 0, удалить ключ нельзя
Preview при создании ключа
Когда администратор выбирает источник и вводит название ключа, система может проверить файл без сохранения. Preview показывает:
Файл открыт
Удаленный файл доступен
Резерв найден
Ключ найден в файле
Нормализованный ключ
Как система будет сравнивать строку
Сумма
Значение, которое будет записано
Строка
Номер строки в файле
Raw value
Исходное значение из файла
Если preview не находит ключ, не сохраняйте привязку вслепую. Сначала исправьте название или файл.
Как подключить резерв из файла
Откройте "Резервы".
Нажмите настройки и включите "Резервы из файла".
Откройте "Резервы из файлов".
Создайте источник: название и ссылку на txt-файл.
Нажмите синхронизацию источника или дождитесь cron.
Проверьте, что файловые ключи появились.
Откройте обычный резерв валюты.
В поле "Резерв из файла" выберите нужный ключ.
Сохраните.
Проверьте, что сумма обычного резерва стала равна сумме ключа.
Проверьте направление на сайте.
CRON для файловых резервов
Автообновление файловых резервов выполняется через фоновые задачи. На сервере должен работать Laravel scheduler.
Команда cron для FastPanel:
Важно:
Между /opt/php84/bin/php и путем к проекту должен быть пробел
Без пробела команда не запустится
Путь должен быть полным и точным
Используйте путь проекта как в FastPanel
Нужен PHP 8.4 FastPanel
Не используйте /usr/bin/php, если проект настроен на /opt/php84/bin/php
Scheduler должен запускаться каждую минуту
Иначе reserve:update не будет регулярно выполняться
Почему резерв не обновился из файла
Выключены резервы из файла
Настройки резервов
Источник выключен
Статус источника
URL недоступен
Открыть ссылку, проверить SSL, firewall, HTTP-код
Файл слишком большой
Лимит 10 МБ
В файле нет корректных строк
Формат ключ : сумма
Ключ не найден
Название ключа и preview
Ключ выключен
Статус файлового ключа
Обычный резерв не привязан
Поле "Резерв из файла" в резерве валюты
Cron не работает
Проверить schedule:run, PHP 8.4, логи
Очередь/фоновые процессы стоят
Проверить серверные процессы
Как резерв влияет на направления
Резерв валюты "Получаю" маленький
Клиент не сможет создать заявку больше резерва
В направлении включено скрытие при малом резерве
Пара может пропасть из сайта или XML
Максимальный отображаемый резерв меньше фактического
Клиент видит меньший остаток
Резерв связан с другим
Доступность зависит от общего остатка
Резерв из файла устарел
Сайт может показывать старый лимит
Практические примеры
Небольшой стартовый обменник
Резерв USDT TRC20
Реальный остаток, например 1000-3000 USDT
Max заявки
Ниже резерва, например 200-500 USDT
Отображаемый резерв
Можно показать меньше фактического
Файл резервов
Не нужен, если остатки ведутся вручную
Обменник с внешним учетом остатков
Источник файла
Один источник на поставщика остатков
Ключи
Понятные имена: USDTTRC20, BTC, RUBCARD
Обычные резервы
Привязать каждую валюту к своему ключу
Cron
Обязательно каждую минуту через PHP 8.4
Диагностика
Смотреть last_success_at, last_error, last_seen_at
Важные предупреждения
Не ставьте резерв выше фактической суммы. Резерв напрямую влияет на то, сможет ли клиент создать заявку.
Не удаляйте файловый источник или ключ, если к нему привязаны обычные резервы. Сначала отвяжите резервы или переведите их на ручной режим.
Не путайте резерв валюты и резерв направления. Если валюта имеет резерв, но направление все равно скрыто, проверьте лимиты и настройки направления.
Связанные разделы
Валюты, Полный порядок настроек валют, Направления обмена, Комиссии направления, CRON и процессы, Техническая настройка сервера.
Последнее обновление
Это было полезно?