Solana Web3.js 2.x Sürümü: Özelliklerle Dolu JavaScript Kütüphanesinde Büyük Güncelleme
Solana Web3.js, zengin özelliklere sahip bir JavaScript kütüphanesi olarak, bu yıl Kasım ayında 2.x sürümünü resmi olarak duyurdu. 1.x sürümüne kıyasla, yeni sürümde yapı ve kullanım şekli açısından önemli değişiklikler olmuştur. Bu makalede, bu ana değişiklikler özetlenecek ve geliştiricilerin gelecekteki geçiş için hazırlık yapmalarına yardımcı olunacaktır.
Versiyon Karşılaştırması
1.x sürümündeki Web3.js kütüphanesi kullanımı açısından oldukça basit ve doğrudandır. Tek bir ana paket içerir: @solana/web3.js, tüm işlevler bu pakette toplanmıştır. Sınıf tabanlı bir tasarım benimsemekte olup, yaygın olarak kullanılan birçok işlemi kapsar. Örneğin, Connection sınıfı, geliştiricilerin ihtiyaç duyduğu hemen hemen tüm işlevleri kapsayan onlarca yöntem sunmaktadır.
Ancak, bu tasarım bazı sorunları da beraberinde getiriyor. Geliştiricilerin gerçekten kullandığı işlevler, kütüphanedeki küçük bir bölüm olabilir, ancak tüm kod kütüphanesi kullanıcı cihazına indirilecektir, bu da yükleme sürelerinin uzamasına neden olabilir.
2.x versiyonu farklı bir yaklaşım benimsiyor. Geliştirici ekibi, mevcut kod tabanını birkaç küçük modüle ayırdı, örneğin @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers ve @solana/transactions. Yeni versiyon ayrıca sınıf tabanlı uygulamayı terk ederek daha çok tekil fonksiyonlar kullanıyor. Bu yaklaşım, JavaScript kodunun derlenmesi sırasında optimizasyon için faydalıdır; kullanılmayan kod silinebilir ve böylece kullanıcı cihazına indirilmez.
İstatistiklere göre, yeni sürümdeki merkeziyetsiz uygulamaların (DApp) kullanımı genellikle yaklaşık %30 oranında kod boyutu optimizasyonu sağlayabilir. Eğer yalnızca az sayıda özellik kullanılıyorsa, optimizasyon oranı daha yüksek olabilir.
2.x sürümünün bir diğer önemli özelliği sıfır bağımlılıktır. Bu özellik birçok kullanıcı için belirgin olmayabilir, ancak @solana/web3.js 1.95.5 ve 1.95.6 sürümlerinde meydana gelen tedarik zinciri saldırılarını göz önünde bulundurduğumuzda, dış bağımlılıkların azaltılması güvenlik risklerini önemli ölçüde azaltabilir. Web3.js geliştirme ekibi, dış bağımlılıkları ve Polyfills'in kullanımını ortadan kaldırarak daha fazla yerel işlevselliği kullanmaya karar verdi.
Önemli Değişiklikler
bağlantı
2.x sürümünde, bağlantı yöntemi daha işlevsel hale geldi:
javascript
import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("");
sendAndConfirmTransaction çağrıldığında, sistem otomatik olarak HTTPS isteği başlatır ve işlem durumunu abone olmak için WSS bağlantısı kurar, işlem onaylandıktan sonra işlem hash'ini döner.
anahtar çifti
2.x sürümünde, mevcut Keypair ve PublicKey sınıfları bir dizi fonksiyonla değiştirildi. Örneğin, await generateKeyPair() kullanarak anahtar çiftleri oluşturabilirsiniz, daha önceki Keypair.generate() yerine. Yeni uygulama, JavaScript'in Web Crypto API'sini kullanarak yerel Ed25519 uygulamasından yararlanmaktadır.
işlem gönder
2.x sürümü artık Transaction ve VersionedTransaction sınıflarını kullanmıyor. Sistem Program ile ilgili yöntemler de başka yerlerden içe aktarılmalıdır. Örneğin, transfer talimatı artık @solana-program/system içindeki getTransferSolInstruction fonksiyonunu çağırmayı gerektiriyor.
Yeni sürüm, fonksiyonel programlamada yaygın olarak kullanılan pipe biçimini sunmaktadır. Aşağıda, transfer işlevini gerçekleştirmek için pipe fonksiyonunun nasıl kullanılacağına dair bir örnek verilmiştir:
javascript
import { pipe } from "@solana/web3.js";
Dikkate değer olan, @solana/web3.js projesinin ayrıca signIn gibi işlevleri içeren bazı React Hook'ları sunan @solana/react adlı bir kütüphane içerdiğidir.
Özet
@solana/web3.js 2.x sürümünün piyasaya sürülmesi, Solana ekibinin sürekli gelişim ve iyileştirme taahhüdünü sergiliyor. Yeni sürüm, geliştiricilere Solana ağıyla etkileşimde bulunmak için daha verimli, esnek ve özelleştirilebilir bir yol sunarak, platformun daha fazla benimsenmesi ve gelişimini teşvik etmesi bekleniyor.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
14 Likes
Reward
14
5
Share
Comment
0/400
rekt_but_resilient
· 07-11 16:59
Nihayet güncellendi, geliştirmek çok acı vericiydi.
View OriginalReply0
ThatsNotARugPull
· 07-08 18:57
Sonunda zayıflama başarısını elde ettim.
View OriginalReply0
CompoundPersonality
· 07-08 18:57
Ah, sonunda bu kadar çok kod yazmak zorunda değilim.
Solana Web3.js 2.x sürümü yayımlandı, kod boyutu %30 düşüş sağladı.
Solana Web3.js 2.x Sürümü: Özelliklerle Dolu JavaScript Kütüphanesinde Büyük Güncelleme
Solana Web3.js, zengin özelliklere sahip bir JavaScript kütüphanesi olarak, bu yıl Kasım ayında 2.x sürümünü resmi olarak duyurdu. 1.x sürümüne kıyasla, yeni sürümde yapı ve kullanım şekli açısından önemli değişiklikler olmuştur. Bu makalede, bu ana değişiklikler özetlenecek ve geliştiricilerin gelecekteki geçiş için hazırlık yapmalarına yardımcı olunacaktır.
Versiyon Karşılaştırması
1.x sürümündeki Web3.js kütüphanesi kullanımı açısından oldukça basit ve doğrudandır. Tek bir ana paket içerir: @solana/web3.js, tüm işlevler bu pakette toplanmıştır. Sınıf tabanlı bir tasarım benimsemekte olup, yaygın olarak kullanılan birçok işlemi kapsar. Örneğin, Connection sınıfı, geliştiricilerin ihtiyaç duyduğu hemen hemen tüm işlevleri kapsayan onlarca yöntem sunmaktadır.
Ancak, bu tasarım bazı sorunları da beraberinde getiriyor. Geliştiricilerin gerçekten kullandığı işlevler, kütüphanedeki küçük bir bölüm olabilir, ancak tüm kod kütüphanesi kullanıcı cihazına indirilecektir, bu da yükleme sürelerinin uzamasına neden olabilir.
2.x versiyonu farklı bir yaklaşım benimsiyor. Geliştirici ekibi, mevcut kod tabanını birkaç küçük modüle ayırdı, örneğin @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers ve @solana/transactions. Yeni versiyon ayrıca sınıf tabanlı uygulamayı terk ederek daha çok tekil fonksiyonlar kullanıyor. Bu yaklaşım, JavaScript kodunun derlenmesi sırasında optimizasyon için faydalıdır; kullanılmayan kod silinebilir ve böylece kullanıcı cihazına indirilmez.
İstatistiklere göre, yeni sürümdeki merkeziyetsiz uygulamaların (DApp) kullanımı genellikle yaklaşık %30 oranında kod boyutu optimizasyonu sağlayabilir. Eğer yalnızca az sayıda özellik kullanılıyorsa, optimizasyon oranı daha yüksek olabilir.
2.x sürümünün bir diğer önemli özelliği sıfır bağımlılıktır. Bu özellik birçok kullanıcı için belirgin olmayabilir, ancak @solana/web3.js 1.95.5 ve 1.95.6 sürümlerinde meydana gelen tedarik zinciri saldırılarını göz önünde bulundurduğumuzda, dış bağımlılıkların azaltılması güvenlik risklerini önemli ölçüde azaltabilir. Web3.js geliştirme ekibi, dış bağımlılıkları ve Polyfills'in kullanımını ortadan kaldırarak daha fazla yerel işlevselliği kullanmaya karar verdi.
Önemli Değişiklikler
bağlantı
2.x sürümünde, bağlantı yöntemi daha işlevsel hale geldi:
javascript import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("");
sendAndConfirmTransaction çağrıldığında, sistem otomatik olarak HTTPS isteği başlatır ve işlem durumunu abone olmak için WSS bağlantısı kurar, işlem onaylandıktan sonra işlem hash'ini döner.
anahtar çifti
2.x sürümünde, mevcut Keypair ve PublicKey sınıfları bir dizi fonksiyonla değiştirildi. Örneğin, await generateKeyPair() kullanarak anahtar çiftleri oluşturabilirsiniz, daha önceki Keypair.generate() yerine. Yeni uygulama, JavaScript'in Web Crypto API'sini kullanarak yerel Ed25519 uygulamasından yararlanmaktadır.
işlem gönder
2.x sürümü artık Transaction ve VersionedTransaction sınıflarını kullanmıyor. Sistem Program ile ilgili yöntemler de başka yerlerden içe aktarılmalıdır. Örneğin, transfer talimatı artık @solana-program/system içindeki getTransferSolInstruction fonksiyonunu çağırmayı gerektiriyor.
Yeni sürüm, fonksiyonel programlamada yaygın olarak kullanılan pipe biçimini sunmaktadır. Aşağıda, transfer işlevini gerçekleştirmek için pipe fonksiyonunun nasıl kullanılacağına dair bir örnek verilmiştir:
javascript import { pipe } from "@solana/web3.js";
const transaction = pipe( createTransaction({ version: 0 }), addInstruction(getTransferSolInstruction({ gönderen: sender, alıcıya, miktar: transferAmount, })), setTransactionFeePayer(gönderen), );
const signature = await sendAndConfirmTransaction(rpc, transaction, [senderKeypair]);
React desteği
Dikkate değer olan, @solana/web3.js projesinin ayrıca signIn gibi işlevleri içeren bazı React Hook'ları sunan @solana/react adlı bir kütüphane içerdiğidir.
Özet
@solana/web3.js 2.x sürümünün piyasaya sürülmesi, Solana ekibinin sürekli gelişim ve iyileştirme taahhüdünü sergiliyor. Yeni sürüm, geliştiricilere Solana ağıyla etkileşimde bulunmak için daha verimli, esnek ve özelleştirilebilir bir yol sunarak, platformun daha fazla benimsenmesi ve gelişimini teşvik etmesi bekleniyor.