Dokümantasyon · v1.0

Every Second, şartnamesi.

Bu, aletin mühendislik tanımıdır: ne ölçülür, nasıl saklanır, nasıl skorlanır, nasıl teslim edilir. Site vaadi anlatır; bu belge vaadi tutan makineyi.

Genel bakış

Every Second, her mainnet Avalanche L1'inin güvenilirliğini zincirin dışından ölçer. Ölçülen hiçbir zincire ait olmayan altyapıda koşan üç prob, gerçek imzalı işlemler gönderir ve her birinin kesinleşme süresini kaydeder. Bu zamanlamalardan, validatör telemetrisinden ve zincirler arası mesaj izlemesinden, zincir başına kamusal ve deterministik bir skor, bir ekosistem endeksi ve bir olay akışı türetilir.

  • Dinle — bir AvalancheGo tam node'u mainnet'teki her L1'i izler: bloklar, validatör setleri, ICM trafiği. Pasif, kesintisiz, her zincir için ücretsiz.
  • Dokun — Frankfurt, Virginia ve Singapur'daki problar 60 saniyelik kadansla imzalı işlem gönderir; anomalide 5 saniyeye sıklaşır.
  • Söyle — kamu dashboard'u ve X akışını görür; operatörler akış, webhook ve API alır; vakıflar aleti kendi ekosistemleri için alır.

Mimari

BileşenRolNot
probeİşlem gönderir, t₀/t₁/t₂ damgalar, ölçümü imzalar, toplayıcıya iletirBölge başına bir süreç; zincir başına fonlu cüzdan; NTP disiplinli saat
listenerTam node + blok, validatör seti ve ICM mesajı indeksleyicileriPasif; validatör sağlığının ve 1./3. bacak damgalarının kaynağı
collectorÖlçümleri alır, imzaları doğrular, ham depoya yazarÖlçüm id'siyle idempotent
scorerYüzdelikleri, bileşenleri, skoru, endeksi, olayları hesaplarHam deponun ve metodoloji sürümünün saf fonksiyonu
deliveryREST API, WebSocket akışı, webhook dağıtıcı, X yayıncısıHepsi aynı olay günlüğünden okur
dashboardKamusal konsol; her operatör gibi bir WebSocket abonesiStatik dosyalar; özel görünüm yok

Değişmez kural: yayınlanan her sayı, ham deponun ve bir metodoloji sürümünün deterministik fonksiyonudur. Hiçbir bileşen elle skor yazamaz.

Bölgeler ve kadans

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

Yol haritası: São Paulo, Johannesburg, Dubai, Tokyo — kıta ölçekli yedi internet bölgesi. Kadans: zincir ve bölge başına 60 s taban; herhangi bir metrik taban çizgisi dışındayken o zincir için 5 s burst; beş temiz dakikadan sonra biter. Problar, ölçülen bir zincirin işlettiği altyapıda asla koşmaz.

Prob protokolü

  1. Hedef zincirde prob cüzdanından asgari bir kendine-transfer kur; yerel olarak imzala.
  2. t₀ — zincirin açık RPC'sine yayınla; duvar saati ve monoton zamanı kaydet.
  3. t₁ — ilk dahil edilme gözlendi (işlemi içeren blok listener ya da RPC tarafından görüldü).
  4. t₂ — kesinlik doğrulandı: blok, listener'ın gözlemine göre validatör setince geri alınamaz biçimde kabul edildi.
  5. Bir measurement olayı yayınla: {id, chain, region, sent_at, t1_ms, t2_ms, tx, probe_sig}. Zaman aşımları ulaşılan aşamayla measurement.failed yayınlar.

Kesinlik t₂ − t₀'dır. Zincir, bölge ve pencere başına scorer p50, p95 ve p99 raporlar.

Veri modeli

measurement   { id, chain, region, wallet_epoch, rpc_id, sent_at, t1_ms, t2_ms, tx, probe_sig, methodology }  visibility: evidence
icm_trace     { id, route:{from,to}, sent_at, leg1_ms, leg2_ms, leg3_ms, delivered, evidence_tx }  visibility: evidence
validator_obs { chain, observed_at, count, hhi, churn_24h }
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 olaylar 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 · kesinlikpenceredeki t₂ − t₀ p99'u, bölgeler arası medyan≤ 1 s'de 1, ≥ 10 s'de 0, arası log ölçekli
U · uptime90 günde başarılı dahil edilme gerçekleşen prob penceresi oranı%100'de 1, %95'te 0, doğrusal
M · mesaj teslimi24 saatte 60 s içinde teslim edilen prob ICM mesajı oranı%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

Pencereler: F 24 s, U 90 g, M 24 s, V hesaplama anı. 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

Problar ölçülen zincirler arasında Interchain Message gönderir. Her 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.

Olay modeli

