← Back to dashboard ← Powrót do dashboardu

X1-ClockDrift — Methodology

How this dashboard interprets time signals on the X1 blockchain — and why distinguishing pipeline latency from clock drift matters.

X1-ClockDrift — Metodologia

Jak ten dashboard interpretuje sygnały czasu na blockchainie X1 — i dlaczego rozróżnienie opóźnienia pipeline od dryfu zegara ma znaczenie.

What this dashboard measures

X1-ClockDrift monitors two distinct layers affecting time on the X1 blockchain:

These are different phenomena with different causes and different fixes. Conflating them — as earlier versions of this dashboard did — produces misleading conclusions. The v1.0.0 refactor explicitly separates the two so each gets the framing it deserves.

Co mierzy ten dashboard

X1-ClockDrift monitoruje dwie odrębne warstwy wpływające na czas na blockchainie X1:

To są różne zjawiska o różnych przyczynach i różnych rozwiązaniach. Ich mylenie — jak robiły wcześniejsze wersje tego dashboardu — prowadzi do błędnych wniosków. Refaktor v1.0.0 jednoznacznie rozdziela te dwa zjawiska, żeby każde dostało odpowiednią narrację.

Layer 1Vote pipeline latency

Every vote on Tachyon (the Solana fork powering X1) goes through a pipeline:

  1. Validator creates vote (timestamp = local UTC) — ~50-100 ms signing & serialization
  2. Vote propagates via gossip to the current leader — ~200-400 ms
  3. Leader packs vote into next block — ~100-200 ms
  4. Block finalized and visible on-chain — ~50-150 ms

Total: ~400-850 ms. This is inherent to the protocol — not a bug, not something operators can “fix”.

When this dashboard shows the X1 chain as “-800 ms behind real UTC”, it is measuring this pipeline latency, not validator clock errors.

Proof this is protocol-level, not clock drift

All 12 X1 Labs foundation nodes show identical -842 to -844 ms offset. If their clocks were misconfigured, each would show different values. Identical signatures across well-managed nodes prove the offset comes from the protocol, not the operators.

Theo (X1 Labs), on the Layer 1/Layer 2 distinction (personal communication, X1 Labs Telegram): “If it were clock drift, every validator would have different offset. Identical signal = pipeline, not drift.”

Layer 1Opóźnienie pipeline głosowania

Każdy vote na Tachyonie (forku Solany na której działa X1) przechodzi przez pipeline:

  1. Walidator tworzy vote (timestamp = lokalny UTC) — ~50-100 ms podpisywanie i serializacja
  2. Vote propaguje przez gossip do aktualnego leadera — ~200-400 ms
  3. Leader pakuje vote do następnego bloku — ~100-200 ms
  4. Blok finalizowany i widoczny on-chain — ~50-150 ms

Łącznie: ~400-850 ms. To jest nieodłączne dla protokołu — nie bug, nie coś co operator może „naprawić".

Gdy ten dashboard pokazuje chain X1 jako „-800 ms za realnym UTC", mierzy właśnie to opóźnienie pipeline, a nie błędy zegara walidatorów.

Dowód że to poziom protokołu, nie dryf zegara

Wszystkie 12 nodów fundacji X1 Labs pokazuje identyczne przesunięcie -842 do -844 ms. Gdyby ich zegary były źle skonfigurowane, każdy pokazywałby inną wartość. Identyczne sygnatury na dobrze zarządzanych nodach dowodzą, że przesunięcie pochodzi z protokołu, a nie od operatorów.

Theo (X1 Labs) o rozróżnieniu Layer 1 / Layer 2 (osobista korespondencja, X1 Labs Telegram, oryginalnie po angielsku): “If it were clock drift, every validator would have different offset. Identical signal = pipeline, not drift.”

Layer 2Clock drift

Some validators have genuinely broken NTP/chrony configurations. Their system clocks drift by seconds or minutes from real UTC. Examples observed on X1 mainnet:

This is clock drift in the traditional sense. Operators fix it by configuring chrony correctly with stratum-1 NTP sources.

