Ç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

Soru

Bir katılımcı iki aday geçmiş görüyor. Hangisinin üzerine inşa eder?

Her zincirin bir cevaba ihtiyacı var ve cevaplar farklı. Bazıları en uzun zinciri alır, bazıları arkasında en çok iş olanı, ve bu ailedeki protokoller bir yetersayının anlaştığına dair en yeni ispatı taşıyanı alır.

Buradaki kural

Gördüğünüz en yüksek sertifikanın adlandırdığı bloğun üzerine inşa edin.

Bir teklif eden bir blok başlattığında ebeveyni, o sertifikanın işaret ettiği bloktur, henüz sertifika yokken son işlenmiş bloğa düşerek.

Ve diğer yarısını kilit yapar. Bir katılımcı, çoktan kilitlediğiyle çelişen bir teklife oy vermez, dolayısıyla çatal seçimi dalı seçer ve kilit, fiilen bağlandığınız bir dalı terk etmenizi durdurur.

Bir yabancının gerçekten doğrulayabildiği şey, ki nadirdir

Kanonik zinciri yürüyün ve her bloğun ebeveyn özetinin bir önceki bloğun özetine eşit olduğunu kontrol edin.

Ardışık on beş bağ kontrol edildi. On beşi de eşleşti. Ve baş işaretçisinin özeti en yeni bloğun özetine eşit.

Bu, bu okuma yüzeyinde bir yabancının uçtan uca doğrulayabildiği yalnızca iki şeyden biridir, diğeri bir bloğun işlem özetinin kendi işlem listesiyle eşleşmesi. Hiçbiri hesap, anahtar ya da bize duyulan herhangi bir güven gerektirmiyor.

Bunu yapmak için yüksekliği değil kanonik sırayı kullanın. Bu zincirde yükseklik blok başına tek bir değer değildir ve yükseklikleri yürümek üç blokta ikisini atlar.

Ve bu dağıtımda çatal seçiminin gerçekte yaptığı şey

Makineye baktık.

her doğrulayıcı dizini yalnızca anahtarlar ve bir yapılandırma dosyası tutuyor, her biri on altı kilobayt tek bir veritabanı dizini, yüz yetmiş dokuz megabayt, hepsine hizmet ediyor

Dört doğrulayıcı, tek süreç, tek depo. Çatal seçiminin arasından seçeceği ikinci bir zincir kopyası yok.

Yani kural uygulanmıştır ve var olma sebebi olan durum burada ortaya çıkamaz. Ön koşulunun bulunmadığı bir yerde çalışan bir protokol mekanizması, çalıştığının kanıtı değildir ve bu sayfa, bir sınamanın olduğunu ima etmektense bunu söylemeyi tercih eder.

Gerçi kod yine de ayrışma bekliyor ve bir kez bunun bedelini ödedi

Boşta kalp atışının belirtilmiş amaçları arasında motorların ne kadar süre ayrışmış kalabileceğini sınırlamak var, ki bu size yazarların motor ayrışmasını kuramsal değil gerçek bir durum saydığını söyler.

Ve defter tam olarak bunun için bir onarım taşıyor. Baş işaretçisi kasten tek yönlüdür ve yorum sebebini söylüyor: geriden gelen bir motorun geri doldurması erken bir bloğu yeniden ekledi, baş işaretçisini başka bir motorun çoktan kanonikleştirdiği blokların gerisine sürükledi ve işaretçiye güvenen bir yeniden başlatma sonra onları öksüz bıraktı.

Bloklar kayboldu. Düzeltme, tek yönlü bir işaretçi artı geriden gelen bir başı iyileştiren bir ileri taramadır ve yorum, bir oku-sonra-yaz araya girmesinin hâlâ bir ilerlemeyi bir tik için kaybettirebileceğini kabul ediyor, ki sonraki geçiş onu onarır.

Bu, kuralın bir şemasından çok daha yararlı bir yayımdır. Mekanizma bir olayla sınanmıştır ve olay, düzeltmenin yaşadığı yere yazılmıştır.

Bir depoyu paylaşmak, anlaşmakla aynı şey değil

Tek bir veritabanına yazan dört motor birbirini teyit etmez. Yalnızca aynı fikirde olabilirler, ki güvenliğin burada hiç kontrol edilememesinin ve yukarıdaki baş işaretçisi yarışının en baştan mümkün olmasının sebebi budur.

Çatal seçiminin sağlaması gereken özellik, yani bağımsız görüşleri olan taraflar arasında yakınsama, yakınsayacak bağımsız görüşe sahip değil.

Kendiniz neyi kontrol edebilirsiniz

solidus_canonHead, sonra aşağı doğru solidus_getBlockBySeq, her bloğun parent_hash değerini bir önceki bloğun hash değeriyle karşılaştırarak

Her adımda eşleşmeliler ve başın özeti en yeni bloğunkine eşit olmalı. Onun yerine yükseklikleri yürürseniz, kopukluk olmayan kopukluklar görürsünüz, çünkü üç blokta ikisi o yolla adreslenebilir değildir.

Okumaya devam edin

Ç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 · Solidus