Durum Kökü: Durum Kıpırdadığında Kıpırdar, Kıpırdamadığında Durur ve Onu Açamazsınız
Ne işe yarar
Bir zincirin durumu büyük miktarda veridir. Bakiyeler, tanımlayıcılar, kimlik bilgileri, doğrulayıcı kayıtları.
Bir durum kökü, hepsine taahhüt veren tek bir değerdir. Böylece iki katılımcı veritabanlarını karşılaştırmak yerine otuz iki baytı karşılaştırabilir ve bir blok, dünyayı taşımadan kendisinden sonra dünyanın nasıl göründüğüne söz verebilir.
Bizimkinin nasıl kurulduğu
Her tür şey için bir tane, dört ayrı ağaç: hesaplar, tanımlayıcılar, kimlik bilgileri, doğrulayıcılar.
Her biri seyrek bir Merkle ağacıdır ve dört kökleri, her blok başlığında görünen tek değere birlikte özetlenir.
Ve iki taraflı kontrol burada, ki onu bir okuma yapan şey odur
Hiç değişmeyen bir alan size hiçbir şey söylemez. Sürekli değişen bir alan da söylemez.
Kanonik sırayla on iki ardışık blok çekildi. On ikisi de boş ve on ikisi de bayt bayt aynı kökü taşıyor. On bir geçiş, sıfır kıpırdama.
Ve bu estate'in daha önceki ölçümlerinde örneklenmiş bir kök, şimdikinden farklı.
Yani hiçbir şey taahhüt edilmediğinde duruyor ve bir şey edildiğinde kıpırdıyor. Bu, iki yarıdan herhangi birinin tek başına söylediğinden çok daha güçlü bir ifadedir ve herhangi bir zincirin durum kökünün bir şey ifade ettiğine inanmadan önce çalıştırmaya değer kontrol budur.
Üretmenin maliyeti
Ağaçlar her hesaplamada bellekte sıfırdan yeniden kuruluyor ve sonra atılıyor. Düğüm dört koleksiyonun her birindeki her girdiyi tarıyor, kökleri hesaplıyor, birleştiriyor ve ağaçları atıyor.
Sebep kodun yanında yazılı ve iyi bir sebep: saklanan sürüm, hiçbir şeyin geri okumadığı, ekleme başına yüzlerce ağaç düğümü yazıyordu ve günde kabaca bir gigabaytlık disk büyümesinin ana kısmıydı.
Boştaki bir zincirde sonucu hafif komik ve söylemeye değer: bu zincir her on dakikada bir boş blok üretiyor ve bunu yapmak için, bir öncekiyle aynı olan bir değeri yeniden hesaplamak üzere bütün durumunu yeniden tarıyor.
Bu boyutta bunun hiçbir maliyeti yok. Bu, değişene değil bütün duruma orantılı bir iştir, ki bedava olmaktan ilk çıkan şey odur.
Ve taahhüdü açamazsınız
Bir taahhüt, içinde bir şeyin olduğunu sonradan kanıtlayabildiğiniz için yararlıdır.
Hiçbir uç nokta böyle bir ispat döndürmüyor. Bir tanesini üretecek ve doğrulayacak fonksiyonlar kodda var ve sözleşme düzeyinde bir ilkel çoktan bir tanesini tüketiyor, ama hiçbir şey onları sunmuyor.
Yani bir okur kökü görebilir ve herhangi belirli bir bakiyenin, tanımlayıcının ya da kimlik bilgisinin onun altında olduğunu gösteremez. Değer, dışarıdan bakıldığında bozdurulacak yolu olmayan bir sözdür.
Ve karşılaştıracak bir şey yok
Yukarıda listelenen ilk amaç iki katılımcıyı karşılaştırmaktı.
Bu dağıtımda tek bir süreç ve tek bir veritabanı var, dolayısıyla kökü bununla anlaşabilecek ya da anlaşmazlığa düşebilecek ikinci bir kopya yok.
İki düğüm arasında eşleşen bir durum kökü kanıttır. Tek bir düğümden gelen bir durum kökü bir iddiadır ve bu ağ yalnızca ikincisini sunabilir.
İki zincir onu farklı biçimde sunuyor
Bu projenin çalıştırdığı diğer ağ, durum kökü için doğrudan bir çağrıyı yanıtlıyor. Bu ağ yanıtlamıyor ve değeri yalnızca bir blok başlığının içinde sunuyor.
Hiçbiri yanlış değil. Bu, iki zincirin arayüzlerinin hizalanmadığı bir yer daha ve birine karşı yazılmış bir araç diğerinde çalışmayacak.
Kendiniz neyi kontrol edebilirsiniz
solidus_canonHead, sonra aşağı doğrusolidus_getBlockBySeq,state_rootvetx_countkarşılaştırarak
Boş bloklar boyunca kök kıpırdamamalı. Sonra herhangi tek bir hesabın onun altında olduğunu kanıtlamanın bir yolunu arayın ve hiçbirinin olmadığını not edin.
Okumaya devam edin
- Buradaki Kesinlik Belirlenimcidir ve Bekleme İki Tur Değil. Turlar Ne Zaman Olursa O Zaman İki Tur
- Çatal Seçimi: Kural En Yüksek Sertifikadır ve Bu Dağıtımda Dört Doğrulayıcının Arkasında Tek Bir Veritabanı Var
- Genesis Bloğu: Bizimkini Elde Edemezsiniz ve Onu Tanımladığını İddia Eden Özet, Adının Özetidir
- Sayaç: Başarısız Bir İşlemin Ona Yaptığı ve Bu Dağıtımın Kendisinden Nasıl Korunması Gerektiği