Випуск версії 2.x Solana Web3.js: Функціональне програмування переосмислює досвід розробки

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

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

Solana Web3.js у листопаді 2023 року випустила версію 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 тощо. У новій версії відмовилися від реалізації на базі класів і більше використовують окремі функції, що сприяє оптимізації під час складання коду JavaScript. Невикористовуваний код буде видалено і не буде завантажено на пристрій користувача. Згідно з офіційними даними, використання нової версії DApp зазвичай дозволяє досягти 30% оптимізації розміру, для додатків з меншою функціональністю оптимізація може бути ще вищою.

Ця зміна висуває вищі вимоги до якості документації команди Solana. Як швидко допомогти розробникам знайти необхідні функції стало ключовим питанням. Наразі семантика назв пакетів є досить хорошою, з назв можна приблизно зрозуміти їх призначення, що в певній мірі знижує труднощі міграції для розробників.

Однак, через те, що він був випущений нещодавно, багато проектів ще не були перенесені. Деякі приклади та описи документації також не є достатньо повними, що може викликати певні непорозуміння у розробників.

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

Основні зміни

спосіб підключення

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

Управління ключовими парами

Операції, пов'язані з публічними та приватними ключами, також зазнали значних змін. Класи Keypair та PublicKey, які були поширені у версії 1.x, більше не існують, їх замінили серії функцій. Наприклад, тепер використовуйте await generateKeyPair() для генерації ключової пари, замість попереднього Keypair.generate().

Нове впровадження використовує Web Crypto API JavaScript, застосовуючи рідну реалізацію Ed25519. Це призвело до того, що деякі операції стали асинхронними, але для сучасних розробників JavaScript, знайомих із Promise, це не є великою проблемою.

обробка транзакцій

У версії 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 відкриває функціональне програмування

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
SoliditySlayervip
· 12год тому
Скільки TPS це може підвищити?
Переглянути оригіналвідповісти на0
GateUser-aa7df71evip
· 12год тому
solana ця хвиля має до місяця, правда?
Переглянути оригіналвідповісти на0
GateUser-e87b21eevip
· 12год тому
Оновлення зробило розробку легше!
Переглянути оригіналвідповісти на0
  • Закріпити