lahza / Docs
Dokümantasyon · v1.0

Lahza, şartnamesi.

Gözlemevinin mühendislik tanımı: ne gözlenir, nasıl saklanır, nasıl skorlanır, nasıl teslim edilir. Site vaadi anlatır; bu belge vaadi tutan makineyi.

Genel bakış

Lahza, Avalanche L1'lerinin güvenilirliğini ağlarının içinden gözler. Üç gözlemevi — Frankfurt, Virginia, Singapur — kapsanan her zincire eş olarak katılan tam yetenekli node'lar çalıştırır. Hiçbir şey göndermezler. Kendi saatleriyle, her kullanıcı işleminin ilk görüldüğü, dahil edildiği ve kesinleştiği anı kaydederler; her zincirler arası mesajı bacak bacak izlerler; validatör setlerini ve blok üretimini gözlerler. Bu kayıttan sistem, zincir başına kamusal ve deterministik bir skor, bir ekosistem endeksi ve bir olay akışı türetir.

  • Dinle — eş olarak node'lar: gelen işlemler, bloklar, validatör setleri, ICM trafiği.
  • Ölç — işlem başına kendi saatimizden üç damga; güven aralıklı yüzdelikler; üç bacaklı mesaj ölçümü.
  • Söyle — kamu dashboard'u, kamusal akışı ve X akışını görür; ortaklar kanıt katmanını alır.

Mimari

BileşenRolNot
observerGözlemevi başına tam yetenekli AvalancheGo node'u, kapsanan L1'leri eş olarak izler; her işlem için t₀/t₁/t₂ damgalar, blokları, validatör değişimlerini ve ICM mesajlarını kaydeder; imzalı gözlemleri toplayıcıya iletirHiçbir zincir için cüzdan ya da anahtar yok. Kısmi birincil senkron, state sync, budama: tam yetenek, geçmiş yok.
collectorÜç gözlemevinden gözlemleri alır, gözlemci imzalarını doğrular, ham depoya yazarGözlem id'siyle idempotent
scorerYüzdelikleri ve aralıkları, bileşenleri, skoru, sıra bantlarını, endeksi, olayları hesaplarHam deponun ve metodoloji sürümünün saf fonksiyonu
deliveryREST API, kamusal ve kanıt WebSocket akışları, webhook dağıtıcı, X yayıncısı, saatlik zincir üstü taahhütHepsi tek olay günlüğünden okur
dashboardKamusal konsol; herkes gibi kamusal akışın abonesiStatik dosyalar; özel görünüm yok

İki değişmez: yayımlanan her sayı, ham deponun ve bir metodoloji sürümünün deterministik fonksiyonudur — hiçbir bileşen elle skor yazamaz; ve hiçbir bileşen gözlenen bir zincire işlem göndermez ya da onun üzerinde çalışmaz.

Gözlemevleri ve kapsam

GözlemeviKodRol
FrankfurtfraAvrupa; batı CIS trafiğinin transit koridoru
VirginiaiadKuzey Amerika
SingapursinAsya-Pasifik

Yol haritası: São Paulo, Johannesburg, Dubai, Tokyo. Kapsam: her mainnet L1 kapsamdadır; bir zincir observed (node'larımız eşidir), listed (P-Chain'de kayıtlı, henüz kapsanmıyor), private (dışarıdan node kabul etmiyor; eşleşme verdiği gün gözlenir) ya da dormant (30 günde kullanıcı işlemi yok) olabilir. Kapsam aktivite sırasıyla büyür ve dashboard'da belirtilir. Tek sınıf ölçüm vardır; hiçbir şey ikinci elden ölçülmez.

Gözlem protokolü

  1. t₀ — bir kullanıcı işlemi zincirin ağında gözlemci node tarafından ilk görülür; duvar saati ve monoton zaman kaydedilir.
  2. t₁ — işlemin bir bloğa dahil edildiği gözlenir.
  3. t₂ — bloğun validatör setince geri alınamaz biçimde kabul edildiği gözlenir.
  4. Bir observation yayınla: {{id, chain, observatory, tx, t0, t1, t2, observer_sig, methodology}}. Görülen ama pencere içinde dahil edilmeyen işlem observation.dropped yayınlar.

Kesinlik t₂ − t₀'dır. Zincir, gözlemevi ve pencere başına scorer p50, p95 ve p99'u bootstrap %95 aralıklarıyla raporlar. Kadans ve örnekleme yoktur: her işlem bir gözlemdir.

Veri modeli