Note: the Strontium oracle (a separate X1 Labs project) corrects Clock::unix_timestamp at protocol level so chain consumers see correct UTC time even when individual validators drift. This dashboard observes the raw measurement before that correction.

Layer 2Dryf zegara

Niektórzy walidatorzy mają faktycznie błędnie skonfigurowane NTP/chrony. Ich zegary systemowe odchylają się od prawdziwego UTC o sekundy lub minuty. Przykłady zaobserwowane na X1 mainnet:

To jest dryf zegara w tradycyjnym sensie. Operatorzy naprawiają to konfigurując chrony poprawnie ze źródłami NTP stratum-1.

Uwaga: Strontium oracle (osobny projekt X1 Labs) koryguje Clock::unix_timestamp na poziomie protokołu, więc konsumenci chain widzą poprawny czas UTC nawet gdy poszczególne walidatory dryfują. Ten dashboard obserwuje surowy pomiar przed tą korekcją.

Quick reference

SignalLayer 1 — PipelineLayer 2 — Drift
SourceTachyon vote consensusValidator system clock
Magnitude~400-850 msseconds to minutes
Per-validator patternIdentical across well-synced nodesDifferent per validator
Stable over time?Yes (protocol-level)Often grows / drifts
Operator can fix?No (inherent to protocol)Yes (NTP/chrony config)
This dashboard labelvote pipeline latencyclock drift

Szybka ściągawka

SygnałLayer 1 — PipelineLayer 2 — Dryf
ŹródłoKonsensus vote TachyonZegar systemowy walidatora
Skala~400-850 mssekundy do minut
Wzorzec per walidatorIdentyczny na dobrze zsynchronizowanych nodachRóżny per walidator
Stabilny w czasie?Tak (poziom protokołu)Często rośnie / dryfuje
Operator może naprawić?Nie (nieodłączne dla protokołu)Tak (konfiguracja NTP/chrony)
Etykieta na tym dashboardzievote pipeline latencyclock drift

How to read each section

X1 vote pipeline latency vs UTC (top hero card)

Shows current chain pipeline lag. Stable ~-800 ms = healthy. Sudden swings or values > 2 s = network stress, deployments, or load events.

Validator pipeline health (4-card breakdown)

Vote pipeline latency over time (chart)

Aggregate latency across the network. Watch for:

Anomalies & deviations (split tables)

Jak czytać każdą sekcję

X1 vote pipeline latency vs UTC (górna karta hero)

Pokazuje aktualne opóźnienie pipeline chainu. Stabilne ~-800 ms = zdrowo. Nagłe wahania lub wartości > 2 s = stres sieci, deploymenty, lub load testy.

Validator pipeline health (rozkład na 4 karty)

Vote pipeline latency over time (wykres)

Zagregowane opóźnienie w skali sieci. Obserwuj:

Anomalie i odchylenia (podzielone tabele)

Measurement methodology

Reference clock

The Sentinel server (the host running this daemon) synchronizes via chrony to multiple stratum-1 atomic time sources:

Sentinel offset to UTC consensus is typically ±50 µs with RMS ~30 µs. This is atomic-level precision — far below any threshold relevant for this dashboard’s measurements.

Drift / lag calculation

drift_ms = (vote_timestamp_in_chain_ms) − (sentinel_local_observation_ms)

For each vote on-chain, we record:

ts_chain
timestamp the validator wrote in their Vote instruction (local UTC at vote-creation time)
ts_local_us
when the Sentinel observed the slot containing that vote (microsecond precision, atomic-disciplined clock)

The difference is the validator’s pipeline latency (if in normal range) or clock drift (if extreme).

Aggregation

5-minute buckets, computed via SQL median/mean over all votes from each validator in the bucket. Validators with <100 samples in 24 h are excluded from the “top pipeline efficient” ranking to avoid statistical noise. The Anomalies tables use a softer floor (≥20 samples) so early operational signals aren’t suppressed.

