Solana Web3.js 2.x версія: епоха функціонального програмування
Бібліотека Solana Web3.js, як функціонально багатий JavaScript-скрипт, офіційно випустила версію 2.x у листопаді цього року. У порівнянні з версією 1.x, нова версія принесла суттєві зміни, у цій статті буде наведено основні зміни.
Хоча версія 2.x тільки-но вийшла, а її використання поки що не досягає рівнів старої версії, розуміння цих змін є надзвичайно важливим для майбутньої міграції проектів.
Порівняння версій
Безсумнівно, що досвід використання старої версії був простішим. Версія 1.x була зосереджена в одному пакеті, використовуючи об'єктно-орієнтований дизайн, що об'єднує багато поширених операцій. Наприклад, клас Connection надає десятки методів, які практично покривають всі функції, необхідні розробникам. Однак такий дизайн також приніс деякі проблеми, такі як надмірність коду та збільшений час завантаження.
Версія 2.x впроваджує модульний дизайн, розділяючи наявну кодову базу на кілька малих модулів, таких як @solana/accounts, @solana/codecs, @solana/rpc тощо. Одночасно нова версія відмовилася від реалізації на основі класів, перейшовши на єдиний функціональний метод, що сприяє оптимізації при побудові коду на JavaScript. Згідно з статистикою, використання нової версії програм загалом дозволяє досягти 30% оптимізації обсягу, для застосунків, які використовують лише невелику кількість функцій, цей показник може бути ще вищим.
Нова версія модульного дизайну висуває вищі вимоги до якості документації. На даний момент назви модулів мають гарну семантику, що в певній мірі зменшує складність перенесення для розробників.
Слід зазначити, що версія 2.x реалізувала нульову залежність. Враховуючи нещодавні атаки на постачальницький ланцюг у версіях 1.95.5 та 1.95.6, зменшення зовнішніх залежностей безсумнівно підвищило безпеку бібліотеки. Команда розробників вирішила більше використовувати вбудовані функції, скасувавши зовнішні залежності та впровадження Polyfills.
Важливі зміни
з'єднання
Версія 2.x використовує більш функціональний підхід до обробки з'єднань. Нова версія створює відправник запитів через налаштування адреси RPC запитів, а потім використовує цей відправник для ініціювання різних запитів.
ключова пара
Обробка, пов'язана з публічними та приватними ключами, також зазнала значних змін. Класи Keypair та PublicKey, які часто використовувалися у версії 1.x, були замінені набором функцій. Наприклад, тепер можна використовувати асинхронну функцію generateKeyPair() для генерації ключових пар. Ця зміна зумовлена тим, що нова версія більше використовує 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.
Підсумок
Випуск версії 2.x @solana/web3.js демонструє рішучість команди Solana до безперервних інновацій. Нова версія надає розробникам більш ефективний, гнучкий та кастомізований спосіб взаємодії з мережею Solana, що має надію подальшого сприяння прийняттю та розвитку цієї платформи.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
12 лайків
Нагородити
12
6
Поділіться
Прокоментувати
0/400
SellTheBounce
· 07-08 14:55
Є техніка, але важливіше людяність. Втрата - це просто доля.
Переглянути оригіналвідповісти на0
just_another_fish
· 07-07 22:21
Код написаний непогано, увійти в позицію, списуючи домашнє завдання.
Переглянути оригіналвідповісти на0
AllInDaddy
· 07-06 22:49
Нарешті вийшла нова версія! купувати просадку готуйся до скидання!
Випуск Solana Web3.js 2.x: модульний дизайн покращує продуктивність та безпеку
Solana Web3.js 2.x версія: епоха функціонального програмування
Бібліотека Solana Web3.js, як функціонально багатий JavaScript-скрипт, офіційно випустила версію 2.x у листопаді цього року. У порівнянні з версією 1.x, нова версія принесла суттєві зміни, у цій статті буде наведено основні зміни.
Хоча версія 2.x тільки-но вийшла, а її використання поки що не досягає рівнів старої версії, розуміння цих змін є надзвичайно важливим для майбутньої міграції проектів.
Порівняння версій
Безсумнівно, що досвід використання старої версії був простішим. Версія 1.x була зосереджена в одному пакеті, використовуючи об'єктно-орієнтований дизайн, що об'єднує багато поширених операцій. Наприклад, клас Connection надає десятки методів, які практично покривають всі функції, необхідні розробникам. Однак такий дизайн також приніс деякі проблеми, такі як надмірність коду та збільшений час завантаження.
Версія 2.x впроваджує модульний дизайн, розділяючи наявну кодову базу на кілька малих модулів, таких як @solana/accounts, @solana/codecs, @solana/rpc тощо. Одночасно нова версія відмовилася від реалізації на основі класів, перейшовши на єдиний функціональний метод, що сприяє оптимізації при побудові коду на JavaScript. Згідно з статистикою, використання нової версії програм загалом дозволяє досягти 30% оптимізації обсягу, для застосунків, які використовують лише невелику кількість функцій, цей показник може бути ще вищим.
Нова версія модульного дизайну висуває вищі вимоги до якості документації. На даний момент назви модулів мають гарну семантику, що в певній мірі зменшує складність перенесення для розробників.
Слід зазначити, що версія 2.x реалізувала нульову залежність. Враховуючи нещодавні атаки на постачальницький ланцюг у версіях 1.95.5 та 1.95.6, зменшення зовнішніх залежностей безсумнівно підвищило безпеку бібліотеки. Команда розробників вирішила більше використовувати вбудовані функції, скасувавши зовнішні залежності та впровадження Polyfills.
Важливі зміни
з'єднання
Версія 2.x використовує більш функціональний підхід до обробки з'єднань. Нова версія створює відправник запитів через налаштування адреси RPC запитів, а потім використовує цей відправник для ініціювання різних запитів.
ключова пара
Обробка, пов'язана з публічними та приватними ключами, також зазнала значних змін. Класи Keypair та PublicKey, які часто використовувалися у версії 1.x, були замінені набором функцій. Наприклад, тепер можна використовувати асинхронну функцію generateKeyPair() для генерації ключових пар. Ця зміна зумовлена тим, що нова версія більше використовує 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.
Підсумок
Випуск версії 2.x @solana/web3.js демонструє рішучість команди Solana до безперервних інновацій. Нова версія надає розробникам більш ефективний, гнучкий та кастомізований спосіб взаємодії з мережею Solana, що має надію подальшого сприяння прийняттю та розвитку цієї платформи.