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, sonrastate_rootdeğ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
- Bir did:solidus Aramasının Ardındaki Güven Demiri: Zincirin Bir Tane Var ve Sizin Aramanız Ona Bağlı Değil
- Bir Kimlik Bilgisi Vereninin Güvenilir Olup Olmadığını Kontrol Etmek: Kontrol Canlı ve Bugün Herkes İçin Cevap Kayıtlı Değil
- Neden Henüz Hafif İstemci Yok: Dışarıdan Kimse Bir Tane Yazamazdı, Çünkü Düğüm Bir Tanesinin Tükettiğini Yayımlamıyor
- Bir did:solidus Belgesinin Anatomisi: Her Alan Açıklanmış ve Standart Bir Kitaplığın Beklediği Biçim Olmadığı Üç Yer

