🛠️ Создание приёмника
Raw Shred Stream доставляет сырые шреды Solana по UDP прямо на ваш сервер — в ваш собственный приёмник. В этом суть продукта: вы работаете максимально близко к проводу и полностью контролируете, как данные принимаются, собираются и декодируются. Одно правило: дешреддер/декодер должен быть оптимизированным, иначе преимущество по задержке теряется на вашей стороне. Эта страница объясняет, что должен делать ваш приёмник и когда лучше подойдёт Decoded Shred Stream.
Вкратце — сырым шредам нужен быстрый, оптимизированный дешреддер/декодер, чтобы сохранить преимущество по задержке. Если вы предпочитаете вообще не запускать декодер, Decoded Shred Stream доставляет транзакции уже собранными. Нужно решение, работающее уже сегодня? Прежний клиент shredstream берёт дешрединг на стороне клиента на себя, но по задержке уже не является рекомендуемым решением — см. Быстрый старт (сырые шреды).
🧩 Что нужно построить самому
Приняв сырые шреды, весь конвейер вы реализуете сами:
| Этап | Что делаете вы |
|---|---|
| UDP-сокет + буферы ОС | Открываете и биндите сокет, тюните rmem_max/maxsockbuf, отслеживаете drops |
| Дешрединг | Парсите бинарный формат shred Solana в типизированные структуры |
| Реассемблинг / FEC | Переупорядочиваете шреды по индексу, восстанавливаете (FEC/Merkle) и собираете slot'ы |
| Декодирование транзакций | Декодируете транзакции Solana из собранных полезных нагрузок |
| Корректный shutdown | Дрейните сокеты и флашите буферы |
Это работа максимально близко к проводу: вы полностью контролируете конвейер, но и вся инфраструктура дешрединга, реассемблинга и декодирования — на вас.
⚡ Полностью без декодера: Decoded Shred Stream
Если вы предпочитаете не запускать конвейер, ShredStream.com предлагает Decoded Shred Stream: транзакции уже прошли дешрединг и сборку на наших узлах и доставляются в стандартном wire-формате — по UDP или gRPC:
- Decoded Shred Stream — полностью собранные транзакции Solana в стандартном wire-формате, приём клиентом
decoded-shredstream(npm / PyPI / crates.io) или Go-модулемgithub.com/shredstream/decoded-shredstream-go— для JavaScript, Python, Rust и Go.
Задержка субмиллисекундная, практически идентичная потоку сырых шредов — без работы по дешредингу и реассемблингу на вашей стороне.
🎯 Что выбрать
Стройте собственный приёмник сырых шредов, если вы:
- Хотите работать максимально близко к проводу и полностью контролировать конвейер.
- Уже поддерживаете приёмник shred Solana с собственным дешредингом и декодированием.
- Хотите сохранить минималистичный и самодостаточный стек.
Выберите Decoded Shred Stream, если вы:
- Не хотите вообще запускать и поддерживать дешреддер/декодер.
- Хотите транзакции уже собранными в стандартном wire-формате — прямо в ваш существующий парсер.
➡️ Следующие шаги
- Быстрый старт (сырые шреды) — забиндите UDP-сокет и примите первую датаграмму сырого шреда.
- Настройка сети — firewall и тюнинг ОС.
- Лучшие практики — мониторинг, избыточность, производительность.