Starknet Alpha v0.11.0: Cairo 1.0’a Geçiş Başladı

0xemre
Starknet Türkiye
Published in
5 min readApr 5, 2023

Özetle:

  • Starknet Alpha v0.11.0 mainnet ve testnet’te yayında
  • Artık Cairo 1.0 kontratlarınızı mainnet ve testnet’te yayınlayabilir ve onlarla etkileşime girebilirsiniz
  • Starknet üzerindeki hesaplamalar artık 5 kat daha ucuz
  • Bu yükseltme, Regenesis öncesi geçiş periyodunun başlangıcını belirtir

Giriş

Merakla beklenen Starknet alpha v0.11.0'ın mainnet ve testnet’te yayında olduğunu duyurmaktan heyecan duyuyoruz! Bu, Starknet için neden büyük bir adım? Starknet v0.11.0'da, Cairo 1.0 akıllı kontratlarınni ilan edebilir, dağıtabilir ve çalıştırabilirsiniz. Ayrıca, mevcut kontratlarınn Cairo 1.0 uygulamasına sorunsuz bir şekilde geçişine izin veren yeni bir sistem çağrısı sunuyoruz.

Cairo 1.0, Starknet’i iki farklı açıdan geliştirir. İlk olarak, Cairo’ya (diğer şeylerin yanı sıra) türleri/jenerikleri/özellikleri/hata işlemeyi (types/generics/traits/error handling) tanıtan daha zengin bir programlama dili sunar ve geliştirme deneyimini iyileştirir. İkincisi, Cairo 1.0, Starknet’in merkeziyetsiz yolculuğunda kilit bir rol oynuyor: Cairo 1.0 kontratların, Starknet alpha v0.11.0 sürümünde derlenmesi için Sierra’ya gönderilebilir. Sierra, merkezi olmayan Starknet için çok önemli bir özellik olan her sözleşme uygulamasının kanıtlanabilir olduğunu garanti eder.

Bu sürümde gelen bir diğer önemli gelişme, hesaplama için maliyetin 5 kat düşürülmesidir. Bu, Starknet’i hesaplama açısından yoğun uygulamalar için daha da cazip hale getirecektir. Daha fazla detay aşağıda.

Regenesis’e Hazırlanmak

Starknet alpha v0.11.0, Starknet’in, Regenesis’ten önce hazırlanması için geçiş döneminin başlangıcını işaret eder. Starknet’in Regenesis planı birkaç ay önce yayınlandı ve Cairo 0 tabanlı bir sistemden Cairo 1.0 tabanlı bir sisteme geçişe odaklanıyor.

Geçiş döneminde, mevcut Cairo 0 kontratların, (eğer yükseltilebilirlerse) adreslerini ve depolama alanlarını koruma ve uygulamalarını Cairo 1.0'a sorunsuz bir şekilde geçirme fırsatına sahiptir (sonraki bölüme bakın).

Bir Starknet kullanıcısı olarak bu, cüzdanınızı, yalnızca yeni Cairo 1.0 uygulaması yayınlandıktan sonra yükseltmeniz gerektiği anlamına gelir (bunu Regenesis gerçekleşene kadar istediğiniz bir zamanda yapabilirsiniz). Sistemdeki tüm uygulamalar her zamanki gibi çalışmaya devam edecek, herhangi bir kesinti beklenmiyor.

Regenesis’ten sonra, Starknet, sistem genelinde kalan Cairo 0 kontratlarınni desteklemeyi bırakacak. Bu önceden bildirilecek ve geliştiricilere kontratlarınni taşımaları için yeterli zaman verilecektir. Geçiş döneminin birkaç ay sürmesi bekleniyor. Geliştiriciler şimdiden uygulamalarını Cairo 1.0'a taşımaya başlayabilirler. Geçiş döneminin sonunda, Regenesis gerçekleşecektir.

Cairo 1.0’a Sorunsuz Geçiş

