Solana Web3.js 2.x версія: функціональне розділення та оптимізація
Solana Web3.js є потужною бібліотекою JavaScript, яка нещодавно випустила версію 2.x. У порівнянні з 1.x, нова версія має значні зміни, ця стаття підсумує її основні оновлення.
Хоча версія 2.x була нещодавно випущена і її використання ще не є високим, багато поширених бібліотек ще не були перенесені, але заздалегідь ознайомитися з цими змінами допоможе підготуватися до майбутніх оновлень.
Порівняння версій
Старі версії були простішими у використанні, з усією функціональністю в пакеті @solana/web3.js, а також дизайном, заснованим на класах, який містив велику кількість часто використовуваних операцій. Однак такий дизайн також пов'язаний з деякими проблемами, такими як завантаження всієї бібліотеки на пристрій користувача, навіть якщо використовується лише невелика частина функціоналу.
Версія 2.x розділила кодову базу на кілька малих модулів, таких як @solana/accounts, @solana/codecs, @solana/rpc тощо. Нова версія відмовилася від реалізації на основі класів, більше використовуючи окремі функції, що сприяє оптимізації під час складання коду JavaScript. Невикористаний код буде видалено і не буде завантажено на пристрій користувача. За офіційними даними, використання нової версії застосунків дозволяє досягти оптимізації обсягу на 30%.
Модульна конструкція нової версії висуває підвищені вимоги до документації розробки. В даний час назви модулів мають хорошу семантику, що допомагає розробникам швидко знаходити потрібні їм функції. Однак, оскільки він щойно вийшов, багато проєктів ще не мігрували, і прикладів цього небагато.
Іншою важливою особливістю версії 2.x є нульова залежність. Ця риса може не мати значного впливу на звичайних користувачів, але з точки зору безпеки є дуже важливою. Команда розробників вирішила більше використовувати нативні функції, скасувавши зовнішні залежності та впровадження Polyfills, щоб зменшити ризики безпеки.
Основні зміни
Обробка з'єднань
Нова версія реалізує з'єднання більш функціональним способом. Наприклад, під час відправлення транзакції автоматично ініціюється HTTPS запит і встановлюється WSS з'єднання, підписується статус транзакції, після підтвердження транзакції повертається хеш транзакції.
Управління ключовими парами
Функції, пов'язані з публічними та приватними ключами, суттєво змінилися. Класи Keypair і PublicKey, які зазвичай використовувалися в релізі 1.x, більше не існують і були замінені деякими функціями. Наприклад, ви можете використовувати await generateKeyPair() для створення пари ключів замість попередньої Keypair.generate().
Нове впровадження максимально використовує Web Crypto API JavaScript, використовуючи рідну реалізацію Ed25519. Це призвело до того, що деякі методи стали асинхронними, але для розробників, які знайомі з Promise, це не є великою проблемою.
Відправка交易
У версії 2.x більше немає класів Transaction і VersionedTransaction. Методи, пов'язані з System Program, також більше не існують і їх потрібно імплементувати з інших модулів.
Нова версія пропонує форму pipe, яка часто використовується у функціональному програмуванні. Наприклад, при реалізації функції переказу не потрібно ініціювати транзакцію через Connection, а замість цього транзакція ініціюється через специфічну функцію, згенеровану визначеним RPC Provider. Цей підхід, хоча й збільшує обсяг коду, забезпечує більшу гнучкість в налаштуванні.
Підтримка React
Слід зазначити, що в проекті @solana/web3.js також міститься бібліотека @solana/react, яка надає деякі React Hook, які вбудовані, наприклад, функції signIn.
Підсумок
Випуск Solana Web3.js 2.x демонструє прагнення команди розробників до постійного вдосконалення. Новий реліз надає розробникам більш ефективний, гнучкий і настроюваний спосіб взаємодії з мережею Solana, що, як очікується, сприятиме прийняттю та зростанню платформи.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
15 лайків
Нагородити
15
9
Поділіться
Прокоментувати
0/400
ProbablyNothing
· 07-19 15:36
sol нарешті розкрутився
Переглянути оригіналвідповісти на0
GweiWatcher
· 07-18 09:24
Зв'язок — це король!
Переглянути оригіналвідповісти на0
MoonBoi42
· 07-18 08:31
Передній ряд їсть кавуни, бичачий sol
Переглянути оригіналвідповісти на0
CryptoMotivator
· 07-17 01:02
Нарешті дочекалися цього оновлення!
Переглянути оригіналвідповісти на0
Anon32942
· 07-17 01:01
Нарешті оптимізували, здається, раніше справи дійсно йшли погано.
Важливе оновлення версії 2.x Solana Web3.js: модульний дизайн підвищує продуктивність та безпеку
Solana Web3.js 2.x версія: функціональне розділення та оптимізація
Solana Web3.js є потужною бібліотекою JavaScript, яка нещодавно випустила версію 2.x. У порівнянні з 1.x, нова версія має значні зміни, ця стаття підсумує її основні оновлення.
Хоча версія 2.x була нещодавно випущена і її використання ще не є високим, багато поширених бібліотек ще не були перенесені, але заздалегідь ознайомитися з цими змінами допоможе підготуватися до майбутніх оновлень.
Порівняння версій
Старі версії були простішими у використанні, з усією функціональністю в пакеті @solana/web3.js, а також дизайном, заснованим на класах, який містив велику кількість часто використовуваних операцій. Однак такий дизайн також пов'язаний з деякими проблемами, такими як завантаження всієї бібліотеки на пристрій користувача, навіть якщо використовується лише невелика частина функціоналу.
Версія 2.x розділила кодову базу на кілька малих модулів, таких як @solana/accounts, @solana/codecs, @solana/rpc тощо. Нова версія відмовилася від реалізації на основі класів, більше використовуючи окремі функції, що сприяє оптимізації під час складання коду JavaScript. Невикористаний код буде видалено і не буде завантажено на пристрій користувача. За офіційними даними, використання нової версії застосунків дозволяє досягти оптимізації обсягу на 30%.
Модульна конструкція нової версії висуває підвищені вимоги до документації розробки. В даний час назви модулів мають хорошу семантику, що допомагає розробникам швидко знаходити потрібні їм функції. Однак, оскільки він щойно вийшов, багато проєктів ще не мігрували, і прикладів цього небагато.
Іншою важливою особливістю версії 2.x є нульова залежність. Ця риса може не мати значного впливу на звичайних користувачів, але з точки зору безпеки є дуже важливою. Команда розробників вирішила більше використовувати нативні функції, скасувавши зовнішні залежності та впровадження Polyfills, щоб зменшити ризики безпеки.
Основні зміни
Обробка з'єднань
Нова версія реалізує з'єднання більш функціональним способом. Наприклад, під час відправлення транзакції автоматично ініціюється HTTPS запит і встановлюється WSS з'єднання, підписується статус транзакції, після підтвердження транзакції повертається хеш транзакції.
Управління ключовими парами
Функції, пов'язані з публічними та приватними ключами, суттєво змінилися. Класи Keypair і PublicKey, які зазвичай використовувалися в релізі 1.x, більше не існують і були замінені деякими функціями. Наприклад, ви можете використовувати await generateKeyPair() для створення пари ключів замість попередньої Keypair.generate().
Нове впровадження максимально використовує Web Crypto API JavaScript, використовуючи рідну реалізацію Ed25519. Це призвело до того, що деякі методи стали асинхронними, але для розробників, які знайомі з Promise, це не є великою проблемою.
Відправка交易
У версії 2.x більше немає класів Transaction і VersionedTransaction. Методи, пов'язані з System Program, також більше не існують і їх потрібно імплементувати з інших модулів.
Нова версія пропонує форму pipe, яка часто використовується у функціональному програмуванні. Наприклад, при реалізації функції переказу не потрібно ініціювати транзакцію через Connection, а замість цього транзакція ініціюється через специфічну функцію, згенеровану визначеним RPC Provider. Цей підхід, хоча й збільшує обсяг коду, забезпечує більшу гнучкість в налаштуванні.
Підтримка React
Слід зазначити, що в проекті @solana/web3.js також міститься бібліотека @solana/react, яка надає деякі React Hook, які вбудовані, наприклад, функції signIn.
Підсумок
Випуск Solana Web3.js 2.x демонструє прагнення команди розробників до постійного вдосконалення. Новий реліз надає розробникам більш ефективний, гнучкий і настроюваний спосіб взаємодії з мережею Solana, що, як очікується, сприятиме прийняттю та зростанню платформи.