Компания Firedancer представила fd_quic: Высокопроизводительная реализация сетевых протоколов QUIC и Solana Transaction Ingest
Firedancer, независимый клиент валидатора для Solana, созданный компанией Jump, недавно объявил о своем последнем техническом достижении - fd_quic, высокопроизводительной реализации сетевых протоколов QUIC и Solana для ввода транзакций.
- Опубликовано: Nov 20, 2023 at 12:32
Firedancer, независимый клиент валидатора для Solana, созданный компанией Jump, недавно объявил о своей последней технической новинке, fd_quic, высокопроизводительной реализации сетевых протоколов QUIC и Solana для приема транзакций. Этот прорыв сопровождается значительными улучшениями в масштабируемости и надежности, что делает сеть Solana более устойчивой к атакам спама.
Протокол QUIC и Solana
Сеть Solana использует протокол QUIC для различных целей, включая распространение транзакций. Пользовательский сетевой стек Firedancer'разработан с нуля, чтобы использовать масштабирование на стороне приема (RSS), аппаратно ускоренную форму балансировки нагрузки. Это позволяет реализовать параллельную архитектуру "разделяй и не разделяй", в которой каждое ядро процессора управляет частью входящего трафика с минимальными накладными расходами.
RSS обеспечивает более высокую пропускную способность и упрощает реализацию по сравнению с программной балансировкой нагрузки. Она устраняет необходимость в сложных глобальных планировщиках, асинхронных режимах выполнения, блокировках и атомиках. Решение Firedancer'обойти сетевой стек Linux, используя XDP/AF_XDP, последние технологии ядра, еще больше оптимизирует производительность.
Сложность QUIC
QUIC'на 151 странице спецификаций создает значительные сложности. Не найдя существующей библиотеки на языке C, отвечающей требованиям лицензирования, производительности и надежности, компания Firedancer создала свою собственную. Их реализация, fd_quic, может похвастаться оптимизированными структурами данных и алгоритмами, а также (почти) нулевым выделением кучи при обработке трафика, что гарантирует, что валидатор не исчерпает память.
Обзор живой демонстрации
Firedancer отметила свой многомесячный путь по созданию быстрого QUIC живой демонстрацией, демонстрирующей три цели разработки: Совместимость, Производительность и Масштабируемость.
- Совместимость: Инструмент для борьбы со спамом, созданный на основе модулей валидатора Solana Labs, отправил множество транзакций валидатору Firedancer через QUIC, продемонстрировав правильность реализации QUIC.
- Производительность: В одном из тестов были исчерпаны возможности одного ядра процессора, на котором работает fd_quic, используя несколько спамеров. Результат составил 5,8 Гбит/с или 270 тыс. TPS, достигая 1,4 млн TPS при небольших транзакциях. Для достижения такой скорости потребовалось восемь ядер процессора.
- Масштабируемость: Тот же тест производительности был проведен с включенным RSS на сетевом интерфейсе 25 Гбит/с и запуском fd_quic на четырех ядрах ЦП. Это продемонстрировало линейное масштабирование, при котором каждое ядро обрабатывало примерно одинаковую скорость, что позволило увеличить пропускную способность почти в 4 раза.
В ходе теста сервер Firedancer QUIC, работающий всего на четырех ядрах CPU на одном сервере, надежно принимал 21,8 Гбит/с входящих транзакций (около 1,08 млн TPS с размером ~1 кБ txn) от клиентов Solana Labs. Этот тест был ограничен доступным сетевым оборудованием (канал 25 Гбит/с), но Firedancer приглашает пользователей увеличить производительность с помощью доступной документации.
. .Представляем последнюю техническую веху Firedancer’: fd_quic 🔥💃
— Firedancer 🔥💃🏻 (@jump_firedancer) May 4, 2023
Высокопроизводительная реализация сетевых протоколов QUIC и Solana transaction ingest.
1/15 pic.twitter.com/N10k1XQcQ1
Пока продолжается работа над новыми компонентами, блокчейн-сообщество с нетерпением ожидает дальнейшего развития Firedancer'
.