10 часов назад

Ошибка Solana v1 может остановить чтение и отключить лимиты комиссий

Hidden Solana upgrade bug can freeze network readers and silently disable fee limits

CryptoSlate

Формат транзакций Solana v1 увеличивает максимальный размер полезной нагрузки с 1 232 до 4 096 байт. Увеличение составляет примерно 3,3 раза. Устаревшие транзакции и транзакции v0 сохраняют прежние лимиты и поведение. Пользователям и приложениям, продолжающим использовать эти форматы, переходить на новый формат не требуется. На странице обновлений Solana в реальном времени по состоянию на 4 сентября v1 был указан как неактивный в основной сети. В тестовой сети он был активен. В сети для разработчиков он работал в эпохе 1140. В опубликованном 28 августа журнале изменений Solana говорилось, что транзакции v1 скоро появятся. Потребители RPC должны поддерживать этот формат до чтения данных v1. Опция opt-in лишь сообщает RPC-сервису максимальный формат, который клиент может декодировать. Она не запрашивает данные v1 и не меняет способ возврата транзакций устаревшего формата и v0. В v1 лимиты вычислительных единиц, лимиты данных загруженных аккаунтов и приоритетные комиссии переносятся из инструкций в объект. Индексаторы, которые продолжают сканировать инструкции, могут сообщать о нулевом бюджете вычислений для каждой транзакции v1, не выдавая ошибки. Флаг protobuf имеет значение true и для v0, и для v1. Поэтому устаревший потребитель Geyser или gRPC может пометить v1 как v0 и сохранить пустой бюджет. Потребители должны заново сгенерировать заглушки protobuf и проверить поле 7 до чтения флага. Ретрансляторы, пеймастеры и другие серверные подписанты должны обновить проверки политик. Спонсор, сканирующий инструкции в поисках лимита комиссии, может больше не обеспечивать обязательный лимит, поскольку такие инструкции могут присутствовать в v1, но при выполнении не производят действий. Серверы должны распознавать префикс v1 и применять лимиты комиссий и ресурсов в конфигурации транзакции. В статье это характеризуется как сбой контроля приложения, а не дефект консенсуса. В ней говорится, что проблема не свидетельствует об автоматическом риске для средств. Solana заявляет, что ни один текущий системный параметр или системный вызов не раскрывает конфигурацию сообщения v1. Программы, ограничивающие поведение на основе интроспекции инструкций, должны прекратить полагаться на эту проверку после запуска v1. В качестве минимальных выпусков с поддержкой чтения указаны 8.0.0, 3.0.0-rc.3, Rust 4.2.x, Python 0.29.0 и 1.23.0. Ветка web3.js 1.x может читать v1 начиная с 1.99.0-beta.0, но не может создавать, подписывать или отправлять такие транзакции. Пользователям Yellowstone необходимы как минимум 12.6.0, плагин geyser 15.1.1, клиент gRPC 12.0.0 или 6.0.0 — в зависимости от используемого стека. Создание транзакций v1 необязательно. Команды, которые их создают, должны явно задавать лимиты вычислительных единиц и данных загруженных аккаунтов, поскольку оба значения по умолчанию равны нулю. Они должны удалить инструкции, не производящие действий. Им следует прекратить использовать таблицы поиска адресов. Для полезных нагрузок свыше 1 232 байт необходимо использовать base64. Непосредственный крайний срок — тестирование совместимости сервисов, которые могут читать, индексировать или спонсировать транзакцию v1 другого пользователя.

This content is an AI-generated summary/analysis for informational purposes only and does not constitute investment advice.