Solana Web3.js 2.x sürümü: Modüler tasarım performansı optimize eder ve güvenliği artırır

robot
Abstract generation in progress

Solana Web3.js 2.x Sürümü: Fonksiyon zengini JavaScript Kütüphanesi Büyük Güncelleme

Solana Web3.js, güçlü bir JavaScript kütüphanesi olarak, Kasım ayında 2.x sürümünü resmi olarak yayınladı. Bu yeni sürüm, 1.x'e kıyasla önemli değişiklikler içeriyor, bu makalede ana değişiklikler özetlenecektir.

2.x sürümü yeni çıkmış olmasına rağmen, kullanım oranı henüz yaygınlaşmamıştır ve birçok yüksek kullanım oranına sahip kütüphane de geçiş yapmamıştır. Ancak bu değişiklikleri anlamak, gelecekteki geçiş çalışmaları için oldukça faydalıdır.

Web3 Yeni Başlangıç Serisi: Şimdi @solana/web3.js 2.x'i güncelleyerek fonksiyonel programlamaya başlayın

Sürüm Karşılaştırması

1.x sürümü kullanımı oldukça basittir, sadece tek bir @solana/web3.js paketini içe aktarmanız yeterlidir. Sınıf tabanlı bir tasarıma dayanır ve birçok yaygın işlemi kapsar. Örneğin, Connection sınıfı, geliştiricilerin ihtiyaç duyduğu hemen hemen tüm işlevleri kapsayan onlarca yöntem sunar.

Ancak, bu tasarım bazı sorunlar da getiriyor. Geliştiriciler genellikle sadece bu işlevlerin küçük bir kısmını kullanmasına rağmen, tüm kod kütüphanesi kullanıcı cihazına indiriliyor ve bu da yükleme sürelerinin uzamasına neden olabilir.

2.x sürümü farklı bir yaklaşım benimsemiştir. Resmi ekip, mevcut kod kütüphanesini @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions gibi birden fazla küçük modüle ayırmıştır. Aynı zamanda, sınıf tabanlı uygulamayı terk ederek tek bir fonksiyon kullanma yoluna gitmiştir. Bu değişiklik, JavaScript kodunun derlenmesi sırasında optimizasyonu kolaylaştırmakta, kullanılmayan kodlar silinmekte ve kullanıcı cihazına indirilmemektedir.

Resmi belgelerdeki verilere göre, yeni sürüm DApp'lerin kullanımı genellikle %30 boyut optimizasyonu sağlar. Eğer sadece az sayıda özellik kullanılıyorsa, optimizasyon oranı daha yüksek olabilir.

Bu değişim, Solana ekibinin belgeleri yazma sürecine yeni zorluklar getirdi; geliştiricilerin ihtiyaç duydukları işlevleri hızlı bir şekilde bulmaları anahtar bir sorun haline geldi. Şu anda, paket adlarının iyi bir anlamsallığa sahip olduğu görülüyor; adlarından genel amaçlarını anlayabiliyoruz, bu da geliştiricilerin geçiş zorluklarını bir dereceye kadar azaltıyor.

Yeni sürümün henüz yeni yayınlanmış olması nedeniyle, birçok proje henüz geçiş yapmamıştır. Şu anda, 2.x sürümüne ait örnekler oldukça azdır. Ayrıca, yeni sürümün çalışma zamanı yerleşik işlevlerini (örneğin, anahtar çiftleri oluşturma gibi) kullanma eğiliminde olması nedeniyle, belgelerde ilgili açıklamaların eksik olması bazı geliştiricilerin kafasını karıştırabilir.

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ını düşündüğümüzde, dış bağımlılıkların azaltılması güvenlik olaylarının meydana gelme olasılığını büyük ölçüde azaltabilir. 2.x sürümünün yayınlanmasıyla birlikte, Web3.js geliştirme ekibi daha fazla yerel işlev kullanmaya karar verdi ve dış bağımlılıkların ve Polyfill'lerin getirilmesini kaldırdı. Gelecekte değişiklikler olabilir, ancak şu anda 2.x sürümü tüm dış bağımlılıkları ortadan kaldırmıştır.

Önemli Değişiklikler

bağlantı

1.x sürümünde, Connection sınıfı birçok yöntem sunmaktadır. Ancak 2.x'de, daha fonksiyonel bir yaklaşım benimsenmiştir:

