Solana Web3.js 2.x: модульная реконструкция и повышение производительности

Solana Web3.js 2.x версия: разделение функций и оптимизация производительности

Библиотека Solana Web3.js, являющаяся функционально насыщенной библиотекой JavaScript, официально выпустила версию 2.x в ноябре этого года. По сравнению с версией 1.x, новая версия претерпела значительные изменения в структуре и способе реализации. В данной статье будут обобщены эти основные изменения, чтобы помочь разработчикам подготовиться к будущей миграции.

Серия для новичков в Web3: теперь обновите @solana/web3.js 2.x для включения функционального программирования

Сравнение версий

Основные характеристики версии 1.x - это простота и удобство использования. Она содержит только один пакет @solana/web3.js и использует объектно-ориентированный дизайн, который инкапсулирует множество часто используемых операций. Например, класс Connection предоставляет десятки методов, которые практически охватывают все функции, необходимые разработчикам. Однако такой дизайн также приводит к некоторым проблемам, таким как большой объем библиотеки кода, и пользователям нужно загружать большое количество кода, который может им не понадобиться.

Версия 2.x приняла другую стратегию. Команда разработчиков разделила кодовую базу на несколько небольших модулей, таких как @solana/accounts, @solana/codecs, @solana/rpc и т. д. В новой версии отказались от реализации на основе классов и перешли к использованию отдельных функций, что способствует оптимизации при сборке JavaScript-кода. Неиспользуемый код будет удален и не будет загружаться на устройства пользователей. По официальным данным, использование новой версии DApp обычно позволяет достичь оптимизации объема на 30%, а если используются только несколько функций, оптимизация может быть еще более значительной.

Другой важной особенностью версии 2.x является отсутствие зависимостей. Учитывая недавние атаки на цепочку поставок в версиях 1.95.5 и 1.95.6, уменьшение внешних зависимостей может значительно снизить риски безопасности. В новой версии в большей степени используются встроенные функции, отменяя введение внешних зависимостей и полифиллов.

Важные изменения

соединение

Версия 2.x использует более функциональный подход к обработке соединений. Больше не используется класс Connection, вместо этого запросы создаются с помощью конфигурации адреса RPC. Например, при отправке транзакции автоматически инициируется HTTPS-запрос и устанавливается WSS-соединение для подписки на статус транзакции.

ключевая пара

Обработка, связанная с открытыми и закрытыми ключами, также изменились. Классы Keypair и PublicKey, часто используемые в версии 1.x, были заменены некоторыми функциями. Например, теперь для генерации пары ключей используется await generateKeyPair(), а не ранее использовавшийся Keypair.generate(). Новая реализация использует Web Crypto API JavaScript и нативную реализацию Ed25519, что приводит к тому, что некоторые методы становятся асинхронными.

Отправить транзакцию

В версии 2.x больше не используются классы Transaction и VersionedTransaction. Методы, связанные с System Program, также необходимо импортировать из других мест. Например, команда transfer теперь требует вызова функции getTransferSolInstruction из @solana-program/system.

Новая версия предоставляет форму pipe, часто используемую в функциональном программировании. Разработчики могут использовать функцию pipe для реализации функции перевода, которая была в версии 1.x. Хотя объем кода увеличился, это обеспечивает большую настраиваемость.

React поддержка

Стоит отметить, что в проекте @solana/web3.js также имеется библиотека под названием @solana/react, которая предоставляет несколько React Hook и встроенные функции, такие как signIn.

Резюме

Выпуск версии 2.x Solana Web3.js демонстрирует приверженность команды разработчиков к постоянному совершенствованию. Новая версия предоставляет разработчикам более эффективный, гибкий и настраиваемый способ взаимодействия с сетью Solana, что, как ожидается, будет способствовать дальнейшему развитию и применению этой платформы. Несмотря на то, что многие проекты еще не перешли на новую версию, понимание этих изменений поможет разработчикам подготовиться к будущему переходу.

Web3 Новичок Серия: Обновите @solana/web3.js 2.x для включения функционального программирования

SOL-3.46%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Поделиться
комментарий
0/400
ForumLurkervip
· 6ч назад
Эту подсистему нужно будет еще немного изучить самостоятельно.
Посмотреть ОригиналОтветить0
DiamondHandsvip
· 10ч назад
Неужели, если объем стал меньше, не может быть быстрее?
Посмотреть ОригиналОтветить0
StablecoinArbitrageurvip
· 07-30 14:36
*подправляет очки* хм... основываясь на моем анализе показателей производительности, разделение на модули должно снизить задержку примерно на 47 базисных точек
Посмотреть ОригиналОтветить0
MissingSatsvip
· 07-30 14:34
Наконец-то дождался обновления, ждал целый год.
Посмотреть ОригиналОтветить0
LucidSleepwalkervip
· 07-30 14:34
Пришла версия 2.x, не могу больше учиться.
Посмотреть ОригиналОтветить0
DuckFluffvip
· 07-30 14:27
Ха, все еще используете версию 1.x? Пора обновить.
Посмотреть ОригиналОтветить0
BrokenYieldvip
· 07-30 14:15
наконец-то немного управления рисками в sol... им потребовалось достаточно много времени, смh
Посмотреть ОригиналОтветить0
  • Закрепить