Оновлення Solana Web3.js 2.x: модульний дизайн підвищує продуктивність і безпеку

robot
Генерація анотацій у процесі

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

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

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

Порівняння версій

Використання версії 1.x відносно просте, всі функції зосереджені в одному пакеті @solana/web3.js, який обгортає велику кількість звичних операцій на основі класового дизайну. Наприклад, клас Connection надає десятки методів, які майже покривають усі функції, необхідні розробникам. Проте, такий дизайн також призводить до деяких проблем, таких як занадто великий обсяг кодової бази; користувачеві потрібно завантажити всю бібліотеку, навіть якщо він використовує лише невелику частину функцій.

Версія 2.x має модульний дизайн, розділяючи бібліотеку коду на кілька невеликих модулів, таких як @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions тощо. У новій версії відмовилися від реалізації на основі класів, натомість використовуючи єдину функцію, що сприяє оптимізації під час побудови коду JavaScript. Невикористаний код буде видалено і не буде завантажено на пристрій користувача. Згідно з офіційними даними, застосунки з новою версією зазвичай можуть досягти 30% оптимізації обсягу, а якщо використовуються лише невеликі функції, оптимізація може бути ще вищою.

Іншою важливою особливістю версії 2.x є відсутність зовнішніх залежностей. У зв'язку з нещодавніми атаками на постачальницький ланцюг у версіях 1.95.5 та 1.95.6, зменшення зовнішніх залежностей допомагає підвищити безпеку. Розробницька команда вирішила більше використовувати вбудовані функції, відмовившись від зовнішніх залежностей та впровадження Polyfills.

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

з'єднання

Версія 2.x використовує більш функціональний підхід для обробки з'єднань. Більше не використовується клас Connection, натомість запитувальний відправник створюється шляхом налаштування адреси RPC запиту. Наприклад, під час відправлення транзакції автоматично ініціюється HTTPS запит і встановлюється WSS з'єднання, підписується стан транзакції, а після підтвердження транзакції повертається хеш транзакції.

пара ключів

У версії 2.x класи Keypair та PublicKey були замінені серією функцій. Наприклад, тепер для генерації ключової пари використовується await generateKeyPair() замість Keypair.generate(). Нова реалізація використовує Web Crypto API JavaScript, застосовуючи рідну реалізацію Ed25519, що призвело до того, що багато методів стали асинхронними.

надіслати транзакцію

У версії 2.x більше не використовуються класи Transaction та VersionedTransaction. Методи, пов'язані з System Program, також були видалені, і їх потрібно імпортувати з інших пакетів. Наприклад, для команди переказу тепер потрібно викликати функцію getTransferSolInstruction з @solana-program/system.

Нова версія пропонує форму pipe, широко використовувану у функціональному програмуванні. Транзакції більше не ініціюються через Connection, а генеруються за допомогою визначеного RPC Provider для створення специфічних функцій для ініціювання транзакцій. Хоча обсяг коду трохи зріс, це забезпечує більшу налаштовуваність.

React підтримка

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

Підсумок

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

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

SOL2.48%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Репост
  • Поділіться
Прокоментувати
0/400
DiamondHandsvip
· 07-27 11:54
v2 сол нарешті прийшов
Переглянути оригіналвідповісти на0
GasGrillMastervip
· 07-26 04:37
Цілковита нульова залежність? Я хочу подивитися.
Переглянути оригіналвідповісти на0
GweiObservervip
· 07-24 21:40
Солана нарешті в ділі
Переглянути оригіналвідповісти на0
ThreeHornBlastsvip
· 07-24 21:22
Солана нарешті показала себе!
Переглянути оригіналвідповісти на0
PretendingSeriousvip
· 07-24 21:20
Це оновлення нарешті прийшло, ти розумієш.
Переглянути оригіналвідповісти на0
  • Закріпити