javascript import { createSolanaRpcApi } from '@solana/web3.js';

const rpc = createSolanaRpcApi({ httpEndpoint: ' wsEndpoint: 'wss://api.mainnet-beta.solana.com', });

// rpc kullanarak işlem gönder const sendAndConfirmTransaction = rpc.sendAndConfirmTransaction(/* ... */);

sendAndConfirmTransaction fonksiyonu çağrıldığında, otomatik olarak HTTPS isteği gönderilir ve işlem durumunu abone olmak için WSS bağlantısı kurar, işlem onaylandıktan sonra işlem hash'ini döndürür.

anahtar çifti

2.x sürümünde, 1.x sürümünde yaygın olarak kullanılan Keypair ve PublicKey sınıfları artık mevcut değil, bunların yerini bazı fonksiyonlar almıştır. Örneğin, anahtar çiftini await generateKeyPair() kullanarak oluşturabilirsiniz, önceden olduğu gibi Keypair.generate() yerine.

Yeni generateKeyPair, Promise döndürüyor; bu, yeni uygulamanın mümkün olduğunca JavaScript'in Web Crypto API'sinden yararlandığı ve yerel Ed25519 uygulamasını kullandığı içindir. Web Crypto API'sinin birçok yöntemi asynchrondur.

işlem gönder

2.x sürümünde Transaction ve VersionedTransaction sınıfları artık yok. System Program ile ilgili yöntemler de artık mevcut değil, başka yerlerden alınması gerekiyor. Örneğin, transfer komutu @solana-program/system içindeki getTransferSolInstruction fonksiyonunu çağırması gerekiyor.

Yeni sürüm, fonksiyonel programlamada yaygın olarak kullanılan pipe biçimini sunmaktadır. Aşağıda, pipe fonksiyonu kullanarak 1.x sürümündeki transfer işlevinin nasıl gerçekleştirileceği gösterilmektedir:

javascript import { pipe } from '@solana/functional'; import { getTransferSolInstruction } from '@solana/system-program'; import { addSignatureToTransaction, createTransaction, sendAndConfirmTransaction, } from '@solana/web3.js';

const transferSol = pipe( // İşlem oluştur (ix) => createTransaction({ instructions: [ix] }), // İmza ekle (tx) => addSignatureToTransaction(tx, signer), // İşlem gönder ve onayla (signedTx) => sendAndConfirmTransaction(rpc, signedTx) );

const signature = await transferSol( getTransferSolInstruction({ from: sender, alıcıya, miktar, }) );

1.x sürümüne kıyasla, kod miktarı artmış, ancak ö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 üzerinden abone olunur.

React desteği

@solana/web3.js projesinde @solana/react adında bir kütüphane da bulunmaktadır; bu kütüphane bazı React Hook'ları sunar ve signIn gibi özellikler içerir.

Özet

@solana/web3.js 2.x sürümünün yayımlanması, Solana ekibinin sürekli iyileştirme kararlılığını göstermektedir. Yeni sürüm, geliştiricilere etkili, esnek ve özelleştirilebilir bir Solana ağ etkileşimi sunarak, platformun benimsenmesini ve gelişimini teşvik etmesi beklenmektedir.

Web3 Yeni Başlayanlar Serisi: Şimdi @solana/web3.js 2.x'i güncelleyerek fonksiyonel programlamayı başlatın

SOL7.79%
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
  • 6
  • Share
Comment
0/400
LiquidityHuntervip
· 2h ago
Modül optimizasyonu... ama performans darboğazı hala %85 eşiğinde.
View OriginalReply0
OnchainFortuneTellervip
· 20h ago
BTC'nin yüzüne bakmak dolandırıcıdır.
View OriginalReply0
NoodlesOrTokensvip
· 20h ago
Sonunda güncellendi, mırıldanarak.
View OriginalReply0
SandwichTradervip
· 20h ago
Neden bu kadar hızlı koşuyorsun? Yapı mı panik yaptı?
View OriginalReply0
staking_grampsvip
· 20h ago
Vay canına, biraz öğrenmek istiyorum.
View OriginalReply0
AirdropHunter007vip
· 20h ago
Yine yine geç kaldım! Airdrop istiyorum...
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)