Solana Web3.js 2.x: Модульна реконструкція та підвищення продуктивності

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

Бібліотека Solana Web3.js, яка має багато функцій, офіційно випустила версію 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, зменшення зовнішніх залежностей може значно знизити ризики безпеки. Нова версія більше використовує вбудовані функції, відмовляючись від зовнішніх залежностей і введення Polyfills.

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

з'єднання

Версія 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, який часто використовується у функціональному програмуванні. Розробники можуть реалізувати функцію переказу, яка була в версії 1.x, за допомогою функції pipe. Хоча обсяг коду збільшився, це забезпечує більшу налаштовуваність.

Підтримка React

Варто зазначити, що в проекті @solana/web3.js також є бібліотека під назвою @solana/react, яка надає кілька React Hook, вбудованих з такими функціями, як signIn.

Резюме

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

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

SOL-3.44%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією 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... їм знадобилося достатньо часу, смх
Переглянути оригіналвідповісти на0
  • Закріпити