Stacks Ölçeklenebilirliği için Framework

Stacks Türkiye
6 min readOct 22, 2021

Muneeb Ali;

İlk olarak, herhangi bir blok zinciri ağının dikkate alması gereken iki tasarım kararı kategorisi vardır:

1-Node’lar için Hardware ve maliyet varsayımları: Bir ağın ortalama kullanıcılar için, yani ortalama ağ bant genişliğine ve kullanıma hazır bilgisayarlara (dizüstü bilgisayarlar gibi) sahip kişiler için veya veri merkezi düğümleri için tasarlanmış olması büyük bir fark yaratır.

2-Konsensüs algoritmaları: Farklı konsensüs algoritmalarının farklı trade-off’ları vardır. Ne zaman bir şey kazanırsanız (örneğin, instant finality), onu başka bir şey pahasına kazanırsınız (örneğin, ability to route around failures).

Hardware:

Hardware gereksinimleri ve bir node çalıştırmanın maliyeti için bu gerçekten bir ademi merkeziyetçilik sorusudur. (a) dizüstü bilgisayarları olan ortalama kullanıcılar, (b) daha yüksek maliyetli hardware ancak yine de kullanıcıların evde çalıştırabileceği bir cihaz, veya (c ) yalnızca veri merkezleri (ev node’ları olamaz) için optimize edebilirsiniz.

(c )’nin bir örneği, minimum kriterleri karşılayan (ev node’larının karşılayamadığı) bant genişliği bağlantılarına sahip bir veri merkezi node’u çalıştırmadığınız sürece madenci olamayacağınız ‘Dfinity’dir’. (b)’ye bir örnek olarak, hardware gereksinimlerinin oldukça maliyetli olduğu ve zaten © kategorisine doğru hareket ettikleri Solana’yı verebiliriz.

Stacks (a) kategorisi için tasarlanmıştır, yani herhangi bir kullanıcı hem bir Stacks madencisini hem de bir Stacks tam düğümünü evde normal bir dizüstü bilgisayarda çalıştırabilir.

Bu bir ademi merkeziyetçilik kararıdır.

Stacks, ademi merkeziyetçiliği en üst düzeye çıkarmak için tasarlanmıştır (Bitcoin gibi). Bu, Stacks ile daha hızlı işlem veya yüksek verimin olamayacağı anlamına gelmez, ancak büyük olasılıkla alt ağlar (aşağıda açıklanmıştır) veya uygulama zincirleri (başka bir ölçeklenebilirlik teklifi) biçiminde gelir.

Buradaki genel model, Bitcoin çevresinde katmanlar halinde ölçeklendirmektir. Stacks’ın kendisi, Bitcoin için akıllı bir sözleşme katmanı olarak düşünülebilir ve Stacks daha sonra, Stacks ana zincirinden farklı ademi decentralization/throughput tradeoffs yapan alt ağlara sahip olabilir.

Konsensüs:

Konsensüs algoritmaları açısından, verimi etkileyen birkaç trade-off vardır:

Kapalı üyelik vs. açık üyelik: Madenciliğe izin verilen madenci grubu kapalıysa, bu node’ların özgürce katılamayacağı/bırakamayacağı anlamına geliyorsa, o zaman baştan sona çok daha yükseğe çıkabilirsiniz. Bu tür bir fikir birliğine örnek olarak, Dfinity veya EOS’u verebiliriz. Ademi merkeziyetçilikte çok düşük puan alırsınız ancak blokları daha hızlı işleyebilirsiniz (çünkü madencilerin kim olduğunu zaten biliyorsunuz).

Stacks, açık bir üyelik sistemidir (Bitcoin gibi). Herhangi bir Stacks bloğunda herkes madenci olabilir. Alt ağlar için bu gereksinimi daha yükseğe çıkmak için biraz gevşetebilirsiniz (örneğin, madenciler bir dizi blok için önceden seçilebilir). Anlaşılması gereken en önemli şey, ademi merkeziyetçiliği sürdürmek için Stacks ana zincirinin açık üyelik olmasının kritik olduğudur.

