Solana Web3.js versi 2.x: Peningkatan besar pada pustaka JavaScript yang kaya fitur
Solana Web3.js sebagai pustaka JavaScript yang kaya fitur, resmi merilis versi 2.x pada bulan November tahun ini. Dibandingkan dengan versi 1.x, versi baru ini mengalami perubahan signifikan dalam struktur dan cara penggunaannya. Artikel ini akan memberikan gambaran tentang perubahan utama ini untuk membantu para pengembang mempersiapkan migrasi di masa depan.
Perbandingan Versi
Pustaka Web3.js versi 1.x relatif sederhana dan langsung digunakan. Ini hanya memiliki satu paket utama: @solana/web3.js, semua fungsi terkonsentrasi dalam paket ini. Ini mengadopsi desain berbasis kelas, membungkus sejumlah besar operasi umum. Misalnya, kelas Connection menyediakan puluhan metode, hampir mencakup semua fungsi yang diperlukan pengembang.
Namun, desain ini juga membawa beberapa masalah. Meskipun fungsi yang sebenarnya digunakan oleh pengembang mungkin hanya sebagian kecil dari pustaka, seluruh kode pustaka akan diunduh ke perangkat pengguna, yang dapat menyebabkan waktu pemuatan menjadi lebih lama.
Versi 2.x mengambil pendekatan yang berbeda. Tim pengembang membagi kode sumber yang ada menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, dan @solana/transactions. Versi baru ini juga meninggalkan implementasi berbasis kelas, dan lebih banyak menggunakan pendekatan fungsi tunggal. Pendekatan ini menguntungkan untuk optimasi saat membangun kode JavaScript, kode yang tidak digunakan dapat dihapus, sehingga tidak akan diunduh ke perangkat pengguna.
Menurut statistik, penggunaan versi baru dari aplikasi terdesentralisasi (DApp) biasanya dapat menghasilkan sekitar 30% pengoptimalan ukuran kode. Jika hanya menggunakan sedikit fitur, proporsi pengoptimalan mungkin akan lebih tinggi.
Fitur penting lainnya dari versi 2.x adalah ketergantungan nol. Fitur ini mungkin tidak signifikan bagi banyak pengguna, tetapi mengingat serangan rantai pasokan yang baru-baru ini terjadi pada versi @solana/web3.js 1.95.5 dan 1.95.6, mengurangi ketergantungan eksternal dapat secara signifikan mengurangi risiko keamanan. Tim pengembang Web3.js memutuskan untuk lebih banyak menggunakan fungsi bawaan, menghilangkan ketergantungan eksternal dan pengenalan Polyfills.
Poin Perubahan Penting
terhubung
Pada versi 2.x, cara koneksi menjadi lebih fungsional:
javascript
import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("");
Ketika memanggil sendAndConfirmTransaction untuk mengirim transaksi, sistem akan secara otomatis melakukan permintaan HTTPS dan membangun koneksi WSS untuk berlangganan status transaksi, dan setelah transaksi dikonfirmasi, akan mengembalikan hash transaksi.
pasangan kunci
Dalam versi 2.x, kelas Keypair dan PublicKey yang ada sebelumnya telah digantikan oleh serangkaian fungsi. Misalnya, Anda dapat menggunakan await generateKeyPair() untuk menghasilkan pasangan kunci, daripada sebelumnya Keypair.generate(). Implementasi baru ini memanfaatkan Web Crypto API JavaScript, menggunakan implementasi Ed25519 asli.
mengirim transaksi
Versi 2.x tidak lagi menggunakan kelas Transaction dan VersionedTransaction. Metode terkait Program Sistem 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. Berikut adalah contoh penggunaan fungsi pipe untuk mengimplementasikan fungsi transfer:
javascript
import { pipe } from "@solana/web3.js";
Perlu dicatat bahwa proyek @solana/web3.js juga mencakup sebuah pustaka bernama @solana/react, yang menyediakan beberapa React Hook dan dilengkapi dengan fungsi-fungsi seperti signIn.
Ringkasan
Rilis 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, yang diharapkan dapat mendorong adopsi dan pengembangan lebih lanjut dari platform 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.
14 Suka
Hadiah
14
5
Bagikan
Komentar
0/400
rekt_but_resilient
· 07-11 16:59
Akhirnya upgrade, pengembangannya sangat menyakitkan.
Lihat AsliBalas0
ThatsNotARugPull
· 07-08 18:57
Akhirnya berhasil menurunkan berat badan
Lihat AsliBalas0
CompoundPersonality
· 07-08 18:57
Akhirnya tidak perlu lagi mengerjakan banyak kode.
Rilis versi 2.x Solana Web3.js mengoptimalkan ukuran kode yang menurun 30%
Solana Web3.js versi 2.x: Peningkatan besar pada pustaka JavaScript yang kaya fitur
Solana Web3.js sebagai pustaka JavaScript yang kaya fitur, resmi merilis versi 2.x pada bulan November tahun ini. Dibandingkan dengan versi 1.x, versi baru ini mengalami perubahan signifikan dalam struktur dan cara penggunaannya. Artikel ini akan memberikan gambaran tentang perubahan utama ini untuk membantu para pengembang mempersiapkan migrasi di masa depan.
Perbandingan Versi
Pustaka Web3.js versi 1.x relatif sederhana dan langsung digunakan. Ini hanya memiliki satu paket utama: @solana/web3.js, semua fungsi terkonsentrasi dalam paket ini. Ini mengadopsi desain berbasis kelas, membungkus sejumlah besar operasi umum. Misalnya, kelas Connection menyediakan puluhan metode, hampir mencakup semua fungsi yang diperlukan pengembang.
Namun, desain ini juga membawa beberapa masalah. Meskipun fungsi yang sebenarnya digunakan oleh pengembang mungkin hanya sebagian kecil dari pustaka, seluruh kode pustaka akan diunduh ke perangkat pengguna, yang dapat menyebabkan waktu pemuatan menjadi lebih lama.
Versi 2.x mengambil pendekatan yang berbeda. Tim pengembang membagi kode sumber yang ada menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, dan @solana/transactions. Versi baru ini juga meninggalkan implementasi berbasis kelas, dan lebih banyak menggunakan pendekatan fungsi tunggal. Pendekatan ini menguntungkan untuk optimasi saat membangun kode JavaScript, kode yang tidak digunakan dapat dihapus, sehingga tidak akan diunduh ke perangkat pengguna.
Menurut statistik, penggunaan versi baru dari aplikasi terdesentralisasi (DApp) biasanya dapat menghasilkan sekitar 30% pengoptimalan ukuran kode. Jika hanya menggunakan sedikit fitur, proporsi pengoptimalan mungkin akan lebih tinggi.
Fitur penting lainnya dari versi 2.x adalah ketergantungan nol. Fitur ini mungkin tidak signifikan bagi banyak pengguna, tetapi mengingat serangan rantai pasokan yang baru-baru ini terjadi pada versi @solana/web3.js 1.95.5 dan 1.95.6, mengurangi ketergantungan eksternal dapat secara signifikan mengurangi risiko keamanan. Tim pengembang Web3.js memutuskan untuk lebih banyak menggunakan fungsi bawaan, menghilangkan ketergantungan eksternal dan pengenalan Polyfills.
Poin Perubahan Penting
terhubung
Pada versi 2.x, cara koneksi menjadi lebih fungsional:
javascript import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("");
Ketika memanggil sendAndConfirmTransaction untuk mengirim transaksi, sistem akan secara otomatis melakukan permintaan HTTPS dan membangun koneksi WSS untuk berlangganan status transaksi, dan setelah transaksi dikonfirmasi, akan mengembalikan hash transaksi.
pasangan kunci
Dalam versi 2.x, kelas Keypair dan PublicKey yang ada sebelumnya telah digantikan oleh serangkaian fungsi. Misalnya, Anda dapat menggunakan await generateKeyPair() untuk menghasilkan pasangan kunci, daripada sebelumnya Keypair.generate(). Implementasi baru ini memanfaatkan Web Crypto API JavaScript, menggunakan implementasi Ed25519 asli.
mengirim transaksi
Versi 2.x tidak lagi menggunakan kelas Transaction dan VersionedTransaction. Metode terkait Program Sistem 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. Berikut adalah contoh penggunaan fungsi pipe untuk mengimplementasikan fungsi transfer:
javascript import { pipe } from "@solana/web3.js";
const transaction = pipe( createTransaction({ version: 0 }), addInstruction(getTransferSolInstruction({ dari: pengirim, untuk: penerima, jumlah: transferAmount, })), setTransactionFeePayer(pengirim), );
const signature = await sendAndConfirmTransaction(rpc, transaction, [senderKeypair]);
Dukungan React
Perlu dicatat bahwa proyek @solana/web3.js juga mencakup sebuah pustaka bernama @solana/react, yang menyediakan beberapa React Hook dan dilengkapi dengan fungsi-fungsi seperti signIn.
Ringkasan
Rilis 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, yang diharapkan dapat mendorong adopsi dan pengembangan lebih lanjut dari platform ini.