Solana Web3.js 2.x sürümü yayımlandı: Fonksiyonel programlama yeniden yapılandırması önemli iyileştirmeler sağladı

robot
Abstract generation in progress

Solana Web3.js 2.x Sürümü: Yenilikçi Fonksiyonel Programlama Deneyimi

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ımladı. Önceki 1.x sürümüne kıyasla, yeni sürümde önemli değişiklikler yapıldı. Bu makalede, ana değişiklikler özetlenecektir.

2.x sürümü yeni yayımlanmış olmasına rağmen, kullanımı henüz yaygınlaşmamış, birçok yaygın kullanılan kütüphane de geçiş yapmamıştır; ancak bu değişiklikleri anlamak, gelecekteki göç çalışmalarına büyük fayda sağlayacaktır.

Web3 Yeni Başlangıç Serisi: Şimdi @solana/web3.js 2.x ile Fonksiyonel Programlamaya Geçin

Versiyon Karşılaştırması

Inkar edilemez ki, eski sürüm kullanımı daha basit ve doğrudan. 1.x sürümü yalnızca bir @solana/web3.js paketi içeriyor ve tüm işlevler burada toplanmış. Sınıf tabanlı bir tasarıma dayanıyor ve çok sayıda yaygın işlemi kapsıyor. Örneğin, Connection sınıfı, geliştiricilerin ihtiyaç duyduğu tüm işlevleri neredeyse kapsayan onlarca yöntem sunuyor.

Ancak, bu tasarım bazı sorunlar da beraberinde getiriyor. Geliştiricilerin gerçekten kullandığı işlevlerin yalnızca çok küçük bir kısmı olabilir, ancak tüm kod kütüphanesi kullanıcı cihazına indirilecektir. Kütüphanenin kod miktarı büyük olduğu için bu biraz zaman alabilir.

Buna karşılık, 2.x sürümü mevcut kod tabanını @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions gibi bir dizi küçük modüle ayırdı. Aynı zamanda, yeni sürüm sınıf tabanlı uygulamalardan vazgeçerek daha fazla tek fonksiyon kullanımına yönelmiştir, bu da JavaScript kodu derlenirken optimizasyon açısından oldukça faydalıdır. Kullanılmayan kod silinecek ve kullanıcı cihazına indirilmeyecektir. Resmi belgeye göre, yeni sürümü kullanan DApp'ler genellikle %30 oranında boyut optimizasyonu elde edebilmektedir, eğer sadece az sayıda özellik kullanılıyorsa, optimizasyon oranı daha da yüksek olabilir.

Bu, Solana ekibinin belgelerinin kalitesine daha yüksek talepler getiriyor ve geliştiricilerin ihtiyaç duydukları işlevleri hızlı bir şekilde bulmalarını sağlamak önemli bir konu haline geldi. Görünüşe göre, paket adları iyi bir anlamsallığa sahip; isimlerinden yola çıkarak işlevlerini kabaca anlayabiliyoruz, bu da bir ölçüde geliştiricilerin geçiş zorluğunu azaltıyor.

Yeni yayınlandığı için birçok projenin henüz göç etmediği görülüyor. Solana Cookbook'ta 2.x sürümü ile ilgili örnekler de nispeten az. Ayrıca, yeni sürüm, anahtar çiftleri oluşturma gibi çalışma zamanı yerleşik işlevlerini kullanma eğiliminde; ancak bu işlevler hakkında belgelerde yeterli açıklama bulunmadığı için, geliştiricilerin bazı konularda kafalarının karışabileceği düşünülüyor.

2.x sürümünün bir diğer önemli özelliği sıfır bağımlılıktır. Bu, birçok kullanıcı için çok önemli olmayabilir, ancak bu yıl Aralık ayının başında @solana/web3.js 1.95.5 ve 1.95.6 sürümlerinde meydana gelen tedarik zinciri saldırısına bakıldığında, daha fazla dış girdi ve bağımlılık güvenlik olaylarının meydana gelme olasılığını önemli ölçüde artırmaktadır. 2.x sürümünün yayımlanmasıyla birlikte, Web3.js geliştirme ekibi daha fazla yerel işlev kullanmaya ve dış bağımlılıkların ve Polyfill'lerin getirilmesini iptal etmeye karar verdi. Gelecekte değişiklikler olabilir, ancak en azından şu anda, 2.x sürümü tüm dış bağımlılıkları ortadan kaldırmıştır.

Önemli Değişiklik Noktaları

bağlantı