Instant finality vs. Nakamoto consensus: Bazı yeni L1 PoS zincirleri Instant Finality sunar. Instant Finality (anında kesinlik) hakkında anlaşılması gereken en önemli şey, onu, sonunda bir ademi merkeziyetçilik endişesi olan başarısızlıkları (diğer şeylerin yanı sıra) yönlendirme yeteneği pahasına elde etmenizdir.

Stacks ana zinciri, Nakamoto tarzı bir fikir birliğini takip eder, yani Bitcoin’den bağımsız madencilere benzer şekilde, herhangi bir başarısızlığın üstesinden, hard fork gerektirmeden geçebilir. Alt ağlar farklı trade-off’lar seçebilir, ancak Stacks ana zincirinin, hard fork’lar için manuel müdahale olmaksızın arızaları otomatik olarak yönlendirebilmesi çok önemlidir.

Mevcut Ağ Kapasitesi:

Bu genel çerçeveyi göz önünde bulundurarak, Stacks ana zincirinin ağ kapasitesine bakalım.

Yalnızca ortalama node’lar (dizüstü bilgisayarlar gibi) için optimize etme seçeneğine bakarak, Stacks ana zincirinin bir “veri merkezi zinciri” olmadığını biliyoruz. Stacks ana zincirinin verimi kabaca Bitcoin ve Ethereum arasında bir yerde olacak. Ethereum sıklıkla infuraya güvendiği için eleştiriliyor. Çoğu ETH 1.0 düğümü bulutta çalışır. İnsanlar bunu kendi başlarına deneyebilir: ev ağınızda geth çalıştırırsanız, mevcut tüm bant genişliğinizi tüketir. Ethereum’dan alınan ders, ana zincire artık ortalama ev düğümleri tarafından çalıştırılamayacak kadar çok yük koymak yerine açık ölçeklenebilirlik çözümlerine sahip olmak istemenizdir.

Stacks ana zinciri teorik olarak bir günde yaklaşık 1,67 milyon basit transfer işlemi (STX için) yapabilir. Bu STX aktarımları, hesaplama maliyeti açısından oldukça optimize edilmiş ve oldukça basittir, bu nedenle basit işlemler (ana zincir) için mevcut teorik maksimum verimin bir göstergesi olarak hizmet edebilirler.

Karşılaştırma için bugün Ethereum günde yaklaşık 1,2 milyon işlem yapıyor. Ancak bunlar, daha karmaşık olan sözleşme çağrılarını içerir (sadece basit transferler değil).

Stacks ağının gerçek verimini anlamak için kapasite darboğazları açısından düşünmeniz gerekir. Tipik olarak vurduğunuz iki sınır vardır

1-Runtime costs, yani hesaplama maliyetleri.
2-I/O Limits, yani veri okuma ve yazma.

Stacks developerları mevcut ağ trafiğinin bir analizini yaptı ve son trafiğin yaklaşık %68'i işlem maliyetine ve %31'i I/O Limits’e bağlıydı. Buradaki en önemli şey, işlemin boyutunun kullandığı işlem kaynaklarıyla hiçbir ilgisi olmadığı için sistemin kapasitesini işlemler açısından düşünmemektir. Bir sözleşme çağrısı, bloğun çalışma zamanı boyutlarından birinin çift haneli bir yüzdesini kolayca yiyebilir (bunu 100 kilobaytlık bir Bitcoin işlemi gibi düşünün). Burada önemli olan şey, eğer bu kaynaklar için herkesten daha yüksek bir ölçülü oranda ödeme yapıyorlarsa, önce bu işlemlerin madenciliği yapılması mantıklıdır.

Ağ Büyümesi:

Stacks ana ağının Ocak 2021'de bağımsız madenciler tarafından piyasaya sürülmesinden bu yana, Stacks topluluğu büyük bir büyüme kaydetti: Stacks Accelerator’dan geçen düzinelerce startup var, developerlar teknolojinin tüm parçalarıyla uğraşıyor ve topluluğumuza her gün yeni insanlar katılıyor . Bu büyüme açıkça iyi bir şey olsa da, ek trafik aynı zamanda hepimizin kullandığı ve bağımsız madencilerin çalıştığı temel altyapının basınç testi bölümleridir ve iyileştirmelere ihtiyaç duyulan bir dizi alanı vurgulamaktadır.