Cairo 1.0'a geçişle birlikte mevcut Cairo 0 kontratların kullanımdan kullanımdan kaldırılacak ve Regenesis’te artık desteklenmeyecek. Yükseltilebilir Cairo 0 kontratlarınnin Regenesis’ten sonra bile çalışmaya devam etmesine izin vermek ve durumu o zamana kadar kurulu halde tutmak için yeni bir sistem çağrısı ekledik: “replace_class”. Yükseltilebilir kontratlarınn Cairo 1.0 uygulamasına yükseltmeyle ilgili bir sorunu yoktur, ancak temel proxy (gerçek durumu tutan sözleşme) yine de Cairo 0 uygulamasında sıkışıp kalacaktır. “replace_class” sistem çağrısı, proxy sözleşmesinin temeldeki sınıfı değiştirmesine izin vererek bu sorunu çözer yani aynı adres ve depolamayı koruyarak uygulamayı değiştirir.

Hesaplama Artık 5 Kat Daha Ucuz!

Bugün, Starknet işlem ücretlerinin iki ana bileşeni vardır: Hesaplama ve zincir üstü veriler. Starknet işlem ücretinin hesaplama bileşeni, L1'de kanıtı doğrulamanın marjinal maliyeti tarafından belirlenir (daha fazla ayrıntı için belgelere bakın).