TürAçılışKapanış
finality.degradedart arda 3 probda p99 eşiğin üstünde5 temiz dakika
uptime.incident≥ 2 bölgeden 60 s boyunca başarısız prob işlemi5 temiz dakika
icm.stalled90 s sonra teslim edilmemiş mesajteslim 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 bölgenin p50'si diğerlerinden %25'ten fazla sapar5 temiz dakika

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

Ölçüm kanıtı

Prob işlemi bir ölçümün yapıldığını kanıtlar. İkinci bir mekanizma, kaydının hiç değiştirilmediğini kanıtlar: her saat, o saatin ham ölçümlerinin Merkle kökü, yürürlükteki metodoloji sürümüyle birlikte tek bir işlemle zincire yazılır. Her aylık endeks değeri aynı yolla taahhüt edilir.

  • Herkes, ham veriyi görmeden, bir taahhüdün var olduğunu ve ne zaman yapıldığını görebilir.
  • Ham veri setini elinde tutan lisans sahibi ya da denetçi, onu zincirdeki köke karşı doğrular: veri, o an kaydedilenin aynısıdır.
  • Vakfın alıntıladığı endeksin zincir üstü bir kaynağı olur: değer, ay, metodoloji sürümü.

Ham ölçümlerin kendisi asla zincire yazılmaz; kanıt katmanında kalır. Maliyet: saatte bir işlem.

REST API

Temel https://api.everysecond.online/v1. JSON, UTC, milisaniye. Kimlik Authorization: Bearer <key>. Uç noktalar: /chains, /chains/{id}, /chains/{id}/finality, /chains/{id}/incidents, /icm/routes, /index, /badge/{id}.svg, /methodology. Örnekler için API sayfası. Limit: operatör anahtarı başına 600 istek/dk; vakıf anahtarları ekosistem çapındadır.

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 ölçümü ve izi. Çerçeveler veri modelindeki JSON nesneleridir: measurement, measurement.failed, icm_trace, incident.opened, incident.recovered, score.updated. 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-ES-Event, X-ES-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 ölçümler, üç 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.

Saklama

Ham olaylar: 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ın

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, akışa bağlanana kadar demo veri okur; assets/dashboard.js içindeki demo evreni aynı nesneleri yayan bir WebSocket abonesiyle değiştirerek geçiş yapılır.

Yapım sırası

Aletin gerçeğe dönüşme sırası. Her adım tek başına gösterilebilir; hiçbir adım bir üsttekinin cilalanmasına bağlı değildir.

  1. Prob + toplayıcı — tek bölge, en aktif 100 zincir, zincir başına tek cüzdan, tek RPC. Ham depoya inen imzalı ölçümler. t₀/t₁/t₂'yi kanıtlar. Test kurulumu: henüz rotasyon ve çapraz kontrol yok.
  2. Üç bölge, her mainnet L1 — fonlu cüzdanlar, zincir kaydı, kadans ve burst. Kapsamı kanıtlar.
  3. Scorer + tam metodoloji — güven aralıklı yüzdelikler, sıra bantları, bileşenler, skor, olaylar, endeks, kapsam sınıfları; dönen cüzdan havuzları, rastgele zamanlama, zincir başına çoklu RPC devreye girer. Metodoloji v1.0 dondurulur. Yeniden üretilebilirliği ve oyunlanmaya direnci kanıtlar — çünkü bu adımdan itibaren skorlar yayımlanır.
  4. Teslim — tek olay günlüğünden REST, WebSocket, webhook, X yayıncısı; saatlik Merkle taahhüdü zincirde. "Biz iteriz"i ve "geriye dönük değiştiremeyiz"i kanıtlar.
  5. Akışa bağlı dashboard — demo evren aboneyle değiştirilir; sayfa bunun için hazır.
  6. Listener + ICM izleri — validatör telemetrisi, üç bacaklı ölçüm ve organik çapraz kontrol (üçüncü taraf işlemlerinin pasif ölçümü). V, M ve prob kayırma bayrağı tamamlanır.

3. adım, vakıfla konuşmanın değiştiği andır: "bir fikir"den "yeniden hesaplayabileceğin bir sayı"ya.

Sözlük

TerimAnlam
ölçümt₀/t₁/t₂ damgalarıyla tek bir prob işlemi
kesinlikt₂ − t₀; kullanıcının beklediği süre
olaybaşlangıcı, bitişi ve kanıtı olan bir eşik aşımı
kanıt işlemibir ölçümün ya da olayın arkasındaki imzalı zincir üstü işlem
bacakzincirler arası bir mesajın ölçülen üç aşamasından biri
bölgesel farkbölgeler arası p50'nin (maks − min) / medyanı
endekstüm L1'lerin aylık medyan ölçülmüş kesinliği
operatörakışlara ve kanıta erişimi olan, L1 işleten ekip