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