Üç iyileştirme (improvements) kategorisi vardır:

  1. Minor updates (küçük güncellemeler)
  2. Consensus-breaking changes (Konsensüs bozan değişiklikler)
  3. Scalability layers (Ölçeklenebilirlik katmanları)

Küçük güncellemeler, sistem kurallarının değişmediği, ancak yazılım yükseltmelerinin çeşitli şeyleri iyileştirmeye yardımcı olabileceği anlamına gelen, fikir birliğini bozmayan güncellemelerdir. Bu tür yükseltmeler, herhangi bir yazılımın normal yaşam döngüsünün bir parçasıdır. Stacks açık kaynaklı bir yazılımdır ve herkes yazılımda küçük iyileştirmeler yapabilir ve bağımsız madenciler ve tam düğüm operatörleri yazılımlarını yükseltebilir. Yazılımın önceki herhangi bir sürümü, sistemin kurallarıyla uyumlu kalır ve ağ üzerinde çalışmaya devam eder.

Konsensüs bozan değişiklikler yalnızca SIP sürecini takip eden madenciler tarafından devreye alınabilir. Uzlaşmayı bozan değişiklikler sırasında, sistem için yeni kurallar getirilebilir veya önceki kurallar değiştirilebilir. Konsensüs bozan değişiklikleri dağıtmak, blok zincirlerinde iyi anlaşılan bir kavramdır ve Stacks kabaca Bitcoin felsefesini takip eder, yani fikir birliğini bozan değişiklikleri dağıtmak çok zordur ve madencilerin yüksek eşiğinin bu tür büyük yükseltmeleri desteklemesi gerekir.

Ölçeklenebilirlik katmanları, Stacks ana zincirini etkilemeyen “eklentiler”dir. Bunlar, herkesin dağıtabileceği ve kullanabileceği isteğe bağlı ek özellikler olarak düşünülmeli ve genellikle madencilerden herhangi bir girdi gerektirmemelidir. Hem uygulama zincirleri hem de alt ağ teklifleri, fikir birliğine dokunmadıkları ve herkesin uygun gördüğü şekilde dağıtabileceği ve kullanabileceği isteğe bağlı eklentiler olduğu anlamına gelen ölçeklenebilirlik katmanlarıdır.

Önümüzdeki Aylardaki Olası İyileştirmeler:

Herhangi bir ölçeklenebilirlik iyileştirmesi için herkesin Stacks’in tamamen merkezi olmayan bir ekosistem olduğunu anlaması gerekir. Madenciler, hangi yükseltmeyi (küçük veya büyük) dağıtmak isteyip istemediklerine karar verirler. Örneğin Hiro bir madenci değil ve ağdaki madencilerin kim olduğunu bile bilmiyor. Bu nedenle, açık kaynak topluluğunun, SIP’lerde belirtilen süreçleri takip ederek, daha fazla önemsedikleri şeyleri iyileştirmeye yardımcı olmak için kendi kendini organize etmesi gerekecektir.

Potansiyel iyileştirmelere bakış açım, bunları yukarıda belirtilen üç kategoriye ayırmaktır:

1-)Önümüzdeki haftalarda, ancak yine de oldukça etkili olabilen küçük yükseltmeler (görüş birliği olmadan) mümkündür. Örneğin, yeni maliyet tahminleri bir maliyet oylamasıyla (mevcut fikir birliği kuralları tarafından izin verilen) yayınlanabilir.

2-) 3 aylık zaman çizelgesinde, Stacks 2.1 sürümü bunların birçoğuna yardımcı olabilir.

3-) 6 aylık zaman çizelgesinde alt ağlar veya uygulama zincirleri, zaten daha sürdürülebilir uzun vadeli ölçeklenebilirlik seçenekleri olan ölçeklenebilirlik sağlayabilir.

Stacks ekosistemi tamamen açık kaynaklıdır ve herkes daha fazla önemsediği herhangi bir iyileştirmeye yardımcı olabilir. Tamamen merkezi olmayan bir ortamda faaliyet gösteriyoruz ve bu ekosistemin diğerlerinden farklı olduğu ve Bitcoin’e benzer şekilde ademi merkeziyetçilik yoluyla uzun vadede daha dayanıklı olabileceği yolları vurgulamak önemlidir.