observation   { id, chain, observatory, tx, t0, t1, t2, observer_sig, methodology }            visibility: evidence
icm_trace     { id, route:{from,to}, message_id, leg1_ms, leg2_ms, leg3_ms, delivered, evidence_tx }  visibility: evidence
validator_obs { chain, observed_at, count, hhi, churn_24h }
block_obs     { chain, observatory, height, seen_at, tx_count }
incident      { id, chain, type, leg?, started, ended, duration_ms, evidence_tx, public_post }        visibility: public
score         { chain, computed_at, F, U, M, V, score, ci_low, ci_high, rank_band, coverage, methodology } visibility: public
index         { period, median_finality_ms, chains, methodology }                                  visibility: public
commitment    { period, merkle_root, methodology, tx }                                              visibility: public

Ham gözlemler değişmezdir. Özetler türetilmiştir ve her an hamdan yeniden kurulabilir.

Skor şartnamesi

skor = 100 × ( 0.35·F + 0.30·U + 0.20·M + 0.15·V )
BileşenTanımNormalizasyon
F · kesinlik24 s içinde t₂ − t₀ p99'u, gözlemevleri arası medyan≤ 1 s'de 1, ≥ 10 s'de 0, arası log ölçekli
U · uptimeblokların zamanında üretildiği ve gelen işlemlerin dahil edildiği 90 günlük pencere oranı%100'de 1, %95'te 0, doğrusal
M · mesaj teslimi24 saatte 60 s içinde teslim edilen gözlenmiş zincirler arası mesaj oranı; relayer olmayan rotada uygulanamaz (ağırlıklar yeniden normalize)%100'de 1, %80'de 0, doğrusal
V · validatör sağlığıset büyüklüğü, stake yoğunlaşması (HHI), 24 s değişimaçık eşiklere göre 0–1 bileşik; set büyüklüğü skorun yanında yayımlanır

Skorlar %95 aralık taşır; aralıkları çakışan zincirler aynı sıra bandını paylaşır. Ağırlıklar ve eşikler metodoloji sürümünün parçasıdır; değişiklik yeni sürümdür ve yürürlükten önce duyurulur. Dashboard bir zinciri skor ≥ 93'te sağlıklı, ≥ 87'de bozulmuş, altında olay gösterir.

Üç bacaklı ICM

Kapsanan bir zincirde gözlenen her zincirler arası mesaj üç bacakta ölçülür: 1. bacak kaynak kesinliği, 2. bacak relayer alımı, 3. bacak hedef teslimi. 90 s sonra teslim edilmemiş mesaj, kopan bacağa atfedilen icm.stalled olayını açar. Lahza asla relayer işletmez.

Olay modeli

TürAçılışKapanış
finality.degradedp99 bir pencere boyunca 30 günlük taban çizgisinin 5 katının üstünde5 temiz dakika
uptime.incidentblok üretimi durur ya da gelen işlemler ≥ 2 gözlemevinden 60 s boyunca dahil edilmez5 temiz dakika
icm.stalledgözlenen mesaj 90 s sonra teslim edilmemişteslim ya da 24 s sonunda düşme
validators.changedset büyüklüğü ya da HHI eşiği aşarbilgi amaçlı; hemen kapanır
region.gapbir gözlemevinin p50'si diğerlerinden %25'ten fazla sapar5 temiz dakika

Her olay bir kanıt işlemi — zincirdeki gerçek bir kullanıcı işlemi — taşır; açılışta ve toparlanmada X'te kamusal gönderi yapılır.

Gözlem kanıtı

Her gözlem gerçek bir işlemi adlandırır; bu, ne olduğunu kanıtlar. Her saat, o saatin ham gözlemlerinin Merkle kökü, yürürlükteki metodoloji sürümüyle birlikte tek işlemle zincire yazılır; bu, kaydın hiç değiştirilmediğini kanıtlar. Her aylık endeks değeri aynı yolla taahhüt edilir. Lahza'nın zincire yazdığı tek şey budur.

REST API

Temel https://api.lahza.xyz/v1. JSON, UTC, milisaniye. Kamusal, anahtarsız: /chains, /chains/{{id}}, /chains/{{id}}/incidents, /badge/{{id}}.svg, /index, /methodology. Kanıt, ortaklık anahtarı (Authorization: Bearer): /chains/{{id}}/finality, /icm/routes. Örnekler için API sayfası.

WebSocket

Tek olay günlüğünden iki akış. wss://…/v1/public — anahtarsız: score.updated, incident.opened, incident.recovered, index.updated; dashboard bir abonedir. wss://…/v1/stream?chain={{id}} — ortaklık anahtarı, zincir başına bir abonelik: o zincirin her gözlemi ve izi. 15 s'de bir kalp atışı; boşluğu tekrar oynatmak için ?since=<event id> ile yeniden bağlan.

