KESİNLİK
BLOK YÜKSEKLİĞİ
AKTİF DOĞRULAYICILAR

Solidus Durumunun Ardındaki Seyrek Merkle Ağacı: Dört Ağaç, 256 Seviye, Her Seferinde Sıfırdan Kurulup Sonra Atılıyor

Gerçekte orada ne var

Bir değil, dört ağaç. Hesaplar, tanımlayıcılar, kimlik bilgileri ve doğrulayıcıların her biri kendi ağacını alıyor ve dört kökü, her blok başlığında beliren tek durum kökünde birlikte özetleniyor.

Her ağaç 256 seviye derinliğinde, ki bu her olası 256 bitlik anahtar için yeri olduğu anlamına geliyor. Bir anahtarın yolu, anahtarın özetidir, en anlamlı bitten aşağı doğru seviye başına bir bit okunuyor.

Atomlardan çok yaprağı olan bir ağaç nasıl mümkün oluyor

Neredeyse her alt ağaç boş ve belirli bir seviyedeki her boş alt ağacın aynı özeti var.

Yani boş özetler bir kez önceden hesaplanıyor: en alttaki, iki sıfır bloğunun özetidir ve her üst seviye, altındaki seviyenin kendisiyle birleştirilmiş özetidir. Yalnızca boş olmayan kısımları saklıyorsunuz ve boşluğa yürümek yerine boş bir kardeşi tablodan arıyorsunuz.

Bir yaprak, anahtar yolunun değerinin özetiyle birleştirilmiş özetidir. Bir ebeveyn, iki çocuğunun özetidir, yol bitine göre sıralanmış hâlde, dolayısıyla boşluk numarası aradan çıkınca yapı sıradanlaşıyor.

Kanıtlar derli toplu ve doğrulayıcı katı

Bir kanıt 256 kardeş taşımıyor. Seviye başına bir bit olan otuz iki baytlık bir harita taşıyor, hangi seviyelerin boş olmayan bir kardeşi olduğunu işaretliyor, ve sonra yalnızca o kardeşleri. Bir avuç girdi tutan bir ağaç için bu çok kısa bir listedir.

Ve doğrulayıcı, kardeş sayısı haritasıyla uyuşmayan bir kanıtı geri çeviriyor. Yorum ona tam olarak ne ise onu diyor: kaçak fazlalık yok. Bu, mutlu bir kaza değil, birinin düşündüğü bir biçimlenebilirlik korumasıdır.

Canlı kökü üreten ağaç saklanmıyor

Her kök hesaplamasında düğüm, dört ağacın hepsini bellekte sıfırdan kuruyor, ilgili sütun ailesindeki her girdiyi tarayarak, ve sonra onları atıyor.

Sebep kodun yanına yazılmış ve iyi bir sebep. Saklanan sürüm ekleme başına yaklaşık iki yüz elli yedi düğüm yazıyordu, dolayısıyla bir kök hesaplaması bütün bir ağacı veritabanına yeniden yazıyordu, ki yorum bunu geliştirme ağındaki günde kabaca bir gigabaytlık disk büyümesinin ana gövdesi olarak adlandırıyor. Ve o düğümleri hiçbir şey geri okumuyordu.

Yani bu ihmal değil düşünülmüş bir takas. Yine de bir biçimi var: bir kök üretmek, değişene değil durumun tamamına orantılı iş tutuyor. Bu kadar durumla bu hiçbir şey. Hiçbir şey olmayı bırakacak ilk şeydir.

Sütun ailesi hâlâ bildiriliyor ve açılıyor, üretimde ona hiçbir şey yazmıyorken.

Ve işte sevk ettiğimiz hata, çünkü böyle bir sayfa onu taşımalı

İç düğümler eskiden tam anahtar özeti altında saklanıyordu.

Ki bu, her yaprağın üst dalları komşularıyla paylaşmak yerine kendi özel 256 düğümlük zincirini alması demekti. Yürüyüşün sonundaki kök yalnızca eklenen son yaprağı yansıtıyordu, boş kardeşler üzerinden yukarıya kadar birleştirilmiş hâlde.

Yani durum kökü, durumun değil, veritabanının en son yinelediği girdinin bir işleviydi. Vahşi doğadaki belirti, bir transferin gerçekleşmesi ve durum kökünün kımıldamamasıydı.

Düzeltme, ekleme kodunun bir düğümün yolunu seviye başına kanonikleştirmesinin sebebidir, yürüyüşün çoktan tükettiği bitleri sıfırlayarak, böylece L seviyesinden yukarı uyuşan iki yaprak L seviyesindeki düğümü gerçekten paylaşıyor.

Ve geri dönmesine karşı koruma, bellek içi ağaç ile saklanan ağacın bit düzeyinde özdeş kökler ürettiğini savunan bir testtir, ki bu tam olarak bu kusur sınıfı için doğru koruma biçimidir.

Hiçbiri bir okura ulaşmıyor

Kanıt döndüren bir uç nokta yok, dolayısıyla yukarıdaki derli toplu kanıtlar düğüme açık ve başka kimseye değil.

Ki bu, aynı yerde biten üst üste üçüncü sayfa: bir çözümleme cevabı kontrol edilemiyor ve dışarıdan bir hafif istemci yazılamıyor.

Darboğaz yapı değil. Okuma yüzeyi.

Kendiniz neyi kontrol edebilirsiniz

birbirinden hayli uzak iki yükseklikte solidus_getBlock, sonra state_root değerlerini karşılaştırın

Farklılar, dolayısıyla alan bir sabit değil canlı. Sonra herhangi bir hesabın, tanımlayıcının ya da kimlik bilgisinin onlardan birinin altında olduğunu kanıtlamanın bir yolunu arayın ve hiçbirinin olmadığına dikkat edin.

Okumaya devam edin

Solidus Durumunun Ardındaki Seyrek Merkle Ağacı: Dört Ağaç, 256 Seviye, Her Seferinde Sıfırdan Kurulup Sonra Atılıyor · Solidus — Solidus Explorer