Neo Global Aylık Rapor - Geliştirme

Mayıs 2022

Neo Global Aylık Rapor - Geliştirme

Öne Çıkan Özelikler

Çekirdek geliştirme ekibinin bu ay yaptığı güncellemelerin çoğu, hem protokol hem de geliştirme platformu olarak Neo için sürdürülebilirlik ve uzun vadeli istikrara odaklanmıştır. Hard fork (çatallanma) desteğinin uygulanması, geriye dönük uyumsuz değişikliklerin güvenli bir şekilde uygulanmasına olanak tanımaktadır; ilki, DoS endişelerini hafifletecek syscall (sistem çağrısı) fiyatlarındaki değişikliklerdir.

Anlık görüntü izalasyonu, istisnaların meydana geldiği sözleşme çağrıları arasında istenmeyen sözleşme depolama değişikliklerinin devam etmesini önleyen başka bir örnekti. C# geliştiricisi için mevcut olan sözleşme geliştirme deneyimi, hata ayıklama ve üretim derlemeleri arasında yeniden kod yazma ihtiyacını ortadan kaldırarak koşullu derleme yoluyla geliştirilmiştir.

Neo’nun sponsor olduğu topluluk geliştirme grupları, değişikliklere uyum sağlayarak ve yeni işlevsellik parçalarını aktararak, çekirdek ile birlikte adım adım kendi güncellemelerini yayınladı. NEXT, Ledger desteği ve özel ağ desteği getirerek, cüzdanı hem kullanıcılar hem de geliştiriciler için daha çok yönlü hale getirmek üzere büyük NeoLine uzantılı cüzdan yükseltmesi için hazırlıklarını tamamladı.

Bununla birlikte, Neo SPCC, Object (Nesne) ağacı hizmeti biçiminde yeni NeoFS optimizasyonlarını araştırdı ve NGD Enterprise, TypeScript akıllı sözleşmeleri için yeni derleyicisinin geliştirilmesinde yer almaya devam etti.

Mayıs ayı Neo global aylık geliştirme raporunun tamamı aşağıda bulunabilirdir.

PROTOKOL GELİŞİMİ

PROTOKOL GELİŞİMİ

Neo Core

Sözleşmeler arası çağrılar için istisna işleme iyileştirmeleri uygulandı.

Neo çekirdeğindeki anlık görüntü izolasyonu eklenmesi, Neo’nun Mayıs ayında aldığı en dikkate değer yükseltmelerden biriydi. Güncellemenin ardından, sözleşme çağrılarının neden olduğu durum değişiklikleri her bir sözleşme çağrısı arasında ayrı tutulmaktadır.

Belirli bir çağrı bir istisna ile sonuçlanırsa, istisnalar çağrıyı gerçekleştiren sözleşme tarafından işlendiğinde meydana gelebilecek istenmeyen sonuçların önüne geçerek, çağrı yapılan sözleşmedeki durum değişiklikleri otomatik olarak bir önceki konuma geri döndürülmektedir.


Protokol düzeyindeki “hardfork”lar (çatallanma) ve syscall (sistem çağrısı) fiyat ayarlamaları için destek eklendi.

Çekirdek geliştirme ekibi, Mayıs ayında, protokol düzeyindeki “hard fork”lar için destek içeren ilk sürüm olacak olan Neo v3.3.0 dönüm noktası sürümü için çalıştı. Bu sürüm, platformun geçmiş bloklardaki işlemleri bozmadan gömülü(/sabit) kodlanmış sistem çağrısı fiyatlarında ayarlamalar yapmasına olanak tanımaktadır. İlk forkda (çatallanma), getRandom ve createMultisigAccount için mevcut olan ücretler, DoS endişelerini ve diğer sorunları azaltmak için ayarlanmıştır.


NeoVM, StackItems için değişmez olarak yeni işlem kodları ve derin kopyalarla yükseltildi.

