Solana Web3.js 2.x sürümü: Fonksiyonların ayrılması ve performans optimizasyonu
Solana Web3.js, zengin özelliklere sahip bir JavaScript kütüphanesi olarak, bu yılın Kasım ayında 2.x sürümünü resmi olarak yayınladı. 1.x sürümüne kıyasla, yeni sürümde yapı ve uygulama yöntemlerinde belirgin değişiklikler oldu. Bu makalede, bu önemli değişikliklerin bir özeti verilecek ve geliştiricilerin gelecekteki geçişe hazırlanmalarına yardımcı olunacaktır.
Versiyon Karşılaştırması
1.x sürümünün ana özellikleri basit ve kullanışlı olmasıdır. Sadece bir @solana/web3.js paketi içerir, sınıf tabanlı bir tasarım benimser ve çok sayıda yaygın işlemi kapsar. Örneğin, Connection sınıfı, geliştiricilerin ihtiyaç duyduğu tüm işlevleri neredeyse kapsayan onlarca yöntem sunar. Ancak, bu tasarım bazı sorunları da beraberinde getirir; örneğin, kod kütüphanesi büyük bir boyuta sahiptir ve kullanıcı cihazlarının ihtiyaç duymadığı çok sayıda kodu indirmesi gerekebilir.
2.x versiyonu farklı bir strateji benimsemiştir. Geliştirme ekibi, kod tabanını @solana/accounts, @solana/codecs, @solana/rpc gibi birçok küçük modüle ayırmıştır. Yeni versiyon, sınıf tabanlı uygulamayı bırakmış ve bunun yerine tek bir fonksiyon kullanma yoluna gitmiştir, bu da JavaScript kodunun derlenmesi sırasında optimizasyon için faydalıdır. Kullanılmayan kodlar silinecek ve kullanıcı cihazlarına indirilmeyecektir. Resmi istatistiklere göre, yeni versiyonu kullanan DApp'ler genellikle %30 oranında bir boyut optimizasyonu elde edebilmektedir, eğer sadece az sayıda özellik kullanılırsa, 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. 1.95.5 ve 1.95.6 sürümlerinde meydana gelen tedarik zinciri saldırıları göz önüne alındığında, dış bağımlılıkların azaltılması güvenlik risklerini önemli ölçüde azaltabilir. Yeni sürüm, daha fazla yerel işlev kullanmakta ve dış bağımlılıkların ve Polyfills'in kullanımını ortadan kaldırmaktadır.
Önemli Değişiklikler
bağlantı
2.x sürümü, bağlantıları işlemek için daha fonksiyonel bir yaklaşım benimsemiştir. Artık Connection sınıfı kullanılmamakta, bunun yerine RPC istek adresi yapılandırılarak istek göndericisi oluşturulmaktadır. Örneğin, işlem gönderildiğinde, otomatik olarak HTTPS isteği başlatılacak ve işlem durumunu abonelik için WSS bağlantısı kurulacaktır.
anahtar çifti
Açık anahtar ve özel anahtar ile ilgili işlemler de değişti. 1.x sürümünde yaygın olarak kullanılan Keypair ve PublicKey sınıfları bazı fonksiyonlarla değiştirildi. Örneğin, artık anahtar çiftini oluşturmak için await generateKeyPair() kullanılıyor, öncekilerin yerine Keypair.generate(). Yeni uygulama, JavaScript’in Web Crypto API’sini kullanarak yerel Ed25519 uygulamasını kullanıyor, bu da bazı yöntemlerin asenkron hale gelmesine neden oldu.
işlem gönder
2.x sürümü artık Transaction ve VersionedTransaction sınıflarını kullanmıyor. System Program ile ilgili yöntemler de başka yerlerden getirilmelidir. Örneğin, transfer komutu 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. Geliştiriciler, pipe fonksiyonu aracılığıyla aslında 1.x sürümündeki para transferi işlevini gerçekleştirebilirler. Kod miktarı biraz artsa da, daha güçlü bir özelleştirme imkanı sunmaktadır.
React desteği
Dikkate değer olan, @solana/web3.js projesinde @solana/react adında bir kütüphane bulunduğudur; bu kütüphane bazı React Hook'ları sunmakta ve signIn gibi işlevleri içermektedir.
Özet
Solana Web3.js 2.x sürümünün yayımlanması, geliştirme ekibinin sürekli iyileştirme taahhüdünü göstermektedir. Yeni sürüm, geliştiricilere Solana ağıyla etkileşimde bulunmanın daha verimli, esnek ve özelleştirilebilir bir yolunu sunmakta, bu da platformun daha fazla gelişimi ve uygulaması için umut vaat etmektedir. Şu anda birçok projenin henüz yeni sürüme geçmediği halde, bu değişiklikleri anlamak, geliştiricilerin gelecekteki geçişe hazırlanmasına yardımcı olacaktır.
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.
11 Likes
Reward
11
7
Share
Comment
0/400
ForumLurker
· 6h ago
Bu alt paketi bir süre kendim incelemem gerekecek.
View OriginalReply0
DiamondHands
· 10h ago
Hacim küçüldü, biraz daha hızlı olamaz mı?
View OriginalReply0
StablecoinArbitrageur
· 07-30 14:36
*gözlüklerini ayarlıyor* hmm... performans ölçümlerim analizine dayanarak, modüllere ayırmak gecikme süresini ~47 baz puan azaltmalıdır.
View OriginalReply0
MissingSats
· 07-30 14:34
Nihayet güncellemeyi bekledim, bir yıl boyunca bekledim.
View OriginalReply0
LucidSleepwalker
· 07-30 14:34
2.x geldi, artık öğrenemiyorum.
View OriginalReply0
DuckFluff
· 07-30 14:27
Hâlâ 1.x kullanıyorsan hemen güncelle!
View OriginalReply0
BrokenYield
· 07-30 14:15
sonunda sol'da biraz risk yönetimi... bu kadar zaman aldı smh
Solana Web3.js 2.x: Modüler Yeniden Yapılandırma ve Performans Artışı
Solana Web3.js 2.x sürümü: Fonksiyonların ayrılması ve performans optimizasyonu
Solana Web3.js, zengin özelliklere sahip bir JavaScript kütüphanesi olarak, bu yılın Kasım ayında 2.x sürümünü resmi olarak yayınladı. 1.x sürümüne kıyasla, yeni sürümde yapı ve uygulama yöntemlerinde belirgin değişiklikler oldu. Bu makalede, bu önemli değişikliklerin bir özeti verilecek ve geliştiricilerin gelecekteki geçişe hazırlanmalarına yardımcı olunacaktır.
Versiyon Karşılaştırması
1.x sürümünün ana özellikleri basit ve kullanışlı olmasıdır. Sadece bir @solana/web3.js paketi içerir, sınıf tabanlı bir tasarım benimser ve çok sayıda yaygın işlemi kapsar. Örneğin, Connection sınıfı, geliştiricilerin ihtiyaç duyduğu tüm işlevleri neredeyse kapsayan onlarca yöntem sunar. Ancak, bu tasarım bazı sorunları da beraberinde getirir; örneğin, kod kütüphanesi büyük bir boyuta sahiptir ve kullanıcı cihazlarının ihtiyaç duymadığı çok sayıda kodu indirmesi gerekebilir.
2.x versiyonu farklı bir strateji benimsemiştir. Geliştirme ekibi, kod tabanını @solana/accounts, @solana/codecs, @solana/rpc gibi birçok küçük modüle ayırmıştır. Yeni versiyon, sınıf tabanlı uygulamayı bırakmış ve bunun yerine tek bir fonksiyon kullanma yoluna gitmiştir, bu da JavaScript kodunun derlenmesi sırasında optimizasyon için faydalıdır. Kullanılmayan kodlar silinecek ve kullanıcı cihazlarına indirilmeyecektir. Resmi istatistiklere göre, yeni versiyonu kullanan DApp'ler genellikle %30 oranında bir boyut optimizasyonu elde edebilmektedir, eğer sadece az sayıda özellik kullanılırsa, 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. 1.95.5 ve 1.95.6 sürümlerinde meydana gelen tedarik zinciri saldırıları göz önüne alındığında, dış bağımlılıkların azaltılması güvenlik risklerini önemli ölçüde azaltabilir. Yeni sürüm, daha fazla yerel işlev kullanmakta ve dış bağımlılıkların ve Polyfills'in kullanımını ortadan kaldırmaktadır.
Önemli Değişiklikler
bağlantı
2.x sürümü, bağlantıları işlemek için daha fonksiyonel bir yaklaşım benimsemiştir. Artık Connection sınıfı kullanılmamakta, bunun yerine RPC istek adresi yapılandırılarak istek göndericisi oluşturulmaktadır. Örneğin, işlem gönderildiğinde, otomatik olarak HTTPS isteği başlatılacak ve işlem durumunu abonelik için WSS bağlantısı kurulacaktır.
anahtar çifti
Açık anahtar ve özel anahtar ile ilgili işlemler de değişti. 1.x sürümünde yaygın olarak kullanılan Keypair ve PublicKey sınıfları bazı fonksiyonlarla değiştirildi. Örneğin, artık anahtar çiftini oluşturmak için await generateKeyPair() kullanılıyor, öncekilerin yerine Keypair.generate(). Yeni uygulama, JavaScript’in Web Crypto API’sini kullanarak yerel Ed25519 uygulamasını kullanıyor, bu da bazı yöntemlerin asenkron hale gelmesine neden oldu.
işlem gönder
2.x sürümü artık Transaction ve VersionedTransaction sınıflarını kullanmıyor. System Program ile ilgili yöntemler de başka yerlerden getirilmelidir. Örneğin, transfer komutu 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. Geliştiriciler, pipe fonksiyonu aracılığıyla aslında 1.x sürümündeki para transferi işlevini gerçekleştirebilirler. Kod miktarı biraz artsa da, daha güçlü bir özelleştirme imkanı sunmaktadır.
React desteği
Dikkate değer olan, @solana/web3.js projesinde @solana/react adında bir kütüphane bulunduğudur; bu kütüphane bazı React Hook'ları sunmakta ve signIn gibi işlevleri içermektedir.
Özet
Solana Web3.js 2.x sürümünün yayımlanması, geliştirme ekibinin sürekli iyileştirme taahhüdünü göstermektedir. Yeni sürüm, geliştiricilere Solana ağıyla etkileşimde bulunmanın daha verimli, esnek ve özelleştirilebilir bir yolunu sunmakta, bu da platformun daha fazla gelişimi ve uygulaması için umut vaat etmektedir. Şu anda birçok projenin henüz yeni sürüme geçmediği halde, bu değişiklikleri anlamak, geliştiricilerin gelecekteki geçişe hazırlanmasına yardımcı olacaktır.