Sözlük / Düğümler ve yazılım
Başlık zinciri
Diğer adları: En iyi başlık zinciri.
- Başlık zinciri nedir?
- Başlık zinciri, bir düğümün doğruladığı 80 baytlık blok başlıklarının dizisidir ve bu dizi, düğümün gerçekte indirdiği blok verilerinin binlerce blok önünde gidebilir.
Bir düğüm aynı anda iki şeyi izler: inandığı başlıkları ve sakladığı blok gövdelerini. Her başlık 80 bayt ağırlığındadır, dolayısıyla bir yıllık başlık, yaklaşık 52.560 blok, kabaca 4,2 MB tutar. Bu boyut farkı, bir cüzdanın herhangi bir bloğun içinde ne olduğunu söyleyebilmesinden çok önce zincirin mevcut yüksekliğini ve toplam birikmiş işi bilmesinin nedenidir.
Nasıl çalışır
Başlık zinciri, içerdiği blok sayısına göre değil birikmiş iş kanıtına (proof of work) göre sıralanır.
Her başlık üst bloğunu adlandırır, bu yüzden bir düğümün duyduğu başlıkların toplamı bir çizgi değil bir ağaç oluşturur. En büyük toplam işi taşıyan dal en iyi başlık zinciridir ve düğüm, daha sonra öne geçme ihtimaline karşı kaybeden dalları da hatırlar. Bitcoin Core bu ağacı blok dizininde, blocks/index dizini altındaki küçük bir LevelDB veritabanında tutar; bu veritabanı işlemleri barındıran ham blok dosyalarından tamamen ayrıdır.
Ağaç saklandığı için bir düğüm kendi belirsizliğini tanımlayabilir. getchaintips komutu bildiği her uç noktayı bir durumla birlikte listeler: izlediği dal için active, gövdeleri hiç indirilmemiş bir dal için headers-only, yarışı kaybeden tamamen doğrulanmış bir dal için valid-fork ve bir kuralı ihlal eden dal için invalid. Yeniden düzenleme, düğümün bunu yapabilecek bloklara sahip olduğunda bu ağaç üzerinde bir uçtan diğerine yürümesinden başka bir şey değildir.
Başlıklar, blok verilerinin atlatamadığı şeyleri atlatır. Budanmış bir düğüm yer kazanmak için eski blok dosyalarını siler ve prune=550, yani Bitcoin Core uygulamasının kabul ettiği en küçük ayarda bile genesis bloğundan itibaren her başlığı saklar. Bunlar olmadan yeni bir bloğun zaten kabul ettiği zincirin üzerine kurulduğunu kontrol edemezdi, bu yüzden başlıklar asla atamayacağı kısımdır.
Nerede görülür
Başlık zinciri, düğümünüzün ne kadar geride olduğunu söylediğinde aktardığı sayıdır.
getblockchaininfo komutunu çalıştırdığınızda iki alan elde edersiniz: blocks ve headers. headers en iyi başlık zincirinin yüksekliğidir, blocks bunun ne kadarının indirilip tamamen doğrulandığıdır ve ikisi arasındaki fark hâlâ bekleyen iştir. Eşitlenmiş bir düğümde ikisi örtüşür ve headers değeri takılı kalan bir düğüm, yalnızca yavaş olan değil eşleriyle bağlantısını kaybetmiş bir düğümdür.
Hafif cüzdanlar başka bir şey saklamaz. Bir SPV cüzdanı veya kompakt filtre istemcisi yalnızca başlıkları saklar ve bunları, önemsediği bir işlemin gerçek iş kanıtı altında bulunduğunu doğrulamak için kullanır. Zorluk da başlıklardan hesaplanabilir, çünkü hedef her 2.016 blokta yalnızca zincirde zaten bulunan zaman damgaları ve nBits değerleri kullanılarak sıfırlanır; bu da bir istemcinin hiçbir işlem görmeden saydığı işin gerçek olduğunu doğrulayabileceği anlamına gelir.
Başlık zinciri vs blok başlığı
Blok başlığı tek bir 80 baytlık kayıttır; başlık zinciri ise bunların tümünün 3 Ocak 2009 tarihli genesis bloğuna kadar geriye bağlanmış halidir. Ayrım, birinin hafif bir istemcinin iş kanıtını doğruladığını söylemesi durumunda önem kazanır. Tek bir başlık, tek bir bloğun üretilmesinin pahalı olduğunu kanıtlar. Yalnızca her biri üst bloğuna bağlanan başlık zinciri, belirli bir bloğun kimsenin sessizce değiştirmediği kesintisiz ve pahalı bir iş dizisinin arkasında durduğunu kanıtlar.