Solana Web3.js 2.x версия: новая эра функционального программирования
Библиотека Solana Web3.js выпустила версию 2.x в ноябре этого года, которая принесла значительные изменения по сравнению с версией 1.x. В этой статье будут изложены основные изменения, чтобы подготовить разработчиков к будущей миграции.
Сравнение версий
Хотя версия 1.x проста в использовании, она имеет некоторые проблемы. Она объединяет все функции в одном пакете, что приводит к тому, что даже если разработчик использует лишь небольшое количество функций, ему необходимо загрузить всю библиотеку. Это не только увеличивает время загрузки, но и может повлиять на пользовательский опыт.
Версия 2.x использует модульный дизайн, разбивая исходный код на несколько небольших модулей, таких как @solana/accounts, @solana/codecs и т. д. В то же время, новая версия отказалась от реализации на основе классов и перешла на использование отдельных функций. Этот дизайн способствует оптимизации кода JavaScript во время сборки, неиспользуемый код будет удален и не будет загружен на устройства пользователей. По официальным данным, использование новой версии DApp обычно позволяет достичь оптимизации объема кода на 30%, а в некоторых случаях даже больше.
Однако новая версия модульного дизайна также предъявляет более высокие требования к документации команды Solana. Как помочь разработчикам быстро находить необходимые функции становится ключевым вопросом. В настоящее время наименование модулей обладает хорошей семантикой, что в определенной степени снижает сложность миграции для разработчиков.
Стоит отметить, что версия 2.x реализовала нулевую зависимость. Учитывая недавние атаки на цепочку поставок в версиях 1.95.5 и 1.95.6, снижение внешних зависимостей безусловно повышает безопасность библиотеки.
Важные изменения
подключение
Версия 2.x использует более функциональный подход для обработки соединений. Новый вариант создает отправитель запросов через настройку адреса RPC-запроса, а затем использует этого отправителя для отправки различных запросов.
ключевая пара
Обработка, связанная с открытыми и закрытыми ключами, также претерпела значительные изменения. Классы Keypair и PublicKey, часто используемые в версиях 1.x, были заменены рядом функций. Например, теперь можно использовать await generateKeyPair() для генерации ключевой пары, вместо предыдущего Keypair.generate(). Новый метод возвращает Promise, так как он использует Web Crypto API JavaScript и использует родную реализацию Ed25519.
Отправить транзакцию
В версии 2.x классы Transaction и VersionedTransaction больше не используются. Методы, связанные с System Program, также были удалены и должны быть импортированы из других мест. Например, для инструкции transfer теперь необходимо вызвать функцию getTransferSolInstruction из @solana-program/system.
Новая версия предлагает распространенную в функциональном программировании форму pipe. Например, можно реализовать функцию перевода, которая была в версии 1.x, с помощью функции pipe. Стоит отметить, что новый способ больше зависит от WSS, что ставит более высокие требования к стабильности услуг поставщиков RPC.
Поддержка React
В проекте @solana/web3.js также содержится библиотека @solana/react, которая предлагает несколько React Hook и включает такие функции, как signIn.
Итог
Выпуск версии 2.x библиотеки Solana Web3.js демонстрирует решимость команды Solana к постоянному улучшению. Новая версия предоставляет разработчикам более эффективный, гибкий и настраиваемый способ взаимодействия с сетью Solana, что, как ожидается, будет способствовать дальнейшему развитию и применению платформы.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
8 Лайков
Награда
8
5
Поделиться
комментарий
0/400
TommyTeacher
· 17ч назад
2.0 вышло! После работы мчимся!
Посмотреть ОригиналОтветить0
AlphaBrain
· 23ч назад
Это действительно вкусно, снова нужно перестраивать.
Существенное обновление Solana Web3.js 2.x: модульный дизайн повышает производительность и безопасность
Solana Web3.js 2.x версия: новая эра функционального программирования
Библиотека Solana Web3.js выпустила версию 2.x в ноябре этого года, которая принесла значительные изменения по сравнению с версией 1.x. В этой статье будут изложены основные изменения, чтобы подготовить разработчиков к будущей миграции.
Сравнение версий
Хотя версия 1.x проста в использовании, она имеет некоторые проблемы. Она объединяет все функции в одном пакете, что приводит к тому, что даже если разработчик использует лишь небольшое количество функций, ему необходимо загрузить всю библиотеку. Это не только увеличивает время загрузки, но и может повлиять на пользовательский опыт.
Версия 2.x использует модульный дизайн, разбивая исходный код на несколько небольших модулей, таких как @solana/accounts, @solana/codecs и т. д. В то же время, новая версия отказалась от реализации на основе классов и перешла на использование отдельных функций. Этот дизайн способствует оптимизации кода JavaScript во время сборки, неиспользуемый код будет удален и не будет загружен на устройства пользователей. По официальным данным, использование новой версии DApp обычно позволяет достичь оптимизации объема кода на 30%, а в некоторых случаях даже больше.
Однако новая версия модульного дизайна также предъявляет более высокие требования к документации команды Solana. Как помочь разработчикам быстро находить необходимые функции становится ключевым вопросом. В настоящее время наименование модулей обладает хорошей семантикой, что в определенной степени снижает сложность миграции для разработчиков.
Стоит отметить, что версия 2.x реализовала нулевую зависимость. Учитывая недавние атаки на цепочку поставок в версиях 1.95.5 и 1.95.6, снижение внешних зависимостей безусловно повышает безопасность библиотеки.
Важные изменения
подключение
Версия 2.x использует более функциональный подход для обработки соединений. Новый вариант создает отправитель запросов через настройку адреса RPC-запроса, а затем использует этого отправителя для отправки различных запросов.
ключевая пара
Обработка, связанная с открытыми и закрытыми ключами, также претерпела значительные изменения. Классы Keypair и PublicKey, часто используемые в версиях 1.x, были заменены рядом функций. Например, теперь можно использовать await generateKeyPair() для генерации ключевой пары, вместо предыдущего Keypair.generate(). Новый метод возвращает Promise, так как он использует Web Crypto API JavaScript и использует родную реализацию Ed25519.
Отправить транзакцию
В версии 2.x классы Transaction и VersionedTransaction больше не используются. Методы, связанные с System Program, также были удалены и должны быть импортированы из других мест. Например, для инструкции transfer теперь необходимо вызвать функцию getTransferSolInstruction из @solana-program/system.
Новая версия предлагает распространенную в функциональном программировании форму pipe. Например, можно реализовать функцию перевода, которая была в версии 1.x, с помощью функции pipe. Стоит отметить, что новый способ больше зависит от WSS, что ставит более высокие требования к стабильности услуг поставщиков RPC.
Поддержка React
В проекте @solana/web3.js также содержится библиотека @solana/react, которая предлагает несколько React Hook и включает такие функции, как signIn.
Итог
Выпуск версии 2.x библиотеки Solana Web3.js демонстрирует решимость команды Solana к постоянному улучшению. Новая версия предоставляет разработчикам более эффективный, гибкий и настраиваемый способ взаимодействия с сетью Solana, что, как ожидается, будет способствовать дальнейшему развитию и применению платформы.