1.x sürümünde, Connection sınıfı birçok yöntem sunar. Ancak temel işlevi, RPC istek adresini yapılandırarak bir istek gönderici oluşturmak ve ardından çeşitli istekleri göndermektir.

2.x versiyonu, bu işlevi gerçekleştirmek için daha fonksiyonel bir yaklaşım benimsemiştir. Örneğin, sendAndConfirmTransaction ile işlem gönderildiğinde, otomatik olarak HTTPS isteği başlatır ve işlem durumunu abone olmak için WSS bağlantısı kurar, işlem onaylandığında işlem hash'ini döndürür.

anahtar çifti

Açık anahtar ve özel anahtar ile ilgili kısımda da önemli değişiklikler oldu. 1.x sürümünde sıkça kullanılan Keypair ve PublicKey sınıfları artık mevcut değil, bunların yerini bazı fonksiyonlar aldı.

Örneğin, artık await generateKeyPair() ile anahtar çiftleri oluşturabilirsiniz, öncekilerin yerine Keypair.generate(). Yeni generateKeyPair'in bir Promise döndürdüğünü belirtmek önemlidir; çünkü yeni uygulama, mümkün olduğunca JavaScript'in Web Crypto API'sini kullanarak, yerel Ed25519 uygulamasını kullanmıştır. Web Crypto API'sinin birçok yöntemi asynchrondur. Ancak, bu değişiklik kabul edilemez değil; 2024'ün sona ermekte olduğu bu günlerde, JavaScript geliştiricileri Promise'lerle oldukça tanıdık.

işlem gönder

1.x sürüm kullanıcılarının aşina olduğu Transaction ve VersionedTransaction iki sınıf 2.x sürümünde artık mevcut değildir.

Eski sürümde sunulan System Program ile ilgili yöntemler artık mevcut değil, bu nedenle SystemProgram sınıfındaki statik yöntemler başka yerlerden dahil edilmelidir. Örneğin, transfer komutu @solana-program/system içindeki getTransferSolInstruction fonksiyonunu çağırmalıdır.

Artık class sağlanmadığı için, Web3.js işlevsel programlamada yaygın olarak kullanılan pipe biçimini sunmaktadır. Geliştiriciler, pipe fonksiyonu aracılığıyla önceki 1.x sürümündeki transfer işlevselliğini gerçekleştirebilir.

Dikkate değer olan, işlemlerin artık Connection üzerinden başlatılmadığı, bunun yerine tanımlı bir RPC Provider aracılığıyla özel bir fonksiyon oluşturulup bu fonksiyonun çağrılmasıyla işlemlerin başlatıldığıdır. 1.x sürümüne göre, kod miktarı artmış olsa da, özelleştirilebilirlik daha güçlü hale gelmiştir.

İşlemler HTTPS RPC üzerinden başlatılır ve ardından işlem sonuçlarını onaylamak için WSS RPC'ye abone olunarak doğrulanır. Yeni yöntem WSS'ye oldukça bağımlıdır, gelecekte WSS'nin uygulamalarının giderek daha yaygın hale geleceğine inanıyorum; bu da RPC sağlayıcılarının hizmet kararlılığı için daha yüksek talepler getirmektedir.

React

Bahsetmeye değer ki, @solana/web3.js projesinde @solana/react adında bir kütüphane de bulunmaktadır. Bu kütüphane, signIn gibi özellikleri içeren bazı React Hook'ları sunmaktadır.

Özet

@solana/web3.js 2.x sürümünün yayımlanması, Solana ekibinin sürekli gelişim ve iyileştirme taahhüdünü tam olarak yansıtmaktadır. Bu, geliştiricilere Solana ağıyla etkileşimde bulunmaları için verimli, esnek ve özelleştirilebilir bir yol sunarak bu platformun benimsenmesi ve gelişimini desteklemektedir.

Web3 Yeni Başlangıç Serisi: Şimdi @solana/web3.js 2.x ile Fonksiyonel Programlamaya Geçin

View Original
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.
  • Reward
  • 4
  • Share
Comment
0/400
MemeCoinSavantvip
· 07-15 21:50
istatistiksel modellerime göre, bu paradigma kayması af ngl'ye dayanıyor.
View OriginalReply0
MEVHunterZhangvip
· 07-15 21:45
Sonunda yeniden yapılanmayı bekledim, uzun zaman oldu.
View OriginalReply0
OnlyOnMainnetvip
· 07-15 21:39
sol patronunun hareketleri çok hızlı değil mi?
View OriginalReply0
LiquidityNinjavip
· 07-15 21:35
Güvenilir~ Nihayet fonksiyonel kullandım
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)