Велике оновлення Solana Web3.js 2.x: модульний дизайн підвищує продуктивність та безпеку

robot
Генерація анотацій у процесі

Solana Web3.js 2.x версія: нова ера функціонального програмування

Бібліотека Solana Web3.js у листопаді цього року випустила версію 2.x, яка, в порівнянні з версією 1.x, принесла суттєві зміни. У цій статті буде викладено основні зміни, щоб підготувати розробників до майбутньої міграції.

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

Порівняння версій

Версія 1.x, хоча і проста у використанні, має деякі проблеми. Вона об'єднує всі функції в одному пакеті, що призводить до того, що навіть якщо розробники використовують лише невелику кількість функцій, їм потрібно завантажити всю бібліотеку. Це не тільки збільшує час завантаження, але й може вплинути на досвід користувача.

Версія 2.x впровадила модульний дизайн, розділивши існуючу кодову базу на кілька малих модулів, таких як @solana/accounts, @solana/codecs тощо. Одночасно нова версія відмовилася від реалізації на основі класів, перейшовши на використання єдиної функції. Цей дизайн сприяє оптимізації під час побудови коду JavaScript, не використовуваний код буде видалено і не завантажиться на пристрій користувача. За офіційними даними, використання нової версії DApp зазвичай дозволяє досягти оптимізації обсягу коду на 30%, а в деяких випадках навіть більше.

Однак нова версія модульного дизайну також висуває вищі вимоги до документації команди Solana. Як допомогти розробникам швидко знаходити необхідні функції стало ключовим питанням. Наразі назви різних модулів мають добру семантику, що в певній мірі знижує труднощі міграції для розробників.

Слід зазначити, що версія 2.x реалізувала нульову залежність. З огляду на недавні атаки на постачальницький ланцюг у версіях 1.95.5 та 1.95.6, зменшення зовнішніх залежностей, безсумнівно, підвищує безпеку бібліотеки.

Важливі зміни

з'єднання

Версія 2.x використовує більш функціональний підхід для обробки з'єднань. Новий варіант створює відправник запитів шляхом налаштування адреси RPC-запиту, а потім використовує цей відправник для ініціювання різних запитів.

ключова пара

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

відправити транзакцію

Версія 2.x більше не використовує класи Transaction та VersionedTransaction. Методи, пов'язані з системною програмою, також були видалені, їх потрібно імплементувати з інших джерел. Наприклад, команда 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, що має на меті сприяти подальшому розвитку та застосуванню цієї платформи.

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

SOL3.2%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
TommyTeachervip
· 08-06 04:31
2.0 вийшло! Час додому!
Переглянути оригіналвідповісти на0
AlphaBrainvip
· 08-05 22:07
Справді смачно, знову потрібно перебудувати.
Переглянути оригіналвідповісти на0
BridgeJumpervip
· 08-03 23:45
солана справді смачна цього разу
Переглянути оригіналвідповісти на0
IntrovertMetaversevip
· 08-03 23:45
Оновлення, оновлення, не можу прокрутити.
Переглянути оригіналвідповісти на0
OnchainDetectivevip
· 08-03 23:15
Нарешті змінили цю пастку
Переглянути оригіналвідповісти на0
  • Закріпити