Solana Web3.js 2.x: Inovasi dan Tantangan yang Bersamaan
Versi Solana Web3.js 2.x resmi diluncurkan pada bulan November tahun ini, dan dibandingkan dengan versi 1.x, versi baru ini membawa perubahan yang signifikan. Meskipun saat ini tingkat penggunaan versi 2.x masih rendah, banyak pustaka yang banyak digunakan belum melakukan migrasi, tetapi memahami perubahan ini sangat penting untuk pekerjaan pengembangan di masa depan.
Perbandingan Versi
Versi 1.x terkenal karena kesederhanaannya, hanya perlu mengimpor satu paket @solana/web3.js. Ini didasarkan pada desain kelas, seperti kelas Connection, yang membungkus banyak operasi umum, memberikan cakupan fungsi yang komprehensif bagi pengembang. Namun, desain ini juga membawa satu masalah: bahkan jika pengembang hanya menggunakan sedikit fungsi, seluruh kode besar akan diunduh ke perangkat pengguna.
Sebaliknya, versi 2.x mengambil pendekatan modular dengan membagi repositori kode menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, dan lainnya. Versi baru ini meninggalkan implementasi berbasis kelas dan beralih ke penggunaan fungsi tunggal, yang membantu dalam optimasi saat membangun kode JavaScript. Kode yang tidak digunakan akan dihapus dan tidak akan diunduh ke perangkat pengguna. Menurut statistik resmi, aplikasi terdesentralisasi (DApp) yang menggunakan versi baru biasanya dapat mencapai sekitar 30% optimasi ukuran kode, dan untuk aplikasi yang hanya menggunakan sedikit fitur, proporsi optimasinya mungkin lebih tinggi.
Perubahan ini menuntut kualitas dokumentasi yang lebih tinggi dari tim Solana. Bagaimana membantu pengembang dengan cepat menemukan fungsi yang diperlukan menjadi masalah kunci. Saat ini, nama paket versi baru memiliki semantik yang baik, yang secara tertentu mengurangi kesulitan migrasi bagi pengembang.
Namun, karena versi 2.x baru saja dirilis, banyak proyek yang belum melakukan migrasi. Dokumentasi dan contoh yang relevan juga relatif terbatas, terutama dalam hal penjelasan penggunaan fungsi bawaan runtime yang kurang, yang mungkin akan menyebabkan beberapa kebingungan bagi para pengembang.
Fitur penting lainnya dari versi 2.x adalah tanpa ketergantungan. Karakteristik ini memiliki arti penting untuk meningkatkan keamanan, terutama mengingat serangan rantai pasokan yang terjadi pada versi @solana/web3.js 1.95.5 dan 1.95.6 pada awal bulan Desember tahun ini. Tim pengembang memutuskan untuk lebih memanfaatkan fitur bawaan, mengurangi penggunaan ketergantungan eksternal dan Polyfills, untuk mengurangi risiko keamanan.
Poin Perubahan Penting
cara koneksi
Versi 2.x telah mengadopsi pendekatan yang lebih fungsional untuk menangani koneksi. Versi baru tidak lagi bergantung pada kelas Connection, tetapi mengonfigurasi alamat permintaan RPC dan membuat pengirim permintaan dengan cara fungsional.
pengolahan pasangan kunci
Dalam manajemen pasangan kunci, versi 2.x juga mengalami perubahan besar. Kelas Keypair dan PublicKey yang sebelumnya digantikan oleh serangkaian fungsi. Misalnya, sekarang menggunakan await generateKeyPair() untuk menghasilkan pasangan kunci, bukan lagi Keypair.generate() sebelumnya. Implementasi baru lebih memanfaatkan Web Crypto API JavaScript, menggunakan implementasi Ed25519 asli, yang menyebabkan beberapa metode menjadi operasi asinkron.
Pengiriman transaksi
Versi 2.x telah menghapus kelas Transaction dan VersionedTransaction, serta menghilangkan metode terkait Program Sistem. Pengembang sekarang perlu mengimpor fungsi-fungsi ini dari tempat lain, seperti menggunakan fungsi getTransferSolInstruction dari @solana-program/system untuk mengimplementasikan instruksi transfer.
Versi baru menyediakan bentuk pipe yang umum digunakan dalam pemrograman fungsional, sehingga pembangunan dan pengiriman transaksi menjadi lebih fleksibel dan dapat disesuaikan. Transaksi tidak lagi dimulai melalui Connection, tetapi dihasilkan melalui Penyedia RPC kustom untuk menyelesaikan fungsi tertentu. Meskipun cara ini menambah jumlah kode, tetapi meningkatkan kemampuan kustomisasi.
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, yang memberikan kemudahan bagi pengembang React.
Ringkasan
Peluncuran versi 2.x dari Solana Web3.js menunjukkan komitmen tim pengembang terhadap perbaikan yang berkelanjutan. Versi baru ini menawarkan cara interaksi jaringan Solana yang lebih efisien, fleksibel, dan dapat disesuaikan bagi para pengembang, diharapkan dapat mendorong perkembangan dan aplikasi lebih lanjut dari platform ini. Meskipun saat ini menghadapi beberapa tantangan, seiring dengan penyesuaian bertahap ekosistem, versi 2.x diharapkan menjadi standar baru dalam pengembangan Solana.
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
2
Bagikan
Komentar
0/400
screenshot_gains
· 07-11 09:02
Versi lama terlihat sangat cantik tetapi terlalu besar.
Lihat AsliBalas0
BoredApeResistance
· 07-09 10:01
Ulasan modul yang baik, ukurannya kecil sampai tidak masuk akal.
Solana Web3.js 2.x: Desain modular membawa peningkatan kinerja dan tantangan pengembangan
Solana Web3.js 2.x: Inovasi dan Tantangan yang Bersamaan
Versi Solana Web3.js 2.x resmi diluncurkan pada bulan November tahun ini, dan dibandingkan dengan versi 1.x, versi baru ini membawa perubahan yang signifikan. Meskipun saat ini tingkat penggunaan versi 2.x masih rendah, banyak pustaka yang banyak digunakan belum melakukan migrasi, tetapi memahami perubahan ini sangat penting untuk pekerjaan pengembangan di masa depan.
Perbandingan Versi
Versi 1.x terkenal karena kesederhanaannya, hanya perlu mengimpor satu paket @solana/web3.js. Ini didasarkan pada desain kelas, seperti kelas Connection, yang membungkus banyak operasi umum, memberikan cakupan fungsi yang komprehensif bagi pengembang. Namun, desain ini juga membawa satu masalah: bahkan jika pengembang hanya menggunakan sedikit fungsi, seluruh kode besar akan diunduh ke perangkat pengguna.
Sebaliknya, versi 2.x mengambil pendekatan modular dengan membagi repositori kode menjadi beberapa modul kecil, seperti @solana/accounts, @solana/codecs, dan lainnya. Versi baru ini meninggalkan implementasi berbasis kelas dan beralih ke penggunaan fungsi tunggal, yang membantu dalam optimasi saat membangun kode JavaScript. Kode yang tidak digunakan akan dihapus dan tidak akan diunduh ke perangkat pengguna. Menurut statistik resmi, aplikasi terdesentralisasi (DApp) yang menggunakan versi baru biasanya dapat mencapai sekitar 30% optimasi ukuran kode, dan untuk aplikasi yang hanya menggunakan sedikit fitur, proporsi optimasinya mungkin lebih tinggi.
Perubahan ini menuntut kualitas dokumentasi yang lebih tinggi dari tim Solana. Bagaimana membantu pengembang dengan cepat menemukan fungsi yang diperlukan menjadi masalah kunci. Saat ini, nama paket versi baru memiliki semantik yang baik, yang secara tertentu mengurangi kesulitan migrasi bagi pengembang.
Namun, karena versi 2.x baru saja dirilis, banyak proyek yang belum melakukan migrasi. Dokumentasi dan contoh yang relevan juga relatif terbatas, terutama dalam hal penjelasan penggunaan fungsi bawaan runtime yang kurang, yang mungkin akan menyebabkan beberapa kebingungan bagi para pengembang.
Fitur penting lainnya dari versi 2.x adalah tanpa ketergantungan. Karakteristik ini memiliki arti penting untuk meningkatkan keamanan, terutama mengingat serangan rantai pasokan yang terjadi pada versi @solana/web3.js 1.95.5 dan 1.95.6 pada awal bulan Desember tahun ini. Tim pengembang memutuskan untuk lebih memanfaatkan fitur bawaan, mengurangi penggunaan ketergantungan eksternal dan Polyfills, untuk mengurangi risiko keamanan.
Poin Perubahan Penting
cara koneksi
Versi 2.x telah mengadopsi pendekatan yang lebih fungsional untuk menangani koneksi. Versi baru tidak lagi bergantung pada kelas Connection, tetapi mengonfigurasi alamat permintaan RPC dan membuat pengirim permintaan dengan cara fungsional.
pengolahan pasangan kunci
Dalam manajemen pasangan kunci, versi 2.x juga mengalami perubahan besar. Kelas Keypair dan PublicKey yang sebelumnya digantikan oleh serangkaian fungsi. Misalnya, sekarang menggunakan await generateKeyPair() untuk menghasilkan pasangan kunci, bukan lagi Keypair.generate() sebelumnya. Implementasi baru lebih memanfaatkan Web Crypto API JavaScript, menggunakan implementasi Ed25519 asli, yang menyebabkan beberapa metode menjadi operasi asinkron.
Pengiriman transaksi
Versi 2.x telah menghapus kelas Transaction dan VersionedTransaction, serta menghilangkan metode terkait Program Sistem. Pengembang sekarang perlu mengimpor fungsi-fungsi ini dari tempat lain, seperti menggunakan fungsi getTransferSolInstruction dari @solana-program/system untuk mengimplementasikan instruksi transfer.
Versi baru menyediakan bentuk pipe yang umum digunakan dalam pemrograman fungsional, sehingga pembangunan dan pengiriman transaksi menjadi lebih fleksibel dan dapat disesuaikan. Transaksi tidak lagi dimulai melalui Connection, tetapi dihasilkan melalui Penyedia RPC kustom untuk menyelesaikan fungsi tertentu. Meskipun cara ini menambah jumlah kode, tetapi meningkatkan kemampuan kustomisasi.
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, yang memberikan kemudahan bagi pengembang React.
Ringkasan
Peluncuran versi 2.x dari Solana Web3.js menunjukkan komitmen tim pengembang terhadap perbaikan yang berkelanjutan. Versi baru ini menawarkan cara interaksi jaringan Solana yang lebih efisien, fleksibel, dan dapat disesuaikan bagi para pengembang, diharapkan dapat mendorong perkembangan dan aplikasi lebih lanjut dari platform ini. Meskipun saat ini menghadapi beberapa tantangan, seiring dengan penyesuaian bertahap ekosistem, versi 2.x diharapkan menjadi standar baru dalam pengembangan Solana.