Chart aggregation (v1.2.0): at wider window selections (4 d / 6 d / 12 d) the dashboard groups consecutive raw buckets client-side into 10-minute / 15-minute / 30-minute buckets so the chart stays readable. The 2 d window keeps raw 5-minute resolution. The current bucket interval is shown in the chart subtitle.

Foundation cluster

12 X1 Labs operated nodes (verified via x1val.online listings) shown separately because their drift is operational baseline, not validator misconfiguration. The foundation pipeline trend chart over 14 days is the most sensitive indicator of X1 Labs operational changes — sudden >100 ms shifts in the avg-lag line correspond to Tachyon config changes, NTP source swaps, or deployments.

Metodologia pomiaru

Zegar referencyjny

Serwer Sentinel (host na którym działa ten daemon) synchronizuje się przez chrony do wielu atomowych źródeł czasu stratum-1:

Odchylenie Sentinela od konsensusu UTC wynosi typowo ±50 µs z RMS ~30 µs. To jest precyzja atomowa — daleko poniżej jakiegokolwiek progu istotnego dla pomiarów tego dashboardu.

Obliczenie dryfu / opóźnienia

drift_ms = (vote_timestamp_in_chain_ms) − (sentinel_local_observation_ms)

Dla każdego vote on-chain rejestrujemy:

ts_chain
timestamp który walidator zapisał w swojej instrukcji Vote (lokalny UTC w momencie tworzenia vote)
ts_local_us
moment w którym Sentinel zaobserwował slot zawierający ten vote (precyzja mikrosekundowa, zegar dyscyplinowany atomowo)

Różnica to opóźnienie pipeline walidatora (jeśli w normalnym zakresie) lub dryf zegara (jeśli skrajny).

Agregacja

Kubełki 5-minutowe, liczone przez SQL median/mean nad wszystkimi vote’ami danego walidatora w kubełku. Walidatorzy z <100 próbkami w 24 h są wykluczeni z rankingu „top pipeline efficient", żeby uniknąć szumu statystycznego. Tabele Anomalii używają łagodniejszego progu (≥20 próbek), żeby wczesne sygnały operacyjne nie były tłumione.

Agregacja wykresu (v1.2.0): przy szerszych oknach (4 d / 6 d / 12 d) dashboard grupuje sąsiadujące kubełki po stronie klienta na 10-minutowe / 15-minutowe / 30-minutowe, żeby wykres pozostał czytelny. Okno 2 d zachowuje surową rozdzielczość 5-minutową. Aktualny interwał kubełka pokazany jest w podtytule wykresu.

Klaster fundacji

12 nodów operowanych przez X1 Labs (zweryfikowanych przez listingi x1val.online) pokazane osobno, ponieważ ich dryf to baseline operacyjny, a nie błędna konfiguracja walidatora. Wykres trendu pipeline fundacji w 14 dniach jest najczulszym wskaźnikiem zmian operacyjnych X1 Labs — nagłe skoki >100 ms na linii średniego opóźnienia odpowiadają zmianom konfiguracji Tachyona, podmianom źródła NTP, lub deploymentom.

Diagnosing your validator

If your validator shows elevated drift on this dashboard, walk through these steps to identify the cause. The dashboard distinguishes pipeline issues (network/infra, Layer 1) from clock issues (NTP/chrony, Layer 2) — by the end of this guide you will know exactly what to fix.

1 Compare to other validators

Look at the X1 Labs foundation pipeline trend chart and the Vote pipeline latency over time chart. Is your offset elevated while the foundation cluster and top-100 stake validators are also elevated?

Case A — Network-wide elevation

Diagnosis: Chain-wide pipeline event. X1 Labs operational change, network stress, leader skips, or load test.

Action: Wait. Your validator is fine; the protocol is experiencing turbulence. Baseline typically returns within hours. Watch the foundation chart for confirmation that the cluster recovers together.

Case B — Only your validator elevated

Diagnosis: Your specific node has an issue.

Action: Continue to Step 2 to determine whether it’s pipeline or clock.

2 Check the magnitude

Look at your validator’s drift in the Anomalies & deviations section on the dashboard. The magnitude band tells you which subsystem to investigate.

✅ |drift| < 500 ms — Normal pipeline