MODMUL ve MODPOW, kriptografi ve sıfır bilgi kanıtlarıyla ilgili zincir üstü uygulamalar için yeni fırsatlar açarak, NeoVM’ye geldi. NeoVM düzeyindeki bir diğer değişiklik, yığın öğelerini değişmez olarak derin kopyalama yeteneğiydi. Bu yetenek, bir sözleşmenin alınan bildirimleri değiştirme olasılığını ortadan kaldırırken, Notify ve GetNotifications içeren durumlarda performansın iyileştirilmesine olanak tanımaktadır.


Koşullu derleme ve yeni yöntemler neo-devpack-dotnet içerisine yerleşmiştir.

C# sözleşme derleyicisi, Mayıs ayında, mutlak değerleri döndürmek için yeni matematik yöntemleri, depolama haritaları için optimizasyonlar ve bayt dizilerini sıralama yeteneği de dahil olmak üzere bir dizi güncellemeye tanıklık etti.

C# geliştiricileri için sözleşme geliştirme iş akışını iyileştirerek, #if DEBUG (komutu) aracılığıyla koşullu derleme desteği de uygulandı. En dikkat çekeni, bu (komut), geliştirme sırasında sürüm kodundan ödün vermeden Runtime.Log() kullanımına olanak tanıyarak, salt okunur yöntemlerde güvenli niteliği geçici olarak devre dışı bırakmak için kullanılabilirdir.

ALTYAPI VE ARAÇ GELİŞİMİ

ALTYAPI VE ARAÇ GELİŞİMİ

Öne Çıkan Özelikler

ALTYAPI VE ARAÇ GELİŞİMİ

Proje'de Önemli Aşamalar

NODE

Neo SPCC tarafından NeoGo

Neo SPCC, her zamanki NeoGo yığını güncellemelerini bu ay tamamladı. Geçtiğimiz aylarda da olduğu üzere, değişiklikler referans uygulamasındaki protokol değişiklikleri ile Go nodesine özgü optimizasyonlar ve hata düzeltmeleri arasında bölündü.

Çekirdeği ve en son ki v3.3.0 sürümünü izleyen ekip, tam C# uyumluluğunu sürdürmek için gereken tüm düzeltmeleri uyguladı. Bunlar, “bytearray” karşılaştırılabilir sınırları, değişmez yığın öğelerini ve VM’deki yeni işlem kodlarını, yanı sıra hard fork (çatallanma) desteğini ve çeşitli yeniden düzenlemeleri/DOS azaltmalarını(/hafifletmelerini) içermekteydi.

Mayıs ayında NeoGo’ya özgü uzun bir güncelleme listesi uygulandı. Örnekler, oracle sistemi yönlendirme iyileştirmelerini, durum uyumsuzluklarını, “tty” ile parola işlemeyi, referans sayacı sorunlarına yönelik düzeltmeleri ve Rules (Kurallar) tanık kapsamını, ek olarak, RPC paketine yönelik çeşitli geliştirmeleri içermektedir.

Ekip ayrıca kapsamlı bir dilbilgisi incelemesiyle belge işlemi ve kod yorumlarını geliştirdi. Yaklaşık 300 dosyada iyileştirmeler (yada diğer bir deyişle, geliştirmeler) yapıldı ve NeoGo ekosistemdeki en kapsamlı belgelenmiş projelerden biri haline geldi.

https://github.com/nspcc-dev/neo-go

SDK

AxLabs tarafından neow3j

Axlabs, Mayıs ayında, SDK ve devpack’a (geliştirme paketi) yönelik değişiklikler getiren küçük bir güncelleme olan new3j’nin v3.17.1 sürümünü yayınladı. İlkinde, sürüm, NeoVM’de FAULT (HATA) durumunda sona erecek işlemlerin oluşturulmasına olanak tanıyan bir değişiklik yaptı. Başlangıçta yalnızca başarıyla yürütülen işlemler iletilebilirdi; yeni seçenek, sözleşmeyi test etme amacıyla hatalı işlemlerin devam etmesine olanak sağlayacaktır.

