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.
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.
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.
15 Suka
Hadiah
15
3
Bagikan
Komentar
0/400
SoliditySlayer
· 13jam yang lalu
Ini bisa meningkatkan berapa tps?
Lihat AsliBalas0
GateUser-aa7df71e
· 13jam yang lalu
solana ini akan To da moon, kan
Lihat AsliBalas0
GateUser-e87b21ee
· 13jam yang lalu
Setelah diperbarui, pengembangan jadi lebih mudah!
Rilis versi 2.x Solana Web3.js: Pemrograman fungsional membentuk kembali pengalaman pengembangan
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.
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.