No action needed. Your validator is performing correctly. The remaining sections of this guide do not apply.

⚠️ 500 ms ≤ |drift| < 5 s — Pipeline anomaly (Tier 1)

This is NOT a clock issue. Your chrony/NTP is fine; the problem is somewhere in your vote pipeline:

  • Slow network connection or packet loss
  • CPU saturation during voting
  • Geographic distance from current leader rotation
  • Suboptimal Tachyon configuration
  • Insufficient gossip peer connections

Diagnostic commands:

# Check leader proximity
solana-validator leader-schedule --output json | head

# Network round-trip to gossip peers
ping -c 10 <known-leader-ip>

# CPU / memory load
top -bn1 | head -5
iostat -x 1 5

# Network connections (Solana gossip / TPU / TVU)
ss -tuln | grep -E '(8000|8001|8003)'

Investigation steps:

  1. Verify gossip peer count is healthy (typically 50+ active peers).
  2. Monitor CPU during voting — should stay below 70 % sustained.
  3. Check whether your VPS provider has bandwidth caps active.
  4. Consider geographic relocation closer to cluster center.
  5. Review Tachyon config for tuning opportunities.

🔴 |drift| ≥ 5 s — Clock drift (Tier 2)

This IS a clock issue. Your system time is wrong. Operator action is required.

Diagnostic commands:

# Check current chrony status
chronyc tracking
# Should show: stratum 1-3, last offset < 50 ms

# List time sources
chronyc sources -v
# Should show 3+ sources in "combined" or "selected" state

# System NTP status
timedatectl status
# Should show: NTP service: active, NTP synchronized: yes

# Check for systemd-timesyncd conflict
systemctl status systemd-timesyncd
# If active, this conflicts with chrony — disable it

Fix steps:

  1. If systemd-timesyncd is active, disable it: sudo systemctl disable --now systemd-timesyncd
  2. Configure chrony with multiple stratum-1 sources. Edit /etc/chrony/chrony.conf:
    server ptbtime1.ptb.de iburst
    server tempus1.gum.gov.pl iburst
    server time.nist.gov iburst
    pool pool.ntp.org iburst maxsources 4
  3. Restart chrony: sudo systemctl restart chrony
  4. Verify firewall allows outbound UDP 123: sudo ufw allow out 123/udp
  5. Wait 1–2 hours for chrony to converge to atomic-level accuracy.
  6. Re-run chronyc tracking — last offset should drop to < 50 ms within an hour.

3 Verify the fix

After making changes, watch your validator on this dashboard for 30+ minutes. The drift should drop into the normal range and the severity badge should change:

🔴 Layer 2 drift → ⚠️ Slow pipeline → ✅ Normal pipeline

If drift persists after Step 2 fixes for Tier 2 (clock issue), your problem is likely Tier 1 (infrastructure) misclassified due to extreme network delay. Investigate per Tier 1 steps above.

If drift persists after Step 2 fixes for Tier 1 (infrastructure), and you have ruled out chrony, contact the X1 community on Telegram with your validator pubkey and the timestamps where you see elevated drift. Foundation may have additional context.

Diagnostyka twojego walidatora

Jeśli twój walidator pokazuje podwyższony dryf na tym dashboardzie, przejdź przez te kroki, żeby zidentyfikować przyczynę. Dashboard rozróżnia problemy pipeline (sieć/infra, Layer 1) od problemów zegara (NTP/chrony, Layer 2) — pod koniec tego przewodnika będziesz wiedzieć dokładnie co naprawić.

1 Porównaj z innymi walidatorami

Spójrz na wykres X1 Labs foundation pipeline trend oraz wykres Vote pipeline latency over time. Czy twoje przesunięcie jest podwyższone, podczas gdy klaster fundacji i walidatory z top-100 stake też są podwyższone?

Przypadek A — Podwyższenie sieciowo

Diagnoza: Zdarzenie pipeline w skali chain. Zmiana operacyjna X1 Labs, stres sieci, leader skips, lub load test.