Webhook

Olay başına JSON POST. Başlıklar X-Lahza-Event, X-Lahza-Signature: sha256=HMAC(gövde, gizli anahtar). 2xx olmayan yanıtlar üstel geri çekilmeyle 5 kez yeniden denenir (1 dk → 30 dk). Olaylar id ile idempotenttir; akış ve webhook aynı id'leri paylaşır.

Kamusal katman

İki katman. Kamusal, herkese, anahtarsız: dashboard, kamusal akış ve API (skorlar, kanıt işlemleriyle olaylar, endeks, rozetler) ve X'teki olay akışı. Kanıt, bir ekosisteme vakfının ortaklığıyla: ham gözlemler, üç bacak zamanlaması, bölge ve olay detayı, geçmiş, webhook'lar, imzalı karneler — L1 ekiplerine vakıf tarafından sağlanır. Ham tarihsel veri kurumlara lisanslanır. Skor asla satılmaz.

Operasyon

  • Gözlemci node. Kısmi birincil ağ senkronu (yalnız P-Chain), izlenen L1'ler için state sync, budama ile AvalancheGo. Tam yetenek, geçmiş yok: bir gözlemcinin geçmişe değil ana ihtiyacı vardır. Bugün gözlemevi başına: 2 vCPU · 8 GB · 150 GB NVMe en aktif 25 L1'i kapsar; kapsamla disk ve bellek büyür, makine sınıfı değişmez.
  • Saatler. sağlayıcının zaman servisine karşı chrony; ofset 1 ms altı; gözlemevleri arası tutarlılık sürekli kontrol edilir.
  • Toplayıcı, scorer, teslim. Bugün Frankfurt gözlemevi sunucusunda çalışır; yük gerektirdiğinde ayrı sunucuya alınır.
  • Zincirde taahhütten başka hiçbir şey yok. Bütün sistemde tek fonlu cüzdan vardır: C-Chain'de, saatlik Merkle taahhüdü için. Gözlenen hiçbir zincirde cüzdan yoktur.

Saklama

Ham gözlemler: 90 gün. Saatlik özetler: süresiz. Olaylar ve kanıt işlemleri: süresiz. Metodoloji sürümleri ve ham depo, yayınlanan her sayıyı yeniden kurmaya yeter.

Yayım

Site statiktir: HTML, CSS ve JavaScript, CDN'den Three.js; derleme adımı yok. Klasörü Cloudflare Pages'a yükle; _headers güvenlik başlıklarını ayarlar. Dashboard, kamusal akışa bağlanana kadar demo veri okur; assets/dashboard.js içinde DEMO=false yapıp window.ES_CH'yi aboneden aynı nesnelerle doldurarak geçiş yapılır.

Yapım sırası

  1. Tek gözlemevi. Frankfurt node'u, kısmi senkron, beş aktif L1; ham depoya inen ilk imzalı gözlemler. Ağın içinden t₀/t₁/t₂'yi kanıtlar.
  2. Üç gözlemevi, 25 L1. Virginia ve Singapur devrede; kapsam aktiviteye göre. Gözlemevleri arası tutarlılığı kanıtlar.
  3. Scorer, v1.0 dondurulur. Aralıklı yüzdelikler, sıra bantları, bileşenler, skor, olaylar, endeks. Bu adımdan itibaren skorlar yayımlanır. Vakıfla konuşmayı değiştiren adım budur: herkesin yeniden hesaplayabileceği bir sayı.
  4. Teslim. REST, kamusal ve kanıt akışları, webhook, X yayıncısı, C-Chain'de saatlik taahhüt.
  5. Akışa bağlı dashboard. DEMO=false.
  6. Kapsam büyümesi. Gözlemevi başına disk ve bellek; aktivite sırasıyla daha fazla L1, her aktif mainnet L1 gözlenene kadar.

Sözlük

TerimAnlam
gözlembir gözlemevinden t₀/t₁/t₂ damgalarıyla bir kullanıcı işlemi
gözlemevigözlemci node'umuzu çalıştıran bölge
kesinlikt₂ − t₀; kullanıcının beklediği süre
olaybaşlangıcı, bitişi ve kanıtı olan eşik aşımı
kanıt işlemibir gözlemin ya da olayın arkasındaki gerçek kullanıcı işlemi
bacakzincirler arası mesajın ölçülen üç aşamasından biri
bölgesel fark(max − min) / median gözlemevleri arası p50
endeksgözlenen tüm L1'lerin aylık medyan ölçülmüş kesinliği
taahhütham gözlemlerin saatlik Merkle kökü, zincire yazılır