Solana Web3.js 2.x: Fonksiyonel Programlamanın Yeni Çağı
Solana Web3.js, 2023 Kasım'da 2.x sürümünü piyasaya sürdü ve 1.x sürümüne kıyasla yeni sürüm önemli değişiklikler getirdi. Bu makalede ana iyileştirmeler özetlenecektir.
Her ne kadar 2.x sürümü yeni yayınlanmış olsa da, kullanım oranı henüz yüksek değil ve birçok popüler kütüphane de geçiş yapmamış durumda, bu değişiklikleri anlamak gelecekteki yükseltmelere hazırlanmanıza yardımcı olacaktır.
Sürüm Karşılaştırması
1.x sürümü kullanımı oldukça basittir, yalnızca @solana/web3.js adlı bir paket içerir ve sınıf tabanlı tasarım ile birçok yaygın işlemi kapsar. Örneğin, Connection sınıfı onlarca yöntem sunar ve neredeyse geliştiricilerin ihtiyaç duyduğu tüm işlevleri kapsar.
Ancak, bu tasarım bazı sorunlar da getirmektedir. Geliştiricilerin gerçekten kullandığı işlevler çok az olsa bile, tüm kod kütüphanesi kullanıcı cihazına indirileceği için yükleme süresi uzamaktadır.
2.x sürümü farklı bir yaklaşım benimsemiştir. Resmi ekip, mevcut kod tabanını @solana/accounts, @solana/codecs, @solana/rpc gibi birden fazla küçük modüle ayırmıştır. Yeni sürüm, sınıf tabanlı uygulamayı bırakmış ve daha çok tekil fonksiyonlar kullanmıştır; bu da JavaScript kodlarının derlenmesi sırasında optimizasyonu kolaylaştırmaktadır. Kullanılmayan kodlar silinecek ve kullanıcı cihazına indirilmeyecektir. Resmi verilere göre, yeni sürümü kullanan DApp'ler genellikle %30'luk bir boyut optimizasyonu sağlayabilir; daha az işlevselliğe sahip uygulamalar için optimizasyon oranı daha yüksek olabilir.
Bu değişim, Solana ekibinin dokümantasyon kalitesi için daha yüksek talepler ortaya koydu. Geliştiricilerin ihtiyaç duydukları işlevleri hızlı bir şekilde bulmalarını sağlamak anahtar bir sorun haline geldi. Şu anda, paket adlarının anlamsallığı iyi, adlardan genel olarak kullanım amacını anlayabiliyoruz, bu da geliştiricilerin geçiş zorluklarını bir ölçüde azaltıyor.
Ancak, yeni yayınlandığı için birçok proje henüz taşınmamış durumda. Bazı örnekler ve belgeler de yeterince kapsamlı değil, bu da geliştiricilere bazı karışıklıklar yaratabilir.
2.x sürümünün bir diğer önemli özelliği sıfır bağımlılıktır. Bu, özellikle 2023 yılının Aralık ayı başında @solana/web3.js 1.95.5 ve 1.95.6 sürümlerinin tedarik zinciri saldırısına uğramasından sonra güvenliği artırmak açısından kritik öneme sahiptir. Yeni sürüm, daha fazla yerel işlev kullanarak dış bağımlılıkların ve Polyfill'lerin kullanımını ortadan kaldırmakta ve bu da güvenlik risklerini azaltmaktadır.
Ana Değişiklikler
Bağlantı Yöntemi
2.x sürümü, bağlantıları işlemek için daha işlevsel bir yaklaşım benimsemiştir. Artık Connection sınıfı kullanılmamaktadır, bunun yerine RPC istek adreslerini yapılandırarak istek gönderici oluşturulmaktadır. Örneğin, işlem gönderildiğinde otomatik olarak HTTPS isteği başlatılır ve WSS bağlantısı kurulur, işlem durumu abone olunur ve işlem onaylandıktan sonra işlem hash'i geri döndürülür.
Anahtar çiftleri yönetimi
Açık anahtar ve özel anahtar ile ilgili işlemlerde de önemli değişiklikler oldu. 1.x sürümünde yaygın olarak kullanılan Keypair ve PublicKey sınıfları artık mevcut değil, bunların yerine bir dizi fonksiyon geldi. Örneğin, artık anahtar çiftini oluşturmak için await generateKeyPair() kullanılıyor, önceki Keypair.generate() yerine.
Yeni uygulama, JavaScript'in Web Crypto API'sini kullanarak yerel Ed25519 uygulamasını kullanıyor. Bu, bazı işlemlerin asenkron hale gelmesine neden oldu, ancak Promise ile tanıdık olan modern JavaScript geliştiricileri için bu büyük bir sorun değil.
işlem işleme
2.x sürümünde, Transaction ve VersionedTransaction sınıfları artık yok. System Program ile ilgili yöntemler de başka yerlerden getirilmeli. Örneğin, para transferi 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 sunuyor. İşlemler artık Connection üzerinden başlatılmıyor, bunun yerine tanımlanmış RPC Sağlayıcısı aracılığıyla belirli bir fonksiyon oluşturularak işlemler başlatılıyor. Bu yöntem, kod miktarını biraz artırsa da, daha güçlü bir özelleştirilebilirlik sunuyor.
React desteği
Dikkate değer olan, @solana/web3.js projesinde @solana/react adında bir kütüphanenin de bulunmasıdır; bu kütüphane bazı React Hook'ları sunmakta ve signIn gibi entegre işlevler içermektedir.
Sonuç
@solana/web3.js 2.x sürümünün yayımlanması, Solana ekibinin sürekli gelişim konusundaki kararlılığını göstermektedir. Yeni sürüm, geliştiricilere verimli, esnek ve özelleştirilebilir bir Solana ağı etkileşim yöntemi sunmakta olup, platformun daha da gelişmesine ve uygulanmasına katkıda bulunması beklenmektedir.
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.
Solana Web3.js 2.x sürümü yayımlandı: Fonksiyonel programlama geliştirme deneyimini yeniden şekillendiriyor.
Solana Web3.js 2.x: Fonksiyonel Programlamanın Yeni Çağı
Solana Web3.js, 2023 Kasım'da 2.x sürümünü piyasaya sürdü ve 1.x sürümüne kıyasla yeni sürüm önemli değişiklikler getirdi. Bu makalede ana iyileştirmeler özetlenecektir.
Her ne kadar 2.x sürümü yeni yayınlanmış olsa da, kullanım oranı henüz yüksek değil ve birçok popüler kütüphane de geçiş yapmamış durumda, bu değişiklikleri anlamak gelecekteki yükseltmelere hazırlanmanıza yardımcı olacaktır.
Sürüm Karşılaştırması
1.x sürümü kullanımı oldukça basittir, yalnızca @solana/web3.js adlı bir paket içerir ve sınıf tabanlı tasarım ile birçok yaygın işlemi kapsar. Örneğin, Connection sınıfı onlarca yöntem sunar ve neredeyse geliştiricilerin ihtiyaç duyduğu tüm işlevleri kapsar.
Ancak, bu tasarım bazı sorunlar da getirmektedir. Geliştiricilerin gerçekten kullandığı işlevler çok az olsa bile, tüm kod kütüphanesi kullanıcı cihazına indirileceği için yükleme süresi uzamaktadır.
2.x sürümü farklı bir yaklaşım benimsemiştir. Resmi ekip, mevcut kod tabanını @solana/accounts, @solana/codecs, @solana/rpc gibi birden fazla küçük modüle ayırmıştır. Yeni sürüm, sınıf tabanlı uygulamayı bırakmış ve daha çok tekil fonksiyonlar kullanmıştır; bu da JavaScript kodlarının derlenmesi sırasında optimizasyonu kolaylaştırmaktadır. Kullanılmayan kodlar silinecek ve kullanıcı cihazına indirilmeyecektir. Resmi verilere göre, yeni sürümü kullanan DApp'ler genellikle %30'luk bir boyut optimizasyonu sağlayabilir; daha az işlevselliğe sahip uygulamalar için optimizasyon oranı daha yüksek olabilir.
Bu değişim, Solana ekibinin dokümantasyon kalitesi için daha yüksek talepler ortaya koydu. Geliştiricilerin ihtiyaç duydukları işlevleri hızlı bir şekilde bulmalarını sağlamak anahtar bir sorun haline geldi. Şu anda, paket adlarının anlamsallığı iyi, adlardan genel olarak kullanım amacını anlayabiliyoruz, bu da geliştiricilerin geçiş zorluklarını bir ölçüde azaltıyor.
Ancak, yeni yayınlandığı için birçok proje henüz taşınmamış durumda. Bazı örnekler ve belgeler de yeterince kapsamlı değil, bu da geliştiricilere bazı karışıklıklar yaratabilir.
2.x sürümünün bir diğer önemli özelliği sıfır bağımlılıktır. Bu, özellikle 2023 yılının Aralık ayı başında @solana/web3.js 1.95.5 ve 1.95.6 sürümlerinin tedarik zinciri saldırısına uğramasından sonra güvenliği artırmak açısından kritik öneme sahiptir. Yeni sürüm, daha fazla yerel işlev kullanarak dış bağımlılıkların ve Polyfill'lerin kullanımını ortadan kaldırmakta ve bu da güvenlik risklerini azaltmaktadır.
Ana Değişiklikler
Bağlantı Yöntemi
2.x sürümü, bağlantıları işlemek için daha işlevsel bir yaklaşım benimsemiştir. Artık Connection sınıfı kullanılmamaktadır, bunun yerine RPC istek adreslerini yapılandırarak istek gönderici oluşturulmaktadır. Örneğin, işlem gönderildiğinde otomatik olarak HTTPS isteği başlatılır ve WSS bağlantısı kurulur, işlem durumu abone olunur ve işlem onaylandıktan sonra işlem hash'i geri döndürülür.
Anahtar çiftleri yönetimi
Açık anahtar ve özel anahtar ile ilgili işlemlerde de önemli değişiklikler oldu. 1.x sürümünde yaygın olarak kullanılan Keypair ve PublicKey sınıfları artık mevcut değil, bunların yerine bir dizi fonksiyon geldi. Örneğin, artık anahtar çiftini oluşturmak için await generateKeyPair() kullanılıyor, önceki Keypair.generate() yerine.
Yeni uygulama, JavaScript'in Web Crypto API'sini kullanarak yerel Ed25519 uygulamasını kullanıyor. Bu, bazı işlemlerin asenkron hale gelmesine neden oldu, ancak Promise ile tanıdık olan modern JavaScript geliştiricileri için bu büyük bir sorun değil.
işlem işleme
2.x sürümünde, Transaction ve VersionedTransaction sınıfları artık yok. System Program ile ilgili yöntemler de başka yerlerden getirilmeli. Örneğin, para transferi 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 sunuyor. İşlemler artık Connection üzerinden başlatılmıyor, bunun yerine tanımlanmış RPC Sağlayıcısı aracılığıyla belirli bir fonksiyon oluşturularak işlemler başlatılıyor. Bu yöntem, kod miktarını biraz artırsa da, daha güçlü bir özelleştirilebilirlik sunuyor.
React desteği
Dikkate değer olan, @solana/web3.js projesinde @solana/react adında bir kütüphanenin de bulunmasıdır; bu kütüphane bazı React Hook'ları sunmakta ve signIn gibi entegre işlevler içermektedir.
Sonuç
@solana/web3.js 2.x sürümünün yayımlanması, Solana ekibinin sürekli gelişim konusundaki kararlılığını göstermektedir. Yeni sürüm, geliştiricilere verimli, esnek ve özelleştirilebilir bir Solana ağı etkileşim yöntemi sunmakta olup, platformun daha da gelişmesine ve uygulanmasına katkıda bulunması beklenmektedir.