Akcja: Czekaj. Twój walidator jest OK; protokół przeżywa turbulencje. Baseline zazwyczaj wraca w ciągu godzin. Obserwuj wykres fundacji jako potwierdzenie, że klaster odzyskuje wspólnie.

Przypadek B — Tylko twój walidator podwyższony

Diagnoza: Twój konkretny node ma problem.

Akcja: Przejdź do Kroku 2, żeby ustalić czy to pipeline czy zegar.

2 Sprawdź skalę

Spójrz na dryf swojego walidatora w sekcji Anomalie i odchylenia na dashboardzie. Pasmo skali mówi ci który subsystem badać.

✅ |dryf| < 500 ms — Pipeline normalny

Akcja nie jest potrzebna. Twój walidator działa poprawnie. Pozostałe sekcje tego przewodnika nie dotyczą.

⚠️ 500 ms ≤ |dryf| < 5 s — Anomalia pipeline (Tier 1)

To NIE jest problem zegara. Twój chrony/NTP jest OK; problem jest gdzieś w twoim vote pipeline:

  • Wolne łącze sieciowe lub utrata pakietów
  • Saturacja CPU podczas głosowania
  • Dystans geograficzny od aktualnej rotacji leaderów
  • Nieoptymalna konfiguracja Tachyona
  • Niewystarczająca liczba peerów gossip

Komendy diagnostyczne:

# Check leader proximity
solana-validator leader-schedule --output json | head

# Network round-trip to gossip peers
ping -c 10 <known-leader-ip>

# CPU / memory load
top -bn1 | head -5
iostat -x 1 5

# Network connections (Solana gossip / TPU / TVU)
ss -tuln | grep -E '(8000|8001|8003)'

Kroki diagnostyczne:

  1. Zweryfikuj że liczba peerów gossip jest zdrowa (zazwyczaj 50+ aktywnych peerów).
  2. Monitoruj CPU podczas głosowania — powinno utrzymywać się poniżej 70 % stale.
  3. Sprawdź czy twój provider VPS ma aktywne limity bandwidth.
  4. Rozważ relokację geograficzną bliżej centrum klastra.
  5. Przejrzyj konfigurację Tachyona pod kątem możliwości tuningu.

🔴 |dryf| ≥ 5 s — Dryf zegara (Tier 2)

TO JEST problem zegara. Twój czas systemowy jest błędny. Wymagana akcja operatora.

Komendy diagnostyczne:

# Check current chrony status
chronyc tracking
# Should show: stratum 1-3, last offset < 50 ms

# List time sources
chronyc sources -v
# Should show 3+ sources in "combined" or "selected" state

# System NTP status
timedatectl status
# Should show: NTP service: active, NTP synchronized: yes

# Check for systemd-timesyncd conflict
systemctl status systemd-timesyncd
# If active, this conflicts with chrony — disable it

Kroki naprawy:

  1. Jeśli systemd-timesyncd jest aktywne, wyłącz: sudo systemctl disable --now systemd-timesyncd
  2. Skonfiguruj chrony z wieloma źródłami stratum-1. Edytuj /etc/chrony/chrony.conf:
    server ptbtime1.ptb.de iburst
    server tempus1.gum.gov.pl iburst
    server time.nist.gov iburst
    pool pool.ntp.org iburst maxsources 4
  3. Zrestartuj chrony: sudo systemctl restart chrony
  4. Zweryfikuj że firewall pozwala na ruch wychodzący UDP 123: sudo ufw allow out 123/udp
  5. Czekaj 1–2 godziny aż chrony osiągnie zbieżność do dokładności atomowej.
  6. Uruchom ponownie chronyc tracking — last offset powinien spaść do < 50 ms w ciągu godziny.

3 Zweryfikuj naprawę

Po wprowadzeniu zmian, obserwuj swój walidator na tym dashboardzie przez 30+ minut. Dryf powinien spaść do zakresu normalnego, a badge severity powinien się zmienić:

🔴 Layer 2 dryf → ⚠️ Pipeline wolny → ✅ Pipeline normalny

