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/plans/017-V0_2_10_ORBITFLARE_YELLOWSTONE_GRPC_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan `0.2.10` — OrbitFlare Yellowstone gRPC
**Statut courant : `0.2.10-pre.001` ouvre la release par un audit provider actuel. Le gate d'architecture est positif avec une contrainte renforcée : le moteur gRPC N1 et le standard Yellowstone N2 livrés par `0.2.9` sont immuables pour cette release. OrbitFlare doit être composé au-dessus de ces couches ; aucune modification du moteur n'est autorisée pour satisfaire une policy provider.**
**Statut courant : `0.2.10-pre.002` matérialise le profil Config V3 `orbitflare_devnet` et un smoke opt-in de caractérisation `Subscribe -> Slot + Ping` construit exclusivement sur le standard Yellowstone existant. Le moteur gRPC N1 et le standard N2 restent inchangés ; le verdict live Devnet est un gate opérateur de cette tranche.**
## 1. Base et autorité
@@ -158,21 +158,21 @@ Une façade OrbitFlare publique n'est créée que si un consumer KSP doit réell
Preuves fournies le 2026-08-25 :
| Gate | Résultat |
|-------------------------------------------|----------------------------------|
| `cargo fmt --all` | PASS |
| audit Rust workspace | PASS, 0 candidate export |
| audit Markdown tables | PASS, 87 tables et 261 files |
| `cargo check --workspace` | PASS |
| `cargo clippy --workspace --all-targets` | PASS |
| `cargo test --workspace` | PASS |
| Transport unit | 383 sur 383 PASS |
| Transport public API | 49 sur 49 PASS |
| Transport release completeness | 43 sur 43 PASS |
| Config unit | 113 sur 113 PASS |
| PublicNode Yellowstone live | ignored opt-in comme attendu |
| `cargo tree --duplicates` Transport | fourni et inspecté |
| `cargo tree -p ksp-onchain-transport-lib` | à rejouer avant commit `pre.001` |
| Gate | Résultat |
|-------------------------------------------|------------------------------------------|
| `cargo fmt --all` | PASS |
| audit Rust workspace | PASS, 0 candidate export |
| audit Markdown tables | PASS, 97 tables et 233 files sur `pre.1` |
| `cargo check --workspace` | PASS |
| `cargo clippy --workspace --all-targets` | PASS |
| `cargo test --workspace` | PASS |
| Transport unit | 383 sur 383 PASS |
| Transport public API | 49 sur 49 PASS |
| Transport release completeness | 43 sur 43 PASS |
| Config unit | 113 sur 113 PASS |
| PublicNode Yellowstone live | ignored opt-in comme attendu |
| `cargo tree --duplicates` Transport | fourni et inspecté |
| `cargo tree -p ksp-onchain-transport-lib` | fourni sur `0.2.10-pre.1` |
Versions visibles dans le graphe fourni :
@@ -419,12 +419,24 @@ pas de heartbeat dans grpc_defaults
pas de secret tant que le Devnet Free n'en exige pas
```
Profil prévu :
Profil matérialisé en `pre.002` :
```text
orbitflare_devnet
```
Le profil conserve les companions HTTP/WS Solana Devnet standards et ajoute exactement un endpoint gRPC :
```text
name = orbitflare_solana_devnet_yellowstone
provider = orbitflare
cluster = devnet
protocol = solana_yellowstone
url = http://devnet.rpc.orbitflare.com:10000
metadata = []
secret = []
```
Si le service opérateur réel impose ensuite un token gRPC :
```text
@@ -437,7 +449,7 @@ Cette variable n'est ajoutée à `.env.example` qu'après preuve qu'un secret da
### 12.1 Premier canari
Le premier canari doit utiliser **le standard N2 existant directement** :
`pre.002` ajoute `tests/yellowstone_orbitflare_smoke.rs`. Ce canari opt-in utilise **le standard N2 existant directement** et ne dépend pas de Config, conformément à la frontière Transport -> Config interdite :
```text
endpoint = http://devnet.rpc.orbitflare.com:10000
@@ -533,8 +545,8 @@ pre.001 audit actuel + architecture immuable N1/N2 + auth/endpoints + free Devn
preuve : plan 017 + validation 013 + delta + baseline
pre.002 profil Config V3 OrbitFlare Devnet + smoke de caractérisation standard N2
preuve : Subscribe -> Slot + observation Ping serveur si disponible + probes provider ciblés
aucune modification moteur gRPC
statique : profil sans metadata + canari Subscribe slots confirmed + fenêtre Ping 45 s + close borné
live : Subscribe -> Slot + observation Ping serveur ; aucune modification moteur gRPC
pre.003 soit gate technique final si OrbitFlare reste 100 pourcent standard,
soit tranche provider-specific minimale uniquement si pre.002 démontre une divergence réelle