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ğru solidus_getBlockBySeq, state_root ve tx_count karşı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

Durum Kökü: Durum Kıpırdadığında Kıpırdar, Kıpırdamadığında Durur ve Onu Açamazsınız · Solidus