
Переход на Agave 2.0: руководство для разработчиков
Введение
Выход Agave v2.0 в Solana Mainnet-Beta запланирован на первые недели после Solana Breakpoint 2024 Singapore. Это крупное обновление содержит несколько несовместимых изменений, удаляет некоторые конечные точки API и переименовывает крейты. Обо всех этих изменениях должны знать разработчики Solana. Помимо этой статьи, мы рекомендуем разработчикам ознакомиться с недавно опубликованным руководством по переходу от Anza на GitHub.
Agave v2.0 уже работает в кластерах Solana Testnet и Devnet. Этот выпуск знаменует важный этап в развитии экосистемы Solana и переходе к сети с несколькими клиентами. Ожидается, что перед запуском команда Anza опубликует подробный разбор Agave 2.0. Эта статья посвящена только практическим аспектам подготовки к переходу.
Удаленные конечные точки RPC и вызовы SDK
Несколько устаревших конечных точек RPC из Agave v1 будут удалены.
А именно:
getRecentBlockhashgetConfirmedSignatureForAddresses2getConfirmedTransactiongetConfirmedBlockgetStakeActivationgetFeesconfirmTransactiongetSignatureStatusgetSignatureConfirmationgetTotalSupplygetConfirmedSignaturesForAddressgetConfirmedBlocksgetConfirmedBlocksWithLimitgetFeeCalculatorForBlockhashgetFeeRateGovernorgetSnapshotSlot
Согласно внутреннему анализу Helius, большинство наших клиентов не столкнутся с последствиями этих изменений. Однако небольшая группа клиентов по-прежнему активно использует следующие конечные точки:
getRecentBlockhashgetConfirmedSignatureForAddresses2getConfirmedTransactiongetConfirmedBlockgetStakeActivationgetFees
Мы настоятельно рекомендуем всем разработчикам проверить код на наличие этих вызовов и заменить их предлагаемыми альтернативами до выпуска клиента 2.0 для Mainnet-Beta.
Альтернативный подход для getAccountInfo, показанный на изображении, описан здесь.
К несовместимым изменениям SDK относятся:
- Поддержка Borsh v0.9 удалена. Используйте v1 или v0.10 (#1440)
- Для Rent и EpochSchedule трейт Copy больше не выводится автоматически; используйте clone()
- solana-sdk: устаревшие символы) удалены
- solana-program: устаревшие символы удалены
Полный список несовместимых изменений приведен в журнале изменений Agave.
Переименованные крейты
Несколько крейтов переименуют в рамках подготовки к появлению нескольких клиентов валидатора Solana, таких как Firedancer, которыми будут управлять разные команды. Добавление «Agave» к названиям этих крейтов указывает, что их как зависимости для клиента валидатора Agave поддерживает именно Anza. Это изменение позволяет четче отличать зависимости Agave от зависимостей, которыми управляют другие команды.
Изменение затронет следующие крейты:
solana-validatorsolana-ledger-toolsolana-watchtowersolana-installsolana-geyser-plugin-interfacesolana-cargo-registry
Разработчикам следует проверить автоматизации и скрипты на наличие ссылок на эти крейты и соответствующим образом обновить их.
Удаленные аргументы валидатора
После выпуска Agave v2.0 для операторов валидаторов будут удалены следующие устаревшие аргументы валидатора:
--enable-rpc-obsolete_v1_7(#1886)--accounts-db-caching-enabled(#2063)--accounts-db-index-hashing(#2063)--no-accounts-db-index-hashing(#2063)--incremental-snapshots(#2148)--halt-on-known-validators-accounts-hash-mismatch(#2157)
Еще раз рекомендуем операторам валидаторов тщательно проверить, что эти аргументы больше не используются.
И наконец, исходный репозиторий Solana Labs на GitHub будет архивирован после выпуска Agave v2.0. Разработчикам следует перенести всю работу в репозиторий Anza Agave на GitHub.
В заключение приведем слова участника команды Solana DevRel Nick Frostbutter из недавнего видео о журнале изменений: «Если у чего-либо из того, что вы используете, есть предупреждение об устаревании, обязательно обновите свой код».
На этом наше короткое общественно полезное объявление завершено. Надеемся увидеть многих из вас на Breakpoint!
Похожие статьи
Подпишитесь на Helius
Следите за новостями разработки на Solana и получайте уведомления о наших публикациях


