🧩 Decoded Shred Stream
Decoded Shred Stream доставляет уже восстановленные транзакции Solana: дешрединг и сборка выполняются на наших узлах, после чего транзакции отправляются на ваш сервер в стандартном wire-формате Solana. Никакого конвейера FEC/Merkle/дешрединга на вашей стороне — транзакции приходят готовыми для вашего парсера, с субмиллисекундной задержкой.
🧭 Кому это подходит
Выбирайте Decoded Shred Stream, если:
- У вас уже есть парсер транзакций. Полезная нагрузка — стандартная транзакция в wire-формате (сериализованный через bincode
VersionedTransaction). - Вам нужен приём данных в стандартном формате без шред-инфраструктуры. Восстановление по кодам стирания (FEC), проверка Merkle и дешрединг выполняются на узле за вас — не остаётся ничего специфичного для шредов, что нужно было бы разрабатывать или поддерживать.
- Вам нужны данные до подтверждения блока с минимальными усилиями по интеграции. Транзакции восстанавливаются из шредов до подтверждения блока, так что вы сохраняете временное преимущество шред-потока при малой доле инженерных затрат.
⚖️ Позиционирование: сырые шреды vs декодированные транзакции
ShredStream.com предлагает два продукта вдоль одной оси — сколько декодирования выполняется за вас:
| Продукт | Вы получаете | Вы разрабатываете | Доставка |
|---|---|---|---|
| Raw Shred Stream | Сырые шреды Turbine | Дешрединг + парсинг + интерпретация | UDP |
| Decoded Shred Stream | Транзакции в wire-формате | Парсинг + интерпретация | UDP или gRPC |
- Выбирайте Raw Shred Stream ради побайтового контроля над всем, включая реконструкцию.
- Выбирайте Decoded Shred Stream, чтобы пропустить реконструкцию, но оставить собственный парсинг транзакций.
🚀 Задержка
Дешрединг происходит на узле, напрямую из шредов — а не в нижестоящем сервисе. Восстановленная транзакция покидает узел в пределах микросекунд от самого сырого шред-потока. Вы практически ничего не теряете в задержке и получаете стандартную, готовую для парсера полезную нагрузку.
📡 Режимы доставки
- UDP — транзакции отправляются в виде датаграмм на настроенные вами IP и порт, каждая с компактным бинарным заголовком (16 байт) и 8-байтовым слотом — транзакция начинается с байта 24. См. Приём декодированных транзакций.
- gRPC — исходящий, ориентированный на соединение стрим с фильтрацией по аккаунтам на стороне сервера и упорядоченной доставкой поверх тех же транзакций с субмиллисекундной задержкой. См. Доставка по gRPC.
🧰 Официальные клиенты
Один пакет на язык, покрывающий оба режима доставки с одним и тем же API — привяжите порт (UDP) или подключитесь с вашим эндпоинтом и токеном (gRPC), затем итерируйте транзакции вместе с их слотом и подписями. Переподключение, повторная отправка фильтров и обнаружение пропусков seq выполняются за вас.
| Язык | Установка | Пакет |
|---|---|---|
| JavaScript / TypeScript | npm install decoded-shredstream | npm |
| Python | pip install decoded-shredstream | PyPI |
| Rust | cargo add decoded-shredstream | crates.io |
| Go | go get github.com/shredstream/decoded-shredstream-go | GitHub |
До исполнения. Эти транзакции захватываются из шредов до исполнения блока: они не несут ни статуса, ни логов, ни изменений балансов, ни внутренних инструкций, и часть из них завершится ошибкой on-chain. Когда вам нужно подтверждение, используйте источник данных после исполнения.
📖 В этом разделе
- Приём декодированных транзакций — UDP-конверт, смещения, обнаружение пропусков и минимальный декодер.
- Доставка по gRPC — эндпоинт, токен в метаданных, фильтры по аккаунтам и десериализация
VersionedTransaction.