Техническое задание: RPC Proxy для Solana
Необходимо создать высокопроизводительный прокси-сервер. Этот сервер будет выступать в роли прослойки между клиентами (хешами) и нодами сети Solana.
Основные функции
- Распределение (балансировка) RPC-запросов между несколькими нодами для оптимальной нагрузки.
- Мониторинг работоспособности нод и их выключение из ротации при недоступности.
- Логирование всех входящих запросов (метод, параметры, время отклика, статус).
Система контроля нагрузки
Ключевое требование - реализация механизма АПИ-ключей (API keys). Прокси должен проверять каждый запрос на валидность и активность ключа клиента.
- Лимиты запросов: Установка суточных и секундных лимитов для каждого ключа. При превышении лимита возвращать ошибку 429 (Too Many Requests).
- Скорость доступа: Реализовать очередь (rate limiter) для сглаживания пиковых нагрузок.
Технические детали
Базовая производительность
- Общий предел: не менее 1,5 миллиона запросов в сутки на весь прокси.
- Персональный пре для одного ключа: до 1,5 миллиона запросов в сутки и до 100 запросов в секунду.
Технологии
- Выбор стека остается за исполнителем, приветствуются высоконагруженные решения (например на Go, Rust или Node.js с асинхронностью).
- База данных: предоставляется удобное REST API для быстрой интеграции логгера с внешними сервисами (например, Prometheus/Grafana).
- Конфигурация: вся логика опроса нод (интервалы, эндпоинты) должна задаваться через YAML/JSON-файл начальной настройки.
Клиентская часть
В КГ задании уточнена необходимость написания прямого UPD-запроса от веса продублированных ИТ-протоколов - просьба предоставить черновик на логическом старте встречи