Devpack içerisinde, Hash160 ek olarak, Hash256’yı Storage (Depolama) ve StorageMap sınıflarından manuel örneklemeye gerek kalmadan geri almayı kolaylaştırmak için yeni kolaylık yöntemleri eklendi.

https://github.com/neow3j/neow3j

AKILLI SÖZLEŞME & DAPP FRAMEWORK

NGD Enterprise tarafından Neo Blockchain Toolkit

Neo Blockchain Toolkit (Neo Blokzincir Araç Seti), Neo core v(sürüm)3.3 güncellemelerinin ardından bir dizi değişiklik aldı. Son sürümden önce gereken eklenti güncellemelerinin beklenmesiyle ön sürümler yayınlandı ve test edilmektedir. Geçen ay ekip tarafından önizlenen Storage (Depolama) şeması tasarımı, geliştirici geri bildirimi ve incelemesinin ardından değişiklikler aldı.

Ekip ayrıca, şu anda geliştirmenin ilk aşamalarında olan TypeScript için yeni bir akıllı sözleşme derleyicisi geliştirme uğraşını da sürdürdü. Tamamlandığında, dil, geleneksel (özellikle web) geliştiriciler(i) için blokzincirine büyük bir katılım fırsatı sunarak, desteklenen beşinci Neo N3 akıllı sözleşme dili olacaktır.

https://marketplace.visualstudio.com/items?itemName=ngd-seattle.neo-blockchain-toolkit

CÜZDAN

NEXT tarafından NeoLine

Mayıs ayında NeoLine Chrome uzantılı cüzdan için önemli geliştirmeler tamamlandı. Ledger donanım cüzdan cihazları, özel ağlar ve RPC sunucuları, ek olarak, cüzdan arama, yanı sıra, aktif cüzdan göstergesi gibi kullanıcı deneyimi (UX) geliştirmeleri için destek eklendi. NEXT ayrıca, yeni özellikleri hesaba katmak ve elden geçirme tasarımını geliştirmek için temel mantığı yeniden yazarak, cüzdan ayrıntıları sayfası için kullanıcı arayüzünü yeniden tasarladı.

https://neoline.io/

NEOFS

Neo SPCC tarafından NeoFS

Mayıs ayı süresince NeoFS geliştirmesi, performans ve sürdürülebilirlik iyileştirmelerine odaklandı. En önemli değişiklik, erişim denetimi, çoğaltma ve beraberinde bir dizi optimizasyon getiren Object tree (Nesne ağacı) hizmeti biçiminde geldi. NeoFS çekirdeğinde bir CLI yeniden düzenleme, SDK güncellemesi ve API geliştirmeleri de uygulandı.

NeoFS hizmetleri de, yüksek işlem miktarı altında bile S3 ağ geçidindeki performansı artırarak, tree (Nesne ağacı) hizmetini benimsemek üzere ayarlandı. Ekip ayrıca NeoFS CDN hizmetinin genel kullanıma sunulması için hazırlandı ve S3 uyumlu çözümlerin karşılaştırmalı değerlendirmesi için evrensel bir yük testi aracı oluşturdu.

https://fs.neo.org/

AUDIT

Red4Sec tarafından denetleme

Red4Sec, düzeltmelerin gözden geçirilmesi ve GrantShares akıllı sözleşmelerinin nihai teslimi, PayProxy için çekme talebi incelemeleri ve FlamingoSwapPair projesinde tespit edilen yeni bir sorun da dahil olmak üzere ekosistem projelerinin denetimine Mayıs ayında da devam etti. Haziran ayında Saffron Finance için bir denetim planlandı ve çekirdek Neo platformundaki iki güvenlik açığı bulundu ve rapor edildi.

https://red4sec.com/en