Solana Web3.js 2.x: значне оновлення функціональної JavaScript бібліотеки
Solana Web3.js як потужна бібліотека JavaScript офіційно випустила версію 2.x у листопаді цього року. Порівняно з версією 1.x, нова версія принесла багато суттєвих змін. У цій статті буде наведено огляд цих основних змін, щоб підготувати розробників до майбутньої міграції.
Порівняння версій
Використання версії 1.x відносно просте, вона містить лише пакет @solana/web3.js, що базується на класовому дизайні та обертає велику кількість звичайних операцій. Однак, цей дизайн також приносить деякі проблеми, такі як великий обсяг бібліотеки коду, користувачам потрібно завантажити повний файл бібліотеки тощо.
Версія 2.x впровадила модульний дизайн, розділивши існуючу кодову базу на кілька невеликих модулів, таких як @solana/accounts, @solana/codecs, @solana/rpc тощо. У новій версії відмовилися від реалізації на основі класів, натомість більше використовуються окремі функції, що сприяє оптимізації під час побудови коду JavaScript. За статистикою, програми на новій версії зазвичай можуть отримати оптимізацію обсягу на 30%, якщо використовуються лише невелику кількість функцій, оптимізація може бути ще вищою.
Іншою важливою особливістю версії 2.x є нульова залежність. З огляду на нещодавні атаки на постачальницький ланцюг у версіях 1.95.5 та 1.95.6, зменшення зовнішніх залежностей може значно знизити ризики безпеки. Наразі версія 2.x усунула всі зовнішні залежності.
Важливі зміни
з'єднати
Версія 2.x реалізує функцію підключення у більш функціональному стилі. Наприклад, під час відправлення транзакції автоматично ініціюється HTTPS-запит і встановлюється WSS-з'єднання для підписки на статус транзакції, а після підтвердження транзакції повертається хеш транзакції.
ключова пара
У новій версії класи Keypair та PublicKey більше не існують, їх замінили деякі функції. Наприклад, ви можете використовувати await generateKeyPair() для генерування ключової пари. Нова реалізація максимально використовує Web Crypto API JavaScript, використовуючи рідну реалізацію Ed25519.
відправити транзакцію
У версії 2.x більше немає класів Transaction і VersionedTransaction. Методи, пов'язані з системною програмою, також потрібно імпортувати з інших місць. Наприклад, для команди transfer потрібно викликати функцію getTransferSolInstruction з @solana-program/system.
Нова версія надає форму pipe, яка часто використовується в функціональному програмуванні. Транзакції більше не ініціюються через Connection, а створюються за допомогою визначеного RPC Provider, який генерує специфічні функції для ініціювання транзакцій. Хоча обсяг коду трохи зріс, це забезпечує більшу можливість налаштування.
Підтримка React
У проекті @solana/web3.js також міститься бібліотека @solana/react, яка надає деякі React Hook та має вбудовані функції, такі як signIn.
Підсумок
Випуск версії 2.x @solana/web3.js демонструє зобов'язання команди Solana до постійного вдосконалення. Нова версія надає розробникам ефективний, гнучкий і налаштовуваний спосіб взаємодії з мережею Solana, що має на меті сприяти подальшому розвитку та застосуванню платформи.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Важливе оновлення Solana Web3.js 2.x: модульний дизайн підвищує продуктивність і безпеку
Solana Web3.js 2.x: значне оновлення функціональної JavaScript бібліотеки
Solana Web3.js як потужна бібліотека JavaScript офіційно випустила версію 2.x у листопаді цього року. Порівняно з версією 1.x, нова версія принесла багато суттєвих змін. У цій статті буде наведено огляд цих основних змін, щоб підготувати розробників до майбутньої міграції.
Порівняння версій
Використання версії 1.x відносно просте, вона містить лише пакет @solana/web3.js, що базується на класовому дизайні та обертає велику кількість звичайних операцій. Однак, цей дизайн також приносить деякі проблеми, такі як великий обсяг бібліотеки коду, користувачам потрібно завантажити повний файл бібліотеки тощо.
Версія 2.x впровадила модульний дизайн, розділивши існуючу кодову базу на кілька невеликих модулів, таких як @solana/accounts, @solana/codecs, @solana/rpc тощо. У новій версії відмовилися від реалізації на основі класів, натомість більше використовуються окремі функції, що сприяє оптимізації під час побудови коду JavaScript. За статистикою, програми на новій версії зазвичай можуть отримати оптимізацію обсягу на 30%, якщо використовуються лише невелику кількість функцій, оптимізація може бути ще вищою.
Іншою важливою особливістю версії 2.x є нульова залежність. З огляду на нещодавні атаки на постачальницький ланцюг у версіях 1.95.5 та 1.95.6, зменшення зовнішніх залежностей може значно знизити ризики безпеки. Наразі версія 2.x усунула всі зовнішні залежності.
Важливі зміни
з'єднати
Версія 2.x реалізує функцію підключення у більш функціональному стилі. Наприклад, під час відправлення транзакції автоматично ініціюється HTTPS-запит і встановлюється WSS-з'єднання для підписки на статус транзакції, а після підтвердження транзакції повертається хеш транзакції.
ключова пара
У новій версії класи Keypair та PublicKey більше не існують, їх замінили деякі функції. Наприклад, ви можете використовувати await generateKeyPair() для генерування ключової пари. Нова реалізація максимально використовує Web Crypto API JavaScript, використовуючи рідну реалізацію Ed25519.
відправити транзакцію
У версії 2.x більше немає класів Transaction і VersionedTransaction. Методи, пов'язані з системною програмою, також потрібно імпортувати з інших місць. Наприклад, для команди transfer потрібно викликати функцію getTransferSolInstruction з @solana-program/system.
Нова версія надає форму pipe, яка часто використовується в функціональному програмуванні. Транзакції більше не ініціюються через Connection, а створюються за допомогою визначеного RPC Provider, який генерує специфічні функції для ініціювання транзакцій. Хоча обсяг коду трохи зріс, це забезпечує більшу можливість налаштування.
Підтримка React
У проекті @solana/web3.js також міститься бібліотека @solana/react, яка надає деякі React Hook та має вбудовані функції, такі як signIn.
Підсумок
Випуск версії 2.x @solana/web3.js демонструє зобов'язання команди Solana до постійного вдосконалення. Нова версія надає розробникам ефективний, гнучкий і налаштовуваний спосіб взаємодії з мережею Solana, що має на меті сприяти подальшому розвитку та застосуванню платформи.