Ana içeriğe geç

Kalıcı Durumlar

Düğümler, blok zincirinin durumlarının anlık görüntülerini periyodik olarak saklar. Her durum, belirli bir ana zincir bloğunda oluşturulur ve belirli bir TTL'ye sahiptir. Blok ve TTL, aşağıdaki algoritma kullanılarak seçilir:

ipucu

Sadece anahtar bloklar seçilebilir.

Bir bloğun bazı zaman damgası ts vardır. 2^17 saniye uzunluğunda (yaklaşık 1.5 gün) zaman dilimleri vardır. Zaman damgası ts olan bir bloğun periyodu, şu şekilde hesaplanır:

x = floor(ts / 2^17)

Her periyottan ilk anahtar blok, kalıcı bir durumu oluşturmak için seçilir.

Bir durumun TTL'si şöyle belirlenir:

TTL = 2^(18 + ctz(x))

Burada ctz(x), x'in ikili temsilindeki son sıfırların sayısını ifade eder (yani x'in 2^y ile tam bölünebildiği en büyük y).

bilgi

Bu, kalıcı durumların her 1.5 günde bir oluşturulduğu anlamına gelir; bunların yarısı 2^18 saniye (3 gün), geri kalan durumların yarısı ise 2^19 saniye (6 gün) TTL'ye sahiptir ve bu şekilde devam eder.

2024 yılında aşağıdaki uzun vadeli (en az 3 ay) kalıcı durumlar bulunmaktadır:

Blok seqnoBlok zamanıTTLSüresi Doluyor
89307062021-01-14 15:08:4012427 gün2055-01-24 08:45:44
277470862023-03-02 05:08:111553 gün2027-06-02 19:50:19
326383872023-09-12 09:27:36388 gün2024-10-04 18:08:08
348359532023-12-18 11:37:48194 gün2024-06-29 15:58:04
358930702024-02-05 00:42:5097 gün2024-05-12 02:52:58
369076472024-03-24 13:47:57776 gün2026-05-10 07:09:01
tehlike

Düğüm ilk kez başladığında, bir kalıcı durumu indirmesi gerekir.

Bu, validator/manager-init.cpp dosyasında uygulanmıştır.

not

Başlangıç bloğundan itibaren, düğüm tüm daha yeni anahtar blokları indirir.

Mevcut olan en son kalıcı duruma sahip anahtar bloğu seçer (yukarıdaki formülü kullanarak) ve ardından ilgili ana zincir durumunu ve tüm parçalar için durumları (veya sadece bu düğüm için gerekli olan parçaları) indirir.