Jeśli dryf się utrzymuje po naprawach z Kroku 2 dla Tier 2 (problem zegara), twój problem to prawdopodobnie Tier 1 (infrastruktura) źle sklasyfikowane przez ekstremalne opóźnienie sieci. Diagnozuj zgodnie z krokami Tier 1 powyżej.

Jeśli dryf się utrzymuje po naprawach z Kroku 2 dla Tier 1 (infrastruktura) i wykluczyłeś chrony, skontaktuj się ze społecznością X1 na Telegramie z pubkey twojego walidatora i timestampami gdzie widzisz podwyższony dryf. Fundacja może mieć dodatkowy kontekst.

Case study: Tachyon v3.0.15 deployment (2026-05-05)

On 2026-05-05 X1 Labs deployed Tachyon v3.0.15 to mainnet, announcing 30-40% faster transaction processing via XDP Turbine and accelerated PubSub. This dashboard captured the deployment event in real time — providing empirical validation of the Layer 1 / Layer 2 framework.

Observed timeline (foundation cluster, 12 nodes)

Time (UTC) Avg pipeline lag Max Min Event
11:00-541 ms-31 ms-1057 msPre-update steady state
12:00-492 ms-172 ms-795 msPre-update baseline
13:00 +2095 ms +49,891 ms -994 ms 🔴 Update deployment — node restarts
14:00-449 ms-24 ms-976 msPost-update stable
15:00-550 ms-7 ms-1007 msNew baseline established

Measured impact

  • Pre-update 7-day baseline: -812 ms
  • Post-update baseline: -539 ms
  • Pipeline latency reduction: 33.7 % — within X1 Labs’ announced 30-40 % range
  • Update spike duration: 1 hour (single bucket)
  • Active nodes throughout: 12 / 12 — no node went offline
  • Layer 2 clock drift impact: none — validator system clocks were untouched

Why this validates the Layer 1 / Layer 2 framework

A protocol-level update (Tachyon v3) changed Layer 1 (vote pipeline latency) by 33.7 % while leaving Layer 2 (clock drift) entirely unchanged. This is exactly what the framework predicts: the two layers represent independent phenomena affected by independent causes.

A monitoring tool that conflated drift with pipeline latency would have either flagged the entire foundation cluster as suddenly “fixing” their clocks (nonsense — they didn’t touch them), or missed the protocol improvement entirely. By separating Layer 1 from Layer 2, this dashboard correctly attributed the change to a protocol upgrade — and even quantified its impact within the announced range.

Operational change alert behavior

The Foundation pipeline trend’s “operational change detected” alert fired at 13:00Z with Δ2586 ms (-492 → +2095 ms). This is the alert behaving correctly — flagging a major operational change for investigation, without falsely attributing it to clock drift.

The +49,891 ms max value during the update bucket reflects nodes writing placeholder timestamps during restart, not actual clock skew. The new chart Y-axis clamping (added in v1.4.0) preserves chart readability during such events while listing actual values in the outlier alert.

Case study: wdrożenie Tachyon v3.0.15 (2026-05-05)

5 maja 2026 X1 Labs wdrożyło Tachyon v3.0.15 na mainnet, zapowiadając 30-40 % szybsze przetwarzanie transakcji dzięki XDP Turbine i przyspieszonemu PubSub. Ten dashboard zarejestrował zdarzenie deployment w czasie rzeczywistym — dostarczając empirycznej walidacji framework Layer 1 / Layer 2.

Zaobserwowana oś czasu (klaster fundacji, 12 nodów)

Czas (UTC) Średnie opóźnienie pipeline Max Min Zdarzenie
11:00-541 ms-31 ms-1057 msPre-update steady state
12:00-492 ms-172 ms-795 msPre-update baseline
13:00 +2095 ms +49,891 ms -994 ms 🔴 Wdrożenie update’u — restarty nodów
14:00-449 ms-24 ms-976 msPost-update stabilny
15:00-550 ms-7 ms-1007 msUstanowiony nowy baseline

