🌐 Сетевая настройка
Прежде чем ваш сервер сможет получать shreds -- через наш SDK или собственный UDP-слушатель -- необходимо открыть нужный порт и настроить сетевые буферы ОС.
Используете наш SDK? SDK автоматически настраивает буфер приёма сокета. Вам по-прежнему нужно выполнить описанные ниже шаги по настройке firewall и ОС.
🔒 Настройка firewall
Откройте UDP-порт, указанный при настройке на ShredStream.com. Точная команда зависит от вашего дистрибутива Linux.
🔹 UFW (Ubuntu / Debian)
sudo ufw allow 8001/udp
🔹 iptables
sudo iptables -A INPUT -p udp --dport 8001 -j ACCEPT
Чтобы правило сохранилось после перезагрузки, сохраните его с помощью iptables-save или механизма вашего дистрибутива (например, netfilter-persistent).
🔹 firewalld (CentOS / RHEL / Fedora)
sudo firewall-cmd --permanent --add-port=8001/udpsudo firewall-cmd --reload
Если ваш сервер находится за группой безопасности облачного провайдера (AWS, GCP, Azure и др.), вам также необходимо разрешить входящий UDP-трафик на том же порту в консоли облака.
📐 Тюнинг UDP-буферов
Валидаторы Solana производят shreds с очень высокой скоростью. Буфер приёма UDP по умолчанию в Linux обычно составляет 256 КБ, что слишком мало и приведёт к потере пакетов под нагрузкой. Установите буфер приёма минимум на 25 МБ.
⚡ Применить немедленно
# Linuxsudo sysctl -w net.core.rmem_max=26214400sudo sysctl -w net.core.rmem_default=26214400# macOSsudo sysctl -w kern.ipc.maxsockbuf=33554432
💾 Сохранить после перезагрузки
echo 'net.core.rmem_max=26214400' | sudo tee -a /etc/sysctl.confecho 'net.core.rmem_default=26214400' | sudo tee -a /etc/sysctl.conf
Затем проверьте:
sysctl net.core.rmem_max net.core.rmem_default
Оба значения должны быть 26214400.
Пропуск тюнинга буферов -- самая частая причина пропущенных shreds. Если ваш слушатель сообщает о пробелах в данных, в первую очередь проверьте настройки буферов.
✅ Проверка настройки
Когда ваш SDK-слушатель запущен и стрим активен в панели управления ShredStream.com, вы должны увидеть данные в течение нескольких секунд.
Чек-лист, если shreds не поступают:
- Статус в панели управления — убедитесь, что стрим показывает Активна, а IP и порт подключения соответствуют вашему серверу.
- Firewall — проверьте, что UDP-порт открыт. Протестируйте с другой машины:
nc -u <your-ip> 8001. - Публичный IP — убедитесь, что вы указали публичный IPv4-адрес сервера, а не приватный или внутренний.
- Размер буфера — выполните
sysctl net.core.rmem_max, чтобы убедиться, что буфер установлен минимум на 26214400. - Привязка слушателя — убедитесь, что слушатель привязан к
0.0.0.0(все интерфейсы), а не к127.0.0.1(только localhost).
Если всё в порядке, но данные по-прежнему не поступают, см. Устранение неполадок или обратитесь в Discord.