v0.2.10-pre.002

This commit is contained in:
2026-08-25 10:29:16 +02:00
parent 7f567bc1bb
commit af807afff5
10 changed files with 667 additions and 59 deletions

View File

@@ -1,9 +1,9 @@
<!-- file: docs/validation/013-V0_2_10_ORBITFLARE_YELLOWSTONE_GRPC.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Validation `0.2.10` — OrbitFlare Yellowstone gRPC
**Statut courant : matrice ouverte par `0.2.10-pre.001`. Le gate d'architecture est positif. Le premier objectif live est le Devnet gratuit OrbitFlare via le standard Yellowstone KSP inchangé. Les verdicts provider non encore testés restent explicitement `PENDING` ou `UNKNOWN`.**
**Statut courant : `0.2.10-pre.002` matérialise le profil Config V3 OrbitFlare Devnet et le smoke opt-in de caractérisation sur le standard Yellowstone KSP inchangé. Les preuves statiques sont fermées ; `connect`, `Subscribe`, `Slot` et `Ping` restent `PENDING` jusqu'au run live opérateur.**
## 1. Autorités
@@ -36,7 +36,7 @@ Yellowstone upstream actuel
| Transport release completeness | 43 sur 43 PASS |
| Config unit | 113 sur 113 PASS |
| graph duplicates Transport | fourni, aucun conflit N1 visible |
| graph complet Transport | PENDING avant commit |
| graph complet Transport | fourni sur `0.2.10-pre.1` PASS |
## 3. Invariant architecture
@@ -99,7 +99,7 @@ KSP ne prétend pas qu'un canal gRPC plaintext bénéficie d'une sécurité TLS
| aucune metadata gRPC | SDK Go OrbitFlare | **DOCUMENTED** |
| auth Devnet Free réelle | smoke KSP à exécuter | **PENDING** |
Aucun secret opérateur n'est demandé pour `pre.001`.
Aucun secret opérateur nest demandé pour le premier smoke `pre.002` ; la tentative initiale est explicitement sans metadata.
## 7. Heartbeat
@@ -163,17 +163,17 @@ Ces valeurs restent provider-owned et ne deviennent pas des validations généri
## 11. Config V3
| Exigence | Verdict |
|-------------------------------------|-------------|
| nouveau format Config nécessaire | **NO** |
| `provider = orbitflare` | **PLANNED** |
| `protocol = solana_yellowstone` | **PASS** |
| `cluster = devnet` | **PLANNED** |
| Devnet URL publique | **PLANNED** |
| secret metadata par défaut | **NO** |
| `X-ORBIT-KEY` dans Transport Config | **FORBID** |
| `x-token` si token gRPC prouvé | **DEFER** |
| heartbeat dans `grpc_defaults` | **NO** |
| Exigence | Verdict |
|-------------------------------------|-----------------|
| nouveau format Config nécessaire | **NO** |
| `provider = orbitflare` | **PASS STATIC** |
| `protocol = solana_yellowstone` | **PASS STATIC** |
| `cluster = devnet` | **PASS STATIC** |
| Devnet URL publique | **PASS STATIC** |
| secret metadata par défaut | **NO / PASS** |
| `X-ORBIT-KEY` dans Transport Config | **FORBID** |
| `x-token` si token gRPC prouvé | **DEFER** |
| heartbeat dans `grpc_defaults` | **NO** |
## 12. Smoke Devnet attendu
@@ -194,15 +194,15 @@ close borné
Verdicts actuels :
| Preuve | Verdict |
|-----------------------------|-------------|
| endpoint parsé par N1 | EXPECTED |
| connect Devnet | **PENDING** |
| Subscribe accepté | **PENDING** |
| Slot reçu | **PENDING** |
| server Ping reçu | **PENDING** |
| auto reply KSP déterministe | **PASS** |
| close borné | **PASS N1** |
| Preuve | Verdict |
|------------------------------|----------------------------|
| endpoint parsé par Config/N1 | **PASS STATIC** |
| connect Devnet | **PENDING** |
| Subscribe accepté | **PENDING** |
| Slot reçu | **PENDING** |
| server Ping reçu | **PENDING** |
| auto reply KSP déterministe | **PASS N1** |
| close borné | **PASS N1 / LIVE PENDING** |
## 13. Provider overlay gate
@@ -246,7 +246,7 @@ ownership/close provider bornés
| baseline fmt/audits/check/clippy | **PASS** |
| workspace test | **PASS** |
| graph duplicates | **PASS** |
| graph complet Transport | **PENDING OPERATOR** |
| graph complet Transport | **PASS** |
| sources OrbitFlare actuelles | **PASS** |
| sources Yellowstone actuelles | **PASS** |
| Free Devnet gRPC confirmé | **PASS** |
@@ -267,6 +267,47 @@ Verdict :
```text
architecture/sizing gate = POSITIVE
operator commit gate = PENDING full cargo tree + validations overlay
live provider gate = reserved for pre.002+
operator pre.001 gate = PASS
pre.002 static gate = READY FOR OPERATOR VALIDATION
live provider gate = PENDING pre.002 characterization
```
## 16. Gate `pre.002` candidat
| Critère | Verdict |
|-------------------------------------------|----------------------|
| Cargo `0.2.10-pre.2` | **PASS STATIC** |
| profil Config `orbitflare_devnet` | **PASS STATIC** |
| endpoint gRPC sans metadata | **PASS STATIC** |
| companions HTTP/WS Devnet préservés | **PASS STATIC** |
| nouveau format Config | **NO** |
| `.env.example` / secret OrbitFlare ajouté | **NO** |
| moteur N1 modifié | **NO** |
| standard N2 modifié | **NO** |
| SDK OrbitFlare ajouté | **NO** |
| smoke provider dans Transport | **PASS STATIC** |
| reconnect du smoke | zéro retry |
| fenêtre caractérisation | 45 secondes |
| `Subscribe -> Slot` live | **PENDING OPERATOR** |
| `SubscribeUpdate::Ping` live | **PENDING OPERATOR** |
| close live | **PENDING OPERATOR** |
| auth Devnet Free sans metadata | **PENDING OPERATOR** |
Commande live dédiée :
```bash
cargo test -p ksp-onchain-transport-lib --test yellowstone_orbitflare_smoke -- --ignored --nocapture
```
Le résultat live décide la suite :
```text
Slot + Ping PASS
-> OrbitFlare reste standard ; aucun provider heartbeat/facade
connection/auth failure
-> classifier le service/licence réel avant toute metadata
Slot PASS mais Ping absent
-> divergence heartbeat à prouver avant une couche provider-specific
```