В этом материале
Polymarket открывает тестовую среду Nex

Polymarket открыл тестовую среду для Nex, торговой системы, переписанной на Rust, которая, по словам ее команды разработчиков, может обрабатывать 100 000 команд в секунду, перед условным запуском в середине декабря.

Вице-президент Polymarket по разработке DeFi Джош Стивенс объявил о запуске тестовой среды на X 13 ноября, сообщив, что Nex в течение предыдущей недели работал параллельно с существующей биржей. Она дублирует каждый производственный ордер, позволяя инженерам сравнивать время отклика, стабильность под нагрузкой и точность сопоставления с реальной торговой активностью.

Платформа пока не перешла на Nex. Стивенс сказал, что команда планирует четыре недели работы в режиме «теневого» мониторинга, прежде чем принять решение о развертывании системы в середине декабря.

Polymarket Nex планирует увеличить производительность системы в 10 раз по сравнению с текущим уровнем

Согласно опубликованным Стивенсом данным о производительности, текущий центральный лимитный регистр заказов (CLOB) обрабатывает 10 000 команд в секунду при постоянной нагрузке и 15 000 во время коротких всплесков. Nex поддерживает 100 000 и 150 000 команд в секунду соответственно.

Команды описывают такие действия, как размещение и отмена ордеров; приведенные цифры не отражают количество завершенных сделок в секунду.

По словам Стивенса, при дальнейшей оптимизации система сможет обрабатывать 200 000 команд в секунду, с пиками в 250 000 команд. Более масштабные изменения в базовом коде могут увеличить пропускную способность до 1 миллиона команд в секунду в течение следующего года, хотя, по его словам, такой уровень пока не требуется.

Согласно объявлению, время запуска сократилось с пяти минут до 15 секунд. Стивенс охарактеризовал старый CLOB как имеющий проблемы с гонкой данных и непоследовательное поведение, заявив, что Nex был разработан для получения стабильных результатов и устранения этих проблем.

Команда приступила к переработке системы в августе, придя к выводу, что существующую систему необходимо перестроить с нуля.

Показатели эффективности ордеров измеряют скорость внутреннего обмена

На 99-м процентиле (p99) размещение заказа занимало 3,76 миллисекунды на Nex против 1,55 секунды на существующей системе, что примерно в 412 раз лучше, чем в опубликованном сравнении. Показатель p99 измеряет время, в течение которого завершается 99% измеренных запросов.

Время отмены ордеров сократилось с 627,92 миллисекунд до 3,20 миллисекунд, а время отмены рыночных ордеров — с 810,16 миллисекунд до 5,14 миллисекунд.

«Приведенные ниже цифры отражают время внутреннего обмена данными, а не сквозную производительность», — написал Стивенс, имея в виду производительность от начала до конца. Он добавил, что соответствующие измерения будут опубликованы позже.

Это различие означает, что опубликованные данные не отражают весь путь от отправки трейдером инструкции до получения результата.

На уровне p95 время размещения ордера сократилось с 341,84 миллисекунды до 1,59 миллисекунды. Соответствующие показатели для отмены ордеров составили от 78,22 миллисекунды до 1,58 миллисекунды, а для отмены рыночных ордеров — от 84,89 миллисекунды до 2,27 миллисекунды.

Изменения касаются отмены ордеров и рыночных данных, но они вносятся отдельно

В объявлении описывалось изменение в способе обработки биржей запросов на отмену каждого открытого ордера. В настоящее время CLOB подтверждает запрос перед завершением отмены в фоновом режиме, что обычно занимает еще от 600 миллисекунд до двух секунд.

По словам Стивенса, Nex реагирует только после фактической отмены каждого ордера. Время выполнения запроса p99 составило 3,14 миллисекунды, по сравнению с примерно 0,64–2,04 секундами для полного процесса отмены в существующей системе.

Переписанный на Rust сервис WebSocket, передающий изменения в книге ордеров, цены и исполнения, показал задержку записи p99 в 0,099 миллисекунды против 44,5–88,1 миллисекунд ранее. Стивенс отметил, что задержки в передаче данных могут привести к тому, что трейдеры будут котировать по устаревшим ценам.

Улучшения WebSocket можно внедрять отдельно от обмена данными, поэтому команда может выпустить их до запуска Nex.