Rilis versi 2.x Solana Web3.js: Pemrograman fungsional membentuk kembali pengalaman pengembangan

robot
Pembuatan abstrak sedang berlangsung

Solana Web3.js 2.x: Era Baru Pemrograman Fungsional

Solana Web3.js merilis versi 2.x pada November 2023, yang membawa perubahan signifikan dibandingkan versi 1.x. Artikel ini akan merangkum perbaikan utamanya.

Meskipun versi 2.x baru saja dirilis dan tingkat penggunaannya masih rendah, banyak perpustakaan populer juga belum bermigrasi, tetapi memahami perubahan ini dapat membantu persiapan untuk pembaruan di masa depan.

Web3 Pemula Seri: Sekarang Upgrade @solana/web3.js 2.x untuk Memulai Pemrograman Fungsional

Perbandingan Versi

Versi 1.x relatif mudah digunakan, hanya mencakup satu paket @solana/web3.js, yang membungkus banyak operasi umum berdasarkan desain berbasis kelas. Misalnya, kelas Connection menyediakan puluhan metode yang hampir mencakup semua fungsi yang dibutuhkan oleh pengembang.

Namun, desain ini juga membawa beberapa masalah. Meskipun fitur yang sebenarnya digunakan oleh pengembang mungkin sangat sedikit, seluruh kode sumber akan diunduh ke perangkat pengguna, menyebabkan waktu pemuatan menjadi lebih lama.

Versi 2.x mengambil pendekatan yang berbeda. Tim resmi membagi repositori kode yang ada menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, @solana/rpc, dan lain-lain. Versi baru ini mengabaikan implementasi berbasis kelas dan lebih banyak menggunakan fungsi tunggal, yang menguntungkan untuk optimasi saat membangun kode JavaScript. Kode yang tidak digunakan akan dihapus dan tidak akan diunduh ke perangkat pengguna. Menurut data resmi, DApp yang menggunakan versi baru biasanya dapat mencapai optimasi ukuran sebesar 30%, dan untuk aplikasi yang memiliki fitur lebih sedikit, proporsi optimasi dapat lebih tinggi.

Perubahan ini menuntut kualitas dokumentasi yang lebih tinggi dari tim Solana. Bagaimana cara membuat pengembang dapat dengan cepat menemukan fitur yang dibutuhkan menjadi masalah kunci. Saat ini, semantik nama paket cukup baik, sehingga dari namanya saja kita bisa memahami secara garis besar kegunaannya, yang dalam beberapa hal mengurangi kesulitan migrasi bagi pengembang.

Namun, karena baru saja dirilis, banyak proyek yang belum bermigrasi. Beberapa contoh dan deskripsi dokumen juga belum cukup lengkap, yang mungkin akan membingungkan para pengembang.

Fitur penting lainnya dari versi 2.x adalah tanpa ketergantungan. Ini sangat penting untuk meningkatkan keamanan, terutama setelah @solana/web3.js versi 1.95.5 dan 1.95.6 mengalami serangan rantai pasokan pada awal Desember 2023. Versi baru lebih banyak menggunakan fungsi bawaan, menghilangkan ketergantungan eksternal dan pengenalan Polyfills, sehingga mengurangi risiko keamanan.

Perubahan Utama

cara koneksi

Versi 2.x menggunakan pendekatan yang lebih fungsional untuk menangani koneksi. Tidak lagi menggunakan kelas Connection, tetapi membuat pengirim permintaan melalui konfigurasi alamat permintaan RPC. Misalnya, saat mengirim transaksi, permintaan HTTPS akan secara otomatis dimulai dan koneksi WSS akan dibangun, berlangganan status transaksi, dan mengembalikan hash transaksi setelah konfirmasi transaksi.

Manajemen Kunci Pasangan

Operasi terkait kunci publik dan kunci pribadi juga mengalami perubahan signifikan. Kelas Keypair dan PublicKey yang umum digunakan pada versi 1.x tidak lagi ada, digantikan oleh serangkaian fungsi. Misalnya, sekarang menggunakan await generateKeyPair() untuk menghasilkan pasangan kunci, bukan lagi Keypair.generate() sebelumnya.

Implementasi baru memanfaatkan Web Crypto API JavaScript, menggunakan implementasi Ed25519 yang asli. Ini menyebabkan beberapa operasi menjadi asinkron, tetapi bagi pengembang JavaScript modern yang akrab dengan Promise, ini bukanlah masalah besar.

pemrosesan transaksi

Dalam versi 2.x, tidak ada lagi kelas Transaction dan VersionedTransaction. Metode terkait System Program juga perlu diimpor dari tempat lain. Misalnya, instruksi transfer sekarang perlu memanggil fungsi getTransferSolInstruction dari @solana-program/system.

Versi baru menyediakan bentuk pipe yang umum digunakan dalam pemrograman fungsional. Transaksi tidak lagi dimulai melalui Connection, tetapi melalui penyedia RPC yang ditentukan untuk menghasilkan fungsi tertentu guna memulai transaksi. Meskipun cara ini sedikit meningkatkan jumlah kode, namun memberikan kustomisasi yang lebih kuat.

Dukungan React

Perlu dicatat bahwa proyek @solana/web3.js juga mencakup sebuah pustaka bernama @solana/react, yang menyediakan beberapa React Hook, dilengkapi dengan fungsi-fungsi seperti signIn.

Kesimpulan

Peluncuran versi 2.x dari @solana/web3.js menunjukkan komitmen berkelanjutan tim Solana untuk melakukan perbaikan. Versi baru ini memberikan pengembang cara interaksi dengan jaringan Solana yang efisien, fleksibel, dan dapat disesuaikan, yang diharapkan dapat mendorong perkembangan dan aplikasi lebih lanjut dari platform.

Seri Pemula Web3: Sekarang Upgrade @solana/web3.js 2.x untuk Memulai Pemrograman Fungsional

Lihat Asli
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.
  • Hadiah
  • 3
  • Bagikan
Komentar
0/400
SoliditySlayervip
· 13jam yang lalu
Ini bisa meningkatkan berapa tps?
Lihat AsliBalas0
GateUser-aa7df71evip
· 13jam yang lalu
solana ini akan To da moon, kan
Lihat AsliBalas0
GateUser-e87b21eevip
· 13jam yang lalu
Setelah diperbarui, pengembangan jadi lebih mudah!
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)