Rilis versi 2.x Solana Web3.js mengoptimalkan ukuran kode yang menurun 30%

robot
Pembuatan abstrak sedang berlangsung

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.

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

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.

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

SOL-4.45%
Lihat Asli
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.
  • Hadiah
  • 5
  • Bagikan
Komentar
0/400
rekt_but_resilientvip
· 07-11 16:59
Akhirnya upgrade, pengembangannya sangat menyakitkan.
Lihat AsliBalas0
ThatsNotARugPullvip
· 07-08 18:57
Akhirnya berhasil menurunkan berat badan
Lihat AsliBalas0
CompoundPersonalityvip
· 07-08 18:57
Akhirnya tidak perlu lagi mengerjakan banyak kode.
Lihat AsliBalas0
BtcDailyResearchervip
· 07-08 18:45
Terpercaya, modular adalah yang tepat.
Lihat AsliBalas0
gas_fee_traumavip
· 07-08 18:30
Solana semakin kuat lagi
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)