Solidus Hangi Zincirin Gerçek Olduğuna Nasıl Karar Veriyor: En Uzun Olan Değil ve Olurken İzleyemezsiniz
En uzun zincir değil
Bir teklif eden, en çok bloğu olan dalı uzatmaz. Gördüğü en yüksek sertifikayı taşıyan dalı uzatır.
Yani "hangi zincir gerçek", uzunlukla değil sertifikalarla belirlenir ve sertifikası olmayan daha uzun bir dal, sertifikası olan daha kısa bir dala yenilir.
Üç kural, kodun belirttiği hâliyle
Bir: teklifin turu, katılımcının o anda içinde bulunduğu turla eşleşmelidir. Farklı bir turdan gelen bir teklif hiç oylanmaz.
İki: lider ispatı doğrulanmalıdır ve teklif eden doğrulayıcı kümesinde olmalıdır. O kümenin dışından gelen bir teklif, başka hiçbir şey değerlendirilmeden reddedilir.
Üç: güvenlik kilidi. Bir katılımcı bir kilitli sertifika tutar ve yalnızca ebeveyn sertifikası o kilit kadar yeni olan ya da kilitli bloğu doğrudan uzatan bir teklife oy verir.
Kilit bir geriden gelir. Daha yüksek bir sertifika geldiğinde önceki en yüksek yeni kilit olur ve yeni olan en yüksek olur.
Ve kesinlik iki tur sonradır
Bir blok, turu en yüksek sertifikanın en az iki altında olduğunda işlenir.
Yani bir blok sertifikalandığında kesin değildir. Üstüne iki tur daha sertifikalandığında kesindir, ki bunun gibi bir zincirin size henüz geri alınamaz olmayan yakın bir blok gösterebilmesinin sebebi budur.
Ve bunların hiçbirini gözleyemezsiniz
O kuralların her girdisi açık okuma yüzeyinden yok.
Sertifika yok, sertifika sayfasında ölçüldüğü gibi. Blokta ebeveyn sertifikası yok. Kilit yok. Lider ispatı yok.
bir blok teklif edenini ve turunu taşıyor, dolayısıyla bunlar, yanıt kısa kesildiği için değil gerçekten yok.
Yani hangi zincirin gerçek olduğunu belirleyen karar tamamen gözden uzak alınıyor. Sonucu, yani bir blok dizisini görebilirsiniz ve onu üreten kanıtın hiçbirini göremezsiniz.
Kodun kendisi hakkında belgelediği bir hata
Sertifika güncellemesi bir zamanlar turları, bir sertifikanın yokluğuna karşı değil bir sıfır göstergesine karşı karşılaştırıyordu.
Etkisi: sıfırıncı turdan bir sertifika sessizce düşürülüyordu, çünkü sıfır sıfırdan büyük değildir. Sonraki teklif eden sanki sertifika yokmuş gibi inşa ediyor, bloğunu genesis yer tutucusuna bağlıyor ve sıfırıncı tur bloğunu kanonik zincirden öksüz bırakıyordu.
Ve yorum, önem derecesinin nasıl değiştiğini kaydediyor. Eski serbest çalışan davranışta öksüz blok boş bir atılabilirdi. Olay güdümlü teklif altında ise her yeniden başlatmadan sonraki ilk işlem taşıyan bloktur.
Bu, yerinde açıklanmış ve etki alanı dürüstçe belirtilmiş, düzeltilmiş bir hatadır. Bir kusurun yakalanmadan önce kötüleştiğini söyleyen bir yorum, kodun doğru olduğunu söyleyenden değerlidir.
Adlandırdığımız ve iddia etmediğimiz bir rastlantı
Bu zincir şu anda bir öbekte üç blok üretiyor, sonra susuyor.
Üç, aynı zamanda işleme kuralının ihtiyaç duyduğu tur sayısıdır: bir blok artı üstünde sertifikalanmış iki tane.
Bunların aynı üç olduğunu iddia etmiyoruz. Bir bloğun bildirdiğinin ötesinde sertifikaları ya da turları göremiyoruz, dolayısıyla benzerlik bir bulgu değil bir biçimdir ve düğümün iç yapısını bilen biri, bir okumada bunun bir anlamı olup olmadığını söyleyebilir.
Kendiniz neyi kontrol edebilirsiniz
solidus_getBlockbir yükseklikle, sonrarounddeğeriniheightdeğeriyle karşılaştırın
Aynı sayı değiller ve aralarındaki fark, bir okurun dışarıdan gerçekten gözleyebileceği mutabakat biçimindeki birkaç şeyden biridir.
Okumaya devam edin
- Solidus'ta Gaz Ücreti Var mı? Hayır, ve Yalnızca Ücret Çizelgesini Okumak Size Yanlış Cevabı Verir
- Bir İşlemin Anatomisi: Gerçek ve Başarısız Tek Bir Transfer, Uçtan Uca Okundu
- Her Bloğun Arkasındaki Yetersayı Sertifikası: İyi Kurulmuş ve Dışarıdan Görünmez
- Bir Teklif Eden Sustuğunda Ne Olur: Sınırlı Bir Bekleme ve Gördüğünüzün O Olmadığını Nasıl Anlarsınız

