Библиотека Solana Web3.js, обладающая богатым функционалом, официально выпустила версию 2.x в ноябре этого года. По сравнению с версией 1.x, новая версия принесла значительные изменения, и в этой статье будет представлен обзор её основных изменений.
Хотя версия 2.x только что вышла и её использование пока не сравнимо с предыдущей версией, понимание этих изменений имеет решающее значение для будущей миграции проектов.
Сравнение версий
Неоспоримо, что использование старой версии было более удобным. Версия 1.x сосредоточена в одном пакете и использует объектно-ориентированный дизайн, который включает множество распространённых операций. Например, класс Connection предоставляет десятки методов, которые охватывают почти все функции, необходимые разработчикам. Однако такой дизайн также приводит к некоторым проблемам, таким как избыточность кода и увеличение времени загрузки.
Версия 2.x приняла модульный дизайн, разделив исходный код на несколько небольших модулей, таких как @solana/accounts, @solana/codecs, @solana/rpc и т.д. В то же время новая версия отказалась от реализации на основе классов и вместо этого приняла единственный функциональный метод, что способствует оптимизации при построении JavaScript-кода. По статистике, приложения, использующие новую версию, в целом могут достичь 30% оптимизации объема, а для приложений, использующих лишь небольшое количество функций, степень оптимизации может быть еще выше.
Новая версия модульного дизайна предъявляет более высокие требования к качеству документации. На данный момент названия каждого модуля имеют хорошую семантику, что в определенной степени снижает сложность миграции для разработчиков.
Стоит отметить, что версия 2.x реализовала нулевую зависимость. Учитывая недавние атаки на поставки в версиях 1.95.5 и 1.95.6, уменьшение внешних зависимостей безусловно усиливает безопасность библиотеки. Команда разработчиков решила больше полагаться на родные функции, отменив введение внешних зависимостей и Polyfills.
Важные изменения
соединение
Версия 2.x использует более функциональный подход для обработки соединений. Новая версия создает отправитель запросов, настраивая адрес RPC-запроса, а затем использует этого отправителя для инициирования различных запросов.
пара ключей
Обработка, связанная с открытым и закрытым ключами, также претерпела значительные изменения. Классы Keypair и PublicKey, часто используемые в версии 1.x, были заменены на ряд функций. Например, теперь можно использовать асинхронную функцию generateKeyPair() для генерации ключевой пары. Это изменение связано с тем, что новая версия больше использует Web Crypto API JavaScript, принимая родную реализацию Ed25519.
Отправить транзакцию
Версия 2.x больше не использует классы Transaction и VersionedTransaction. Методы, связанные с System Program, также необходимо импортировать из других мест. Например, инструкция transfer теперь требует вызова функции getTransferSolInstruction из @solana-program/system.
Новая версия предлагает распространённую в функциональном программировании форму pipe, что делает процесс инициирования и подтверждения транзакций более гибким и настраиваемым.
React поддержка
Стоит отметить, что проект @solana/web3.js теперь включает библиотеку под названием @solana/react, которая предоставляет некоторые хуки React и имеет встроенные функции, такие как signIn.
Резюме
Выпуск версии 2.x @solana/web3.js демонстрирует решимость команды Solana к постоянным инновациям. Новая версия предоставляет разработчикам более эффективный, гибкий и настраиваемый способ взаимодействия с сетью Solana, что, как ожидается, будет способствовать дальнейшему принятию и развитию этой платформы.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
12 Лайков
Награда
12
6
Поделиться
комментарий
0/400
SellTheBounce
· 07-08 14:55
Технологии не так важны, как человечность. Убытки — это судьба.
Посмотреть ОригиналОтветить0
just_another_fish
· 07-07 22:21
Код написан неплохо, войти в позицию и списать домашнее задание
Посмотреть ОригиналОтветить0
AllInDaddy
· 07-06 22:49
Наконец-то вышла новая версия! покупайте падения готовьтесь к скупке!
Посмотреть ОригиналОтветить0
MEV_Whisperer
· 07-06 22:45
Solana действительно классная, скорость просто невероятная.
Выпуск Solana Web3.js 2.x: Модульный дизайн улучшает производительность и безопасность
Solana Web3.js 2.x версия: Эпоха функционального программирования
Библиотека Solana Web3.js, обладающая богатым функционалом, официально выпустила версию 2.x в ноябре этого года. По сравнению с версией 1.x, новая версия принесла значительные изменения, и в этой статье будет представлен обзор её основных изменений.
Хотя версия 2.x только что вышла и её использование пока не сравнимо с предыдущей версией, понимание этих изменений имеет решающее значение для будущей миграции проектов.
Сравнение версий
Неоспоримо, что использование старой версии было более удобным. Версия 1.x сосредоточена в одном пакете и использует объектно-ориентированный дизайн, который включает множество распространённых операций. Например, класс Connection предоставляет десятки методов, которые охватывают почти все функции, необходимые разработчикам. Однако такой дизайн также приводит к некоторым проблемам, таким как избыточность кода и увеличение времени загрузки.
Версия 2.x приняла модульный дизайн, разделив исходный код на несколько небольших модулей, таких как @solana/accounts, @solana/codecs, @solana/rpc и т.д. В то же время новая версия отказалась от реализации на основе классов и вместо этого приняла единственный функциональный метод, что способствует оптимизации при построении JavaScript-кода. По статистике, приложения, использующие новую версию, в целом могут достичь 30% оптимизации объема, а для приложений, использующих лишь небольшое количество функций, степень оптимизации может быть еще выше.
Новая версия модульного дизайна предъявляет более высокие требования к качеству документации. На данный момент названия каждого модуля имеют хорошую семантику, что в определенной степени снижает сложность миграции для разработчиков.
Стоит отметить, что версия 2.x реализовала нулевую зависимость. Учитывая недавние атаки на поставки в версиях 1.95.5 и 1.95.6, уменьшение внешних зависимостей безусловно усиливает безопасность библиотеки. Команда разработчиков решила больше полагаться на родные функции, отменив введение внешних зависимостей и Polyfills.
Важные изменения
соединение
Версия 2.x использует более функциональный подход для обработки соединений. Новая версия создает отправитель запросов, настраивая адрес RPC-запроса, а затем использует этого отправителя для инициирования различных запросов.
пара ключей
Обработка, связанная с открытым и закрытым ключами, также претерпела значительные изменения. Классы Keypair и PublicKey, часто используемые в версии 1.x, были заменены на ряд функций. Например, теперь можно использовать асинхронную функцию generateKeyPair() для генерации ключевой пары. Это изменение связано с тем, что новая версия больше использует Web Crypto API JavaScript, принимая родную реализацию Ed25519.
Отправить транзакцию
Версия 2.x больше не использует классы Transaction и VersionedTransaction. Методы, связанные с System Program, также необходимо импортировать из других мест. Например, инструкция transfer теперь требует вызова функции getTransferSolInstruction из @solana-program/system.
Новая версия предлагает распространённую в функциональном программировании форму pipe, что делает процесс инициирования и подтверждения транзакций более гибким и настраиваемым.
React поддержка
Стоит отметить, что проект @solana/web3.js теперь включает библиотеку под названием @solana/react, которая предоставляет некоторые хуки React и имеет встроенные функции, такие как signIn.
Резюме
Выпуск версии 2.x @solana/web3.js демонстрирует решимость команды Solana к постоянным инновациям. Новая версия предоставляет разработчикам более эффективный, гибкий и настраиваемый способ взаимодействия с сетью Solana, что, как ожидается, будет способствовать дальнейшему принятию и развитию этой платформы.