Zmierzony wpływ

  • Pre-update 7-dniowy baseline: -812 ms
  • Post-update baseline: -539 ms
  • Redukcja opóźnienia pipeline: 33.7 % — w zapowiadanym przez X1 Labs zakresie 30-40 %
  • Czas trwania spike’u update: 1 godzina (jeden bucket)
  • Aktywne nody przez cały czas: 12 / 12 — żaden nie zszedł offline
  • Wpływ na Layer 2 (dryf zegara): żaden — zegary systemowe walidatorów nie zostały dotknięte

Dlaczego to waliduje framework Layer 1 / Layer 2

Update protokołu (Tachyon v3) zmienił Layer 1 (opóźnienie vote pipeline) o 33.7 %, pozostawiając Layer 2 (dryf zegara) zupełnie nietknięty. To dokładnie to, co framework przewiduje: obie warstwy reprezentują niezależne zjawiska dotknięte niezależnymi przyczynami.

Narzędzie monitoringu mieszające dryf z pipeline latency albo oznaczyłoby całą fundację jako nagle „naprawiającą” swoje zegary (bezsens — nie tknęli ich), albo zupełnie przegapiło improvement protokołu. Przez rozdzielenie Layer 1 od Layer 2 ten dashboard poprawnie przypisał zmianę do upgrade’u protokołu — i nawet skwantyfikował jego wpływ w zapowiadanym zakresie.

Zachowanie alertu zmiany operacyjnej

Alert „wykryto zmianę operacyjną” Foundation pipeline trend zadziałał o 13:00Z z Δ2586 ms (-492 → +2095 ms). To jest alert zachowujący się poprawnie — flagujący znaczącą zmianę operacyjną do weryfikacji, bez fałszywego przypisania jej do dryfu zegara.

Wartość max +49,891 ms podczas bucketu update’u odzwierciedla nody zapisujące placeholder timestamps podczas restartu, nie rzeczywisty skew zegara. Nowe Y-axis clamping wykresu (dodane w v1.4.0) zachowuje czytelność wykresu podczas takich zdarzeń, podczas gdy rzeczywiste wartości są wymienione w outlier alert.

Case study: Capybara delegation cleanup (2026-05-05 to 2026-05-06)

Within 36 hours of the Tachyon v3.0.15 deployment, the X1 Labs delegation program and the Capybara protocol executed a coordinated cleanup of farming validators. The dashboard captured both events in succession — providing a second validation case for the Layer 1 / Layer 2 framework: this time showing that governance / economic events affect neither layer’s measurements.

Observed timeline

DateValidators in networkActiveEvent
2026-05-04~2,400~2,400Pre-cleanup baseline
2026-05-05~1,700~1,700Wave 1 — first farms cut
2026-05-06 1,918 observed 1,008 active 🟡 Wave 2 — 900 validators stopped voting
x1val.online (live)867 nodes / 828 producersCross-reference

Measured impact

  • Active validators (last_seen_slot < 1000 slots ago): 1,008
  • Zombies (50,000-100,000 slots behind): 900 — stopped voting 6-12 h ago
  • Stake distribution: 1,241 of 1,918 (65 %) had only 1-2 XNT remaining (median 2 XNT) — characteristic of a post-Capybara state
  • Layer 1 baseline: unchanged (-540 ms) — protocol untouched
  • Layer 2 outliers: unchanged (one validator, 9XcM7f…mVLr7w, at -25.1 s)
  • Foundation cluster: unaffected (12 / 12 active)

Why this validates the framework

The Tachyon v3.0.15 deployment changed Layer 1 only (33.7 % reduction). The Capybara cleanup changed neither Layer 1 nor Layer 2 — it changed the economic state of the network. Two events, two different effect surfaces, both correctly classified by the dashboard.

Identical-drift cluster detection benefited dramatically: pre-cleanup the “largest cluster” was often dominated by zombie farms with stake near zero; post-cleanup the largest meaningful cluster shrank from 154 detected to ~20 (filtered to ≥100 XNT total stake), and the network’s true operational structure became visible.

Why we filter zombies