Başlangıçta, 200m Cairo adımını doğrulamak için 5m gas gerektiren bir kanıt, Cairo adımı başına 0,05 gas gibi saf bir tahmine yol açtı. O zamandan beri, L1 doğrulama maliyetinde önemli bir azalma sağlayan özyinelemeli ispatlara (recursive proofs) geçtik (yineleme ağacının yalnızca kökü L1'e ulaşır). Şimdi orijinal tahminlerimizi buna göre güncelleme zamanı — L2'deki her Cairo adımının fiyatı 5 kat azaltılacak ve şimdi 0,01 gasa mal olacak.

Bu maliyet düşüşü, yerel olmayan imzalara sahip hesap kontratları gibi hesaplama açısından yoğun uygulamalar için önemlidir. Bu iyileştirmeyle beraber basit işlemlerde ise küçük bir maliyet düşüşü (~ %5) görülecek. Gelecek sürümlerde, ikinci bileşen zincir üstü veri maliyetleri ele alınacak. Zincir üstü verilere alternatifler Starknet’te (diğer adıyla Volition) kullanıma sunulduğunda, maliyet düşüşü çok daha etkili biçimde hissedilecek.

Cairo 1.0 ve Sierra

Sierra (Safe Intermediate Representation), Cairo Sanal Makinesi’ne (CASM) derlenen bir ara temsildir. Starknet alpha v0.11.0 öncesi, bir geliştirici Cairo 0'ı CASM’de derler ve sonucu Starknet sıralayıcıyıcısına gönderirdi. Cairo 1.0 ile geliştiriciler kodlarını Sierra’da derler ve bu ara gösterimi sıralayıcıya gönderir. Sıralayıcı daha sonra onu CASM ile derleyecektir. Sierra’nın “güvenli CASM”ye, yani CASM’nin başarısız olamayacak bir alt kümesine derlemesi garanti edilir ve her yürütme kanıtlanabilir hale gelir. Bu, sıralayıcıyı DOS’tan koruyarak geri alınan işlemler için bile ücret talep edebileceğini garanti eder. Daha fazla bilgi için belgelere bakın.

Starknet alpha 0.11.0, Cairo 1.0-alpha.6 sürümünü kullanacak. Bu sürüm, tüm Starknet sistem çağrıları zaten mevcutken Cairo 0 ile özellik eşitliğine yakındır.

Starknet sıralayıcısının sabit bir derleyici sürümü kullandığını unutmayın; bu, dil iyileştirmelerinin Starknet’te hemen mevcut olmayabileceği ve yalnızca bir Starknet sürüm güncellemesinden sonra mevcut olacağı anlamına gelir. Spesifik olarak, Cairo 1.0 → Sierra derlemesini etkileyen iyileştirmeler hemen yürürlüğe girebilse de, Sierra → CASM derleyicisindeki değişikliklerin (daha fazla ayrıntı için belgelere bakın) bir Starknet yükseltmesini beklemesi gerekecektir.

Başka yeni ne var?

Yeni İşlem Türü — Declare v2

Cairo 1.0 sınıflarını (classes) bildirmek için yeni bir işlem türü ekliyoruz. Bu yeni “declare” işlem sürümü, iki önemli farkla mevcut “declare” işlemine benzer:

  • Gönderilen sınıf nesnesi artık CASM yerine Sierra’yı temsil ediyor, yani sınıfın semantiği Sierra temsili tarafından tanımlanıyor.
  • Kullanıcı ayrıca derlenmiş sınıf karmasını da imzalıyor. Bu, Sierra→CASM derlemesinin Starknet İşletim Sisteminin bir parçası olduğu kanıtlanana kadar çok önemli bir adımdır.

Daha fazla ayrıntı için belgelere bakınız.

Geliştiricinin bakış açısından, deneyim aynı kalır. Geliştiriciler, Cairo 1.0 kodunu yazdıktan sonra, sınıfı bildirmek için CLI’yı kullanabilirler.

Not: Başlangıçta, Starknet Mainnet’te `declare v2' işlemlerinin kabul edilmeyeceğini unutmayın. Testnet üzerinde bir süre deneme yaptıktan sonra Mainnet üzerinde yeni işlem türü etkinleştirilecek ve Cairo 1.0 sınıfları kullanıma sunulacaktır.

Poseidon Burada

Poseidon, çok verimli cebirsel devrelere sahip olmak için tasarlanmış bir sağlama fonksiyonları ailesidir. Bu nedenle, STARK’lar ve SNARK’lar gibi ZK kanıtlama sistemlerinde çok faydalı olabilirler. Starknet alpha v0.11.0'dan itibaren, geliştiriciler Poseidon’u kullanabilecekler. Ek olarak, Starknet protokolünün parçası olan bazı karma hesaplamalar Poseidon’a geçiş yapacaktır (özellikle, class hash, compiled class hash ve state commitment’ın bazı bölümleri Poseidon’u kullanacaktır, daha fazla ayrıntı için belgelere bakın). Gelecekte, daha fazla dahili bileşen Poseidon hash işlevini kullanmaya geçiş yapacaktır.

Starknet’te kullanılan tam sürüm ve parametreler burada bulunabilir.

Çeşitli değişiklikler

Önceki Starknet sürümlerinde olduğu gibi, bir yükseltmenin de API’lerimiz ve diğer düşük seviyeli bileşenlerimiz üzerinde etkileri vardır. Aşağıda bunları listeliyoruz ve yapılan belirli değişiklikleri ele alıyoruz:

  • v0 invoke/declare işlemleri artık desteklenmiyor
  • L1→L2 mesajları artık ücret gerektiriyor. Yani sıfır ücretle gönderilen mesajlar Starknet sıralayıcı tarafından işlenmeyecektir.
  • Zincir üstü veri formatı değiştirildi
  • API değişiklikleri (tüm değişiklikler burada listelenmemiştir, lütfen kapsamlı bir liste için belgelere bakın):
  • yeni bir “get_compiled_class_by_class_hash” endpoint’i ekledi
  • “get_class_by_hash”, Cairo 0/Cairo 1.0 sınıflarının her ikisini de döndürür (istenen hash’e bağlı olarak)
  • `get_state_update` değiştirilen sınıflar için yeni bir bölüme sahiptir ve bildirimler Cairo 0 ve Cairo 1 sınıfları arasında bölünmüştür.
  • “estimate_fee” ve “simulate_tx” artık doğrulamayı atlayabilir
  • Yeni bir Starknet JSON-RPC versiyonu

Sırada ne var?

Artık Cairo 1.0 ile ilgili tüm altyapı uygulamaya konduğuna göre şunları bekleyebilirsiniz:

  • Cairo 1.0'da daha fazla dil geliştirmesi
  • Performans iyileştirmeleri: Söz verildiği gibi, TPS’yi önemli ölçüde artırma yolunda ilerlemeye devam ediyoruz. Yol haritasındaki bir sonraki adım, Apache 2.0 lisansı altında açıkta geliştirilen Rust sıralayıcısına geçiş yapmaktır. Yeni sıralayıcı, Performance Trio’yu oluşturan Rust CairoVM ve Papyrus tam düğümünü kullanacak.
  • Zincir dışı veri kullanılabilirliği! Bu versiyonda, işlem maliyetinin hesaplama bileşenini ele aldık. Gelecek sürümlerde, bugün ortalama işlemler için baskın maliyet olan zincir üstü veri maliyetlerini ele alacağız.

Okuduğun için teşekkürler. StarkNet Türkiye’yi takipte kalmayı unutma!

StarkNet Türkiye Twitter

StarkNet Türkiye YouTube

StarkNet Resmi Discord

--

--