Pembaruan Versi 2.x Solana Web3.js: Menyambut Pemrograman Fungsional
Solana Web3.js sebagai perpustakaan JavaScript yang kaya fitur, meluncurkan versi 2.x pada bulan November tahun ini. Dibandingkan dengan 1.x, versi baru ini membawa perubahan yang signifikan. Meskipun saat ini penggunaan versi 2.x belum tinggi, banyak perpustakaan yang banyak digunakan masih belum bermigrasi, tetapi memahami perubahan ini sangat penting untuk pengembangan dan pekerjaan migrasi di masa depan.
Perbandingan Versi
Penggunaan versi 1.x relatif sederhana, semua fungsi terkonsentrasi dalam satu paket @solana/web3.js, yang membungkus banyak operasi umum berdasarkan desain berbasis kelas. Misalnya, kelas Connection menyediakan puluhan metode, hampir mencakup semua fungsi yang dibutuhkan oleh pengembang. Namun, desain ini juga membawa beberapa masalah, seperti ukuran kode yang terlalu besar, perangkat pengguna perlu mengunduh seluruh perpustakaan, bahkan jika hanya menggunakan sebagian kecil dari fungsinya.
Versi 2.x mengadopsi desain modular, membagi repositori kode menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, dan lainnya. Versi baru ini meninggalkan implementasi berbasis kelas dan beralih ke penggunaan fungsi tunggal, yang menguntungkan optimasi saat membangun kode JavaScript. Kode yang tidak digunakan akan dihapus dan tidak akan diunduh ke perangkat pengguna. Menurut data resmi, aplikasi yang menggunakan versi baru biasanya dapat mencapai optimasi ukuran hingga 30%, dan jika hanya menggunakan sedikit fitur, rasio optimasi mungkin lebih tinggi.
Salah satu fitur penting dari versi 2.x adalah tanpa ketergantungan. Mengingat serangan rantai pasokan yang baru-baru ini terjadi pada versi 1.95.5 dan 1.95.6, mengurangi ketergantungan eksternal membantu meningkatkan keamanan. Tim pengembang memutuskan untuk lebih banyak menggunakan fungsi bawaan, menghindari ketergantungan eksternal dan pengenalan Polyfills.
Poin Perubahan Penting
terhubung
Versi 2.x menggunakan pendekatan yang lebih fungsional untuk menangani koneksi. Tidak lagi menggunakan kelas Connection, tetapi membuat pengirim permintaan dengan mengonfigurasi alamat RPC. Misalnya, saat mengirim transaksi, permintaan HTTPS akan secara otomatis diluncurkan dan koneksi WSS akan dibangun, berlangganan status transaksi, dan mengembalikan hash transaksi setelah konfirmasi transaksi.
pasangan kunci
Dalam versi 2.x, kelas Keypair dan PublicKey yang ada sebelumnya digantikan oleh serangkaian fungsi. Misalnya, sekarang gunakan await generateKeyPair() untuk menghasilkan pasangan kunci, bukan Keypair.generate(). Implementasi baru memanfaatkan Web Crypto API dari JavaScript, menggunakan implementasi Ed25519 asli, yang mengakibatkan banyak metode menjadi asinkron.
Kirim transaksi
Versi 2.x tidak lagi menggunakan kelas Transaction dan VersionedTransaction. Metode terkait Program Sistem juga telah dihapus dan perlu diimpor dari paket 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 didefinisikan untuk menghasilkan fungsi tertentu untuk memulai transaksi. Meskipun cara ini sedikit meningkatkan jumlah kode, tetapi memberikan kustomisasi yang lebih kuat.
Dukungan React
Proyek @solana/web3.js juga mencakup pustaka bernama @solana/react, yang menyediakan beberapa React Hook dan memiliki fungsi bawaan seperti signIn.
Ringkasan
Peluncuran versi 2.x dari @solana/web3.js menunjukkan komitmen tim Solana terhadap pengembangan dan perbaikan yang berkelanjutan. Versi baru ini memberikan pengembang cara yang lebih efisien, fleksibel, dan dapat disesuaikan untuk berinteraksi dengan jaringan Solana, dan diharapkan dapat mendorong adopsi dan perkembangan platform tersebut. Meskipun saat ini masih dalam tahap awal, seiring waktu, diyakini akan ada lebih banyak proyek yang bermigrasi ke versi baru ini.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
10 Suka
Hadiah
10
5
Bagikan
Komentar
0/400
DiamondHands
· 07-27 11:54
v2 sol akhirnya datang
Lihat AsliBalas0
GasGrillMaster
· 07-26 04:37
Sepenuhnya tanpa ketergantungan? Saya ingin melihatnya.
Pembaruan Solana Web3.js 2.x: Desain modular meningkatkan kinerja dan keamanan
Pembaruan Versi 2.x Solana Web3.js: Menyambut Pemrograman Fungsional
Solana Web3.js sebagai perpustakaan JavaScript yang kaya fitur, meluncurkan versi 2.x pada bulan November tahun ini. Dibandingkan dengan 1.x, versi baru ini membawa perubahan yang signifikan. Meskipun saat ini penggunaan versi 2.x belum tinggi, banyak perpustakaan yang banyak digunakan masih belum bermigrasi, tetapi memahami perubahan ini sangat penting untuk pengembangan dan pekerjaan migrasi di masa depan.
Perbandingan Versi
Penggunaan versi 1.x relatif sederhana, semua fungsi terkonsentrasi dalam satu paket @solana/web3.js, yang membungkus banyak operasi umum berdasarkan desain berbasis kelas. Misalnya, kelas Connection menyediakan puluhan metode, hampir mencakup semua fungsi yang dibutuhkan oleh pengembang. Namun, desain ini juga membawa beberapa masalah, seperti ukuran kode yang terlalu besar, perangkat pengguna perlu mengunduh seluruh perpustakaan, bahkan jika hanya menggunakan sebagian kecil dari fungsinya.
Versi 2.x mengadopsi desain modular, membagi repositori kode menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, dan lainnya. Versi baru ini meninggalkan implementasi berbasis kelas dan beralih ke penggunaan fungsi tunggal, yang menguntungkan optimasi saat membangun kode JavaScript. Kode yang tidak digunakan akan dihapus dan tidak akan diunduh ke perangkat pengguna. Menurut data resmi, aplikasi yang menggunakan versi baru biasanya dapat mencapai optimasi ukuran hingga 30%, dan jika hanya menggunakan sedikit fitur, rasio optimasi mungkin lebih tinggi.
Salah satu fitur penting dari versi 2.x adalah tanpa ketergantungan. Mengingat serangan rantai pasokan yang baru-baru ini terjadi pada versi 1.95.5 dan 1.95.6, mengurangi ketergantungan eksternal membantu meningkatkan keamanan. Tim pengembang memutuskan untuk lebih banyak menggunakan fungsi bawaan, menghindari ketergantungan eksternal dan pengenalan Polyfills.
Poin Perubahan Penting
terhubung
Versi 2.x menggunakan pendekatan yang lebih fungsional untuk menangani koneksi. Tidak lagi menggunakan kelas Connection, tetapi membuat pengirim permintaan dengan mengonfigurasi alamat RPC. Misalnya, saat mengirim transaksi, permintaan HTTPS akan secara otomatis diluncurkan dan koneksi WSS akan dibangun, berlangganan status transaksi, dan mengembalikan hash transaksi setelah konfirmasi transaksi.
pasangan kunci
Dalam versi 2.x, kelas Keypair dan PublicKey yang ada sebelumnya digantikan oleh serangkaian fungsi. Misalnya, sekarang gunakan await generateKeyPair() untuk menghasilkan pasangan kunci, bukan Keypair.generate(). Implementasi baru memanfaatkan Web Crypto API dari JavaScript, menggunakan implementasi Ed25519 asli, yang mengakibatkan banyak metode menjadi asinkron.
Kirim transaksi
Versi 2.x tidak lagi menggunakan kelas Transaction dan VersionedTransaction. Metode terkait Program Sistem juga telah dihapus dan perlu diimpor dari paket 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 didefinisikan untuk menghasilkan fungsi tertentu untuk memulai transaksi. Meskipun cara ini sedikit meningkatkan jumlah kode, tetapi memberikan kustomisasi yang lebih kuat.
Dukungan React
Proyek @solana/web3.js juga mencakup pustaka bernama @solana/react, yang menyediakan beberapa React Hook dan memiliki fungsi bawaan seperti signIn.
Ringkasan
Peluncuran versi 2.x dari @solana/web3.js menunjukkan komitmen tim Solana terhadap pengembangan dan perbaikan yang berkelanjutan. Versi baru ini memberikan pengembang cara yang lebih efisien, fleksibel, dan dapat disesuaikan untuk berinteraksi dengan jaringan Solana, dan diharapkan dapat mendorong adopsi dan perkembangan platform tersebut. Meskipun saat ini masih dalam tahap awal, seiring waktu, diyakini akan ada lebih banyak proyek yang bermigrasi ke versi baru ini.