Zombie validators continue sending vote messages with their original vote_account after their delegated stake is withdrawn. The daemon observes these votes as it would any other. Without filtering, histograms, scatter plots, and cluster detection would all be biased by data from validators that no longer participate in consensus in any meaningful way.

Starting v1.5.0, the dashboard filters validators whose last_seen_slot is more than 1000 slots behind the chain head (~7 minutes). This correctly excludes Capybara-cleaned farms while preserving validators with brief delays from leader-rotation jitter or temporary network issues. The daemon publishes chain_max_slot, active_validators, and observed_validators in summary.json so the Network state widget at the top of the dashboard shows both numbers explicitly.

Case study: cleanup delegacji Capybara (2026-05-05 do 2026-05-06)

W ciągu 36 godzin od wdrożenia Tachyon v3.0.15 program delegacji X1 Labs i protokół Capybara wykonały skoordynowany cleanup farming validators. Dashboard zarejestrował oba zdarzenia w sekwencji — dostarczając drugiego case study dla framework Layer 1 / Layer 2: tym razem pokazującego, że zdarzenia governance / ekonomiczne nie wpływają na pomiary żadnej z warstw.

Zaobserwowana oś czasu

DataWalidatorzy w sieciAktywniZdarzenie
2026-05-04~2,400~2,400Baseline pre-cleanup
2026-05-05~1,700~1,700Wave 1 — pierwsze farmy wycięte
2026-05-06 1,918 obserwowanych 1,008 aktywnych 🟡 Wave 2 — 900 walidatorów przestało głosować
x1val.online (live)867 nodów / 828 block producerówCross-reference

Zmierzony wpływ

  • Aktywni walidatorzy (last_seen_slot < 1000 slotów temu): 1,008
  • Zombies (50,000-100,000 slotów temu): 900 — przestali głosować 6-12 h temu
  • Rozkład stake: 1,241 z 1,918 (65 %) miało tylko 1-2 XNT (mediana 2 XNT) — charakterystyczne dla stanu post-Capybara
  • Layer 1 baseline: bez zmian (-540 ms) — protokół nietknięty
  • Layer 2 outliers: bez zmian (jeden walidator, 9XcM7f…mVLr7w, dryf -25.1 s)
  • Klaster fundacji: bez wpływu (12 / 12 aktywnych)

Dlaczego to waliduje framework

Wdrożenie Tachyon v3.0.15 zmieniło tylko Layer 1 (redukcja 33.7 %). Capybara cleanup nie zmienił ani Layer 1, ani Layer 2 — zmienił ekonomiczny stan sieci. Dwa zdarzenia, dwie różne powierzchnie efektu, oba poprawnie sklasyfikowane przez dashboard.

Wykrywanie identical-drift clusters dramatycznie skorzystało: pre-cleanup „największy klaster” był często zdominowany przez zombie farmy ze stake blisko zera; post-cleanup największy znaczący klaster zmalał ze 154 wykrytych do ~20 (filtrowane do ≥100 XNT total stake), i stała się widoczna prawdziwa operacyjna struktura sieci.

Dlaczego filtrujemy zombies

Walidatorzy-zombies kontynuują wysyłanie vote messages ze swoim oryginalnym vote_account po wycofaniu delegowanego stake. Daemon obserwuje te vote’y jak każde inne. Bez filtracji histogramy, scatter ploty i wykrywanie klastrów byłyby biased przez dane od walidatorów którzy już nie uczestniczą w konsensusie w żaden znaczący sposób.

Począwszy od v1.5.0 dashboard filtruje walidatorów, których last_seen_slot jest więcej niż 1000 slotów za chain head (~7 minut). To poprawnie wyklucza farmy wycięte przez Capybara, zachowując walidatorów z krótkimi opóźnieniami od leader-rotation jitter lub tymczasowych problemów sieci. Daemon publikuje chain_max_slot, active_validators i observed_validators w summary.json, więc widget Stan sieci na górze dashboardu pokazuje obie liczby jawnie.

Limitations & caveats

Ograniczenia i zastrzeżenia

References

Referencje

Version history

Historia wersji

← Back to dashboard ← Powrót do dashboardu