Solana Web3.js Versi 2.x: Pemisahan Fitur dan Optimasi Kinerja
Solana Web3.js sebagai perpustakaan JavaScript yang kaya fitur, secara resmi merilis versi 2.x pada bulan November tahun ini. Dibandingkan dengan versi 1.x, versi baru ini mengalami perubahan yang signifikan dalam struktur dan cara implementasinya. Artikel ini akan merangkum perubahan utama tersebut untuk membantu pengembang mempersiapkan migrasi di masa depan.
Perbandingan Versi
Fitur utama dari versi 1.x adalah sederhana dan mudah digunakan. Ini hanya mencakup satu paket @solana/web3.js, menggunakan desain berbasis kelas, dan membungkus banyak operasi umum. Misalnya, kelas Connection menyediakan puluhan metode yang hampir mencakup semua fungsi yang dibutuhkan pengembang. Namun, desain ini juga membawa beberapa masalah, seperti ukuran kode yang besar, perangkat pengguna perlu mengunduh banyak kode yang mungkin tidak diperlukan.
Versi 2.x mengadopsi strategi yang berbeda. Tim pengembang membagi kode sumber menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, @solana/rpc, dan lainnya. Versi baru ini meninggalkan implementasi berbasis kelas dan beralih ke pendekatan fungsi tunggal, yang menguntungkan untuk optimasi saat membangun kode JavaScript. Kode yang tidak digunakan akan dihapus dan tidak akan diunduh ke perangkat pengguna. Menurut statistik resmi, DApp yang menggunakan versi baru biasanya dapat mencapai optimasi ukuran hingga 30%, dan jika hanya menggunakan sejumlah kecil fitur, proporsi optimasi mungkin lebih tinggi.
Fitur penting lain 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 dapat secara signifikan mengurangi risiko keamanan. Versi baru ini lebih banyak menggunakan fungsi bawaan, menghilangkan 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, melainkan melalui pengaturan alamat permintaan RPC untuk membuat pengirim permintaan. Misalnya, saat mengirim transaksi, akan secara otomatis memulai permintaan HTTPS dan membangun koneksi WSS untuk berlangganan status transaksi.
pasangan kunci
Pengolahan yang terkait dengan kunci publik dan kunci privat juga telah berubah. Kelas Keypair dan PublicKey yang umum digunakan di versi 1.x telah digantikan oleh beberapa fungsi. Misalnya, sekarang menggunakan await generateKeyPair() untuk menghasilkan pasangan kunci, bukan Keypair.generate() sebelumnya. Implementasi baru memanfaatkan Web Crypto API JavaScript, menggunakan implementasi Ed25519 asli, yang menyebabkan beberapa metode menjadi asinkron.
kirim transaksi
Versi 2.x tidak lagi menggunakan 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. Pengembang dapat menggunakan fungsi pipe untuk mengimplementasikan fungsi transfer yang sebelumnya ada di versi 1.x. Meskipun jumlah kode meningkat, ini 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, dengan fitur bawaan seperti signIn.
Ringkasan
Peluncuran versi 2.x dari Solana Web3.js menunjukkan komitmen tim pengembang terhadap perbaikan berkelanjutan. Versi baru ini memberikan cara yang lebih efisien, fleksibel, dan dapat disesuaikan bagi pengembang untuk berinteraksi dengan jaringan Solana, yang diharapkan dapat mendorong perkembangan dan penerapan lebih lanjut dari platform tersebut. Meskipun saat ini banyak proyek yang belum bermigrasi ke versi baru, memahami perubahan ini akan membantu pengembang mempersiapkan diri untuk transisi di masa depan.
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.
11 Suka
Hadiah
11
5
Bagikan
Komentar
0/400
StablecoinArbitrageur
· 07-30 14:36
*menyesuaikan kacamata* hmm... berdasarkan analisis metrik kinerja saya, membagi menjadi modul seharusnya mengurangi latensi sebesar ~47 poin dasar
Lihat AsliBalas0
MissingSats
· 07-30 14:34
Akhirnya menunggu upgrade sudah tiba setelah setahun.
Lihat AsliBalas0
LucidSleepwalker
· 07-30 14:34
2.x datang, saya tidak bisa belajar lagi
Lihat AsliBalas0
DuckFluff
· 07-30 14:27
Hah, masih menggunakan versi 1.x, cepatlah upgrade!
Lihat AsliBalas0
BrokenYield
· 07-30 14:15
akhirnya ada manajemen risiko di sol... sudah lama sekali, smh
Solana Web3.js 2.x: Rekayasa Modular dan Peningkatan Kinerja
Solana Web3.js Versi 2.x: Pemisahan Fitur dan Optimasi Kinerja
Solana Web3.js sebagai perpustakaan JavaScript yang kaya fitur, secara resmi merilis versi 2.x pada bulan November tahun ini. Dibandingkan dengan versi 1.x, versi baru ini mengalami perubahan yang signifikan dalam struktur dan cara implementasinya. Artikel ini akan merangkum perubahan utama tersebut untuk membantu pengembang mempersiapkan migrasi di masa depan.
Perbandingan Versi
Fitur utama dari versi 1.x adalah sederhana dan mudah digunakan. Ini hanya mencakup satu paket @solana/web3.js, menggunakan desain berbasis kelas, dan membungkus banyak operasi umum. Misalnya, kelas Connection menyediakan puluhan metode yang hampir mencakup semua fungsi yang dibutuhkan pengembang. Namun, desain ini juga membawa beberapa masalah, seperti ukuran kode yang besar, perangkat pengguna perlu mengunduh banyak kode yang mungkin tidak diperlukan.
Versi 2.x mengadopsi strategi yang berbeda. Tim pengembang membagi kode sumber menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, @solana/rpc, dan lainnya. Versi baru ini meninggalkan implementasi berbasis kelas dan beralih ke pendekatan fungsi tunggal, yang menguntungkan untuk optimasi saat membangun kode JavaScript. Kode yang tidak digunakan akan dihapus dan tidak akan diunduh ke perangkat pengguna. Menurut statistik resmi, DApp yang menggunakan versi baru biasanya dapat mencapai optimasi ukuran hingga 30%, dan jika hanya menggunakan sejumlah kecil fitur, proporsi optimasi mungkin lebih tinggi.
Fitur penting lain 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 dapat secara signifikan mengurangi risiko keamanan. Versi baru ini lebih banyak menggunakan fungsi bawaan, menghilangkan 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, melainkan melalui pengaturan alamat permintaan RPC untuk membuat pengirim permintaan. Misalnya, saat mengirim transaksi, akan secara otomatis memulai permintaan HTTPS dan membangun koneksi WSS untuk berlangganan status transaksi.
pasangan kunci
Pengolahan yang terkait dengan kunci publik dan kunci privat juga telah berubah. Kelas Keypair dan PublicKey yang umum digunakan di versi 1.x telah digantikan oleh beberapa fungsi. Misalnya, sekarang menggunakan await generateKeyPair() untuk menghasilkan pasangan kunci, bukan Keypair.generate() sebelumnya. Implementasi baru memanfaatkan Web Crypto API JavaScript, menggunakan implementasi Ed25519 asli, yang menyebabkan beberapa metode menjadi asinkron.
kirim transaksi
Versi 2.x tidak lagi menggunakan 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. Pengembang dapat menggunakan fungsi pipe untuk mengimplementasikan fungsi transfer yang sebelumnya ada di versi 1.x. Meskipun jumlah kode meningkat, ini 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, dengan fitur bawaan seperti signIn.
Ringkasan
Peluncuran versi 2.x dari Solana Web3.js menunjukkan komitmen tim pengembang terhadap perbaikan berkelanjutan. Versi baru ini memberikan cara yang lebih efisien, fleksibel, dan dapat disesuaikan bagi pengembang untuk berinteraksi dengan jaringan Solana, yang diharapkan dapat mendorong perkembangan dan penerapan lebih lanjut dari platform tersebut. Meskipun saat ini banyak proyek yang belum bermigrasi ke versi baru, memahami perubahan ini akan membantu pengembang mempersiapkan diri untuk transisi di masa depan.