Bu bağlamı göz önünde bulundurarak, kısa vadede potansiyel şeylere bakalım:

Yardımcı olabilecek şeyler:

1-) Akıllı sözleşme çalışma zamanı ve işlem maliyetleri, şu anda gerçekte olduğundan çok daha pahalıya mal olacakmış gibi ele alınmaktadır. Bu, Stacks zincirinin kapasitesini önemli ölçüde sınırlar ancak düzeltilebilir. Stacks 2.0 öncesi potansiyel iyileştirmeleri 1 uygulamak için SIP-006 2'de özetlendiği gibi bir maliyet oylaması yapılabilir. Maliyet-oy süreci Stacks sahiplerinin katılımını gerektirecektir.

2-) Gördüğüm kadarıyla, gelecek olan Stacks 2.1 sürümü bir sürü iyileştirmeye yardımcı olabilir. Tartışma burada bağlantılıdır 12.

3-) Son kullanıcılar ve developerlar için daha fazla seçenek ve özellik sağlayan alt ağlar veya Uygulama zincirleri önümüzdeki ~6 ay içinde uygulanabilir. Önümüzdeki günlerde alt ağlar hakkındaki düşüncelerim hakkında daha fazla ayrıntı paylaşacağım, ancak başlamak için burada fikrin kısa bir özetini paylaşacağım. Belirtildiği gibi, Stacks ana zinciri, ademi merkeziyetçilik ve bağımsız doğrulama için optimize ediyor. Herkes bağımsız olarak bunun doğru sürüm olduğunu doğrulayabilir ve herkes bir düğüm çalıştırabilir. Bu, ortalama dizüstü bilgisayar düğümlerinin bağlanabilmesini istediğiniz için kasıtlı bir tasarım kararıdır, ancak bunun bir dezavantajı, ana zincirdeki etkili bant genişliğinizin nispeten küçük olacağıdır. Ana zincir için sağlıklı bir ücret piyasası ortaya çıkacak (bu da Stackerlar için daha yüksek Bitcoin ödülleri anlamına geliyor!). Ana zincirdeki blok alanı her zaman kıt ve pahalı olacaktır (Bitcoin gibi), ancak bunun etrafında ölçeklendirebilirsiniz.

Alt ağlar, çekirdek ana Stacks zincirinin bir uzantısı olarak düşünülebilir. Alt ağlar, ademi merkeziyetçilik tarafında daha düşük puan alabilir, ancak ademi merkeziyetçilikte daha düşük puan aldığınızda, düşük maliyetlerle işlemlerin hızında çok yüksek puan alabilirsiniz. Ve bunu ana zincirle birleştirirseniz, şimdi her iki dünyanın da en iyisini elde edersiniz.

Çözümleri düşünürken ve uygularken, Stacks ekosisteminin, merkezi bir otorite tarafından dikte edilen bir gecede gerçekleşen değişikliklere karşı kademeli değişiklikleri (Bitcoin gibi) uygulamak için açık bir merkezi olmayan süreci 1 izlediğini unutmamak da önemlidir.

Uygulamalarını ve sözleşmelerini önümüzdeki haftalarda kullanıma sunan developerlar şunları yapabilir:

1-)Ağdaki maliyetler hakkında bir fikir edinmek için daha iyi kıyaslama araçları kullanın ve kullanıcıların beklentilerini (ör. daha iyi fee) belirleyin.
2-)Daha iyi maliyet tahminleri yayınlandıktan sonra başlatmanın daha mantıklı olup olmadığını görmek için maliyet oylama sürecini izleyebilir. Maliyet oylamasının Stacks 2.1'i beklemesi gerekmez.
3-)Alt ağlar veya uygulama zincirleri gibi çözümlerle uygulamalarının 6 aylık ve üzeri dönemde nasıl gelişebileceğini düşünmeye başlamak için alt ağ teklifini ve yaklaşan geliştirmeyi takip edin.

Zaman ayırıp okuduğunuz için teşekkürler!

-Muneeb, Stacks kurucusu

--

--