v0.3.14-pre.015
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# Acquisition et alimentation `RawTransaction`
|
||||
|
||||
@@ -187,7 +187,7 @@ Yellowstone BlockMeta / Slot
|
||||
-> continuité run-local uniquement
|
||||
```
|
||||
|
||||
La composition est caller-owned : le Worker ne lit pas Config et ne reçoit pas de secret. `RawTransactionIngestRuntimeResources` accepte de `1` à `32` sources logiques d'un même réseau, refuse les identités source dupliquées et supervise toutes les sources simultanément. Une faute source reste terminale pour le Worker faute d'équivalence de coverage prouvée.
|
||||
La composition est caller-owned : le Worker ne lit pas Config et ne reçoit pas de secret. `RawTransactionIngestRuntimeResources` accepte de `1` à `32` sources logiques d'un même réseau, refuse les identités source dupliquées et supervise toutes les sources simultanément. Une faute source n'autorise la continuation des siblings que lorsque sa plage de perte est sûre, que la coverage passée est réconciliée et que les sources restantes couvrent encore tout le `TargetCoverage` futur. Aucune équivalence n'est déduite du provider ou du protocole.
|
||||
|
||||
Il ne lance pas de campagne historique arbitraire.
|
||||
|
||||
@@ -204,17 +204,20 @@ Store durable = persistence des acquisitions admises
|
||||
blockchain completeness = non prouvée par les métriques ci-dessus
|
||||
```
|
||||
|
||||
Une tentative de replay ne prouve ni succès ni continuité parfaite. Si Transport prouve qu'un slot demandé est antérieur à `first_available`, son compteur de continuity gap augmente ; le Worker projette ce gap puis termine avec un fault `source_failed`.
|
||||
Une tentative de replay ne prouve ni succès ni continuité parfaite. Si Transport prouve qu'un slot demandé est antérieur à `first_available`, son compteur de continuity gap augmente ; le Worker ouvre ou enrichit alors un gap run-local sans considérer la reconnexion comme une réparation.
|
||||
|
||||
Il n'existe pas de délégation automatique vers Backfill :
|
||||
La réconciliation reste bornée au run :
|
||||
|
||||
```text
|
||||
gap de rétention prouvé
|
||||
-> Worker fault/stop
|
||||
-> aucun lancement de campagne historique
|
||||
gap de continuité borné
|
||||
-> replay Transport si preuve exploitable
|
||||
-> coverage redondante structurale si prouvée
|
||||
-> scan HTTP borné / getBlock / getTransaction selon capability
|
||||
-> même Common RAW / admission / Store
|
||||
-> Repaired ou Unresolved explicite
|
||||
```
|
||||
|
||||
Inversement, une demande telle que « récupère les transactions du programme X depuis le slot Y » reste une campagne `ksp-job-backfill-lib`.
|
||||
Il n'existe toujours aucune délégation automatique vers Backfill. Une demande telle que « récupère les transactions du programme X depuis le slot Y » reste une campagne `ksp-job-backfill-lib`, tandis qu'un gap non bornable ou non réconciliable du run courant fait fault le Worker.
|
||||
|
||||
### 3.4 Absence de relation Job ↔ Worker
|
||||
|
||||
@@ -734,7 +737,7 @@ RAW v1 complet -> hydration HTTP avant persistence
|
||||
|
||||
Cette qualification cross-source a préparé le contrat sans créer d'edge Common RAW -> Transport. L'extension Worker live utilise désormais cette décision conservative : Yellowstone produit des signaux structurés dans le Worker concret, puis HTTP `getTransaction` fournit le matériau RAW complet avant canonicalisation. Common RAW reste entièrement Transport-neutral.
|
||||
|
||||
## 14. État du Worker live après `0.3.13`
|
||||
## 14. État du Worker live après `0.3.14`
|
||||
|
||||
### 14.0 Verticale matérialisée
|
||||
|
||||
@@ -756,11 +759,14 @@ convergence canonique par (network, signature) + disagreement explicite
|
||||
persistence atomique via ksp-store-lib en mode Normal + observations supplémentaires idempotentes
|
||||
quotas pending/in-flight par source et bornes globales exactes
|
||||
fairness minimale / anti-starvation sous duplicate storm
|
||||
processing frontier run-local multi-source conservative
|
||||
processing frontier et continuity frontier run-local distinctes
|
||||
ledger de gaps inclusifs bornés + TargetCoverage conservative
|
||||
replay Transport / coverage redondante / scan HTTP / block fetch / hydration comme preuves distinctes
|
||||
observabilité publique source-neutral des gaps, raisons, états, dernière méthode et compteurs checked
|
||||
projection source-neutral Active/Reconnecting/Closing/Closed/Failed + gauges source_total/active/reconnecting/failed
|
||||
observation des compteurs reconnect/replay/gap Transport
|
||||
health conservative Healthy/Degraded/Unhealthy
|
||||
fault sur gap de rétention prouvé
|
||||
health Healthy/Degraded/Unhealthy fondée sur gaps, frontiers et coverage présente/future
|
||||
fairness nominal/repair sur les mêmes admission/hydration/persistence
|
||||
source loss non terminale uniquement après réconciliation complète et coverage future prouvée
|
||||
shutdown deadline + abort/join sans tâche orpheline ni late persistence
|
||||
```
|
||||
|
||||
@@ -790,7 +796,8 @@ acquérir à partir du démarrage
|
||||
normaliser et persister RawTransaction + observations
|
||||
publier snapshots/notifications concrètes Worker
|
||||
laisser reconnect/from_slot/replay au Transport
|
||||
fault proprement lorsqu'un gap de rétention est prouvé
|
||||
réconcilier uniquement les gaps bornés du run courant avec des preuves de coverage explicites
|
||||
fault proprement lorsqu'une lacune reste non bornable, non couverte ou unresolved
|
||||
```
|
||||
|
||||
Il ne doit pas :
|
||||
@@ -805,7 +812,7 @@ hardcoder un provider unique
|
||||
|
||||
### 14.2 Sources Worker V1 matérialisées et reports
|
||||
|
||||
Matérialisé dans `0.3.13` :
|
||||
Matérialisé dans `0.3.13` puis durci dans `0.3.14` :
|
||||
|
||||
```text
|
||||
Yellowstone transactions / blocks / status + HTTP hydration
|
||||
@@ -815,14 +822,18 @@ Helius transactionSubscribe Full + HTTP hydration
|
||||
HTTP live block polling getSlot/getBlocksWithLimit/getBlock observed
|
||||
HTTP hydration partagée et coalescée cross-source
|
||||
replay Yellowstone conservé propriétaire de Transport pour continuité du run
|
||||
gaps run-local bornés et continuity frontier distincte de la processing frontier
|
||||
coverage exacte/superset conservative avec epochs prouvés
|
||||
repair borné réutilisant Transport/Common RAW/admission/Store existants
|
||||
source-loss continuation uniquement sous TargetCoverage prouvée
|
||||
snapshots gap/repair source-neutral et health gap-aware
|
||||
```
|
||||
|
||||
Reste hors de cette verticale et nécessite une tranche dédiée :
|
||||
|
||||
```text
|
||||
sources EARLY / pre-execution
|
||||
coverage-equivalence ou failover non-terminal entre sources
|
||||
repair historique multi-source
|
||||
campagne historique multi-source ou caller-paramétrable
|
||||
Worker multi-source -> Store live E2E avec environnement complet provisionné
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user