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