v0.2.10-pre.004
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/validation/013-V0_2_10_ORBITFLARE_YELLOWSTONE_GRPC.md -->
|
||||
<!-- version: 3 -->
|
||||
<!-- version: 4 -->
|
||||
|
||||
# Validation `0.2.10` — OrbitFlare Yellowstone gRPC
|
||||
|
||||
**Statut courant : `0.2.10-pre.002` est commité et son gate statique/workspace est vert. Son live sans metadata a atteint OrbitFlare mais `SubscribeOpen` a été rejeté `Unauthenticated`. `0.2.10-pre.002-fix.001` corrige l’auth en License Key `ORBIT-*` transmise comme secret `x-token`, sans modification N1/N2. Le rerun authentifié `Subscribe -> Slot + Ping` reste `PENDING OPERATOR`.**
|
||||
**Statut courant : `0.2.10-pre.003` ferme le gate technique/live final. Le workspace complet est vert, les graphes Cargo ont été inspectés et le smoke OrbitFlare Devnet authentifié par License Key `ORBIT-*` en secret `x-token` observe `Subscribe -> Slot + Ping` puis ferme proprement. N1/N2 restent inchangés ; `pre.004` réconcilie uniquement la documentation finale.**
|
||||
|
||||
## 1. Autorités
|
||||
|
||||
@@ -63,7 +63,7 @@ Toute modification de `grpc_stream.rs`, `grpc_channel.rs`, `grpc_settings.rs`, `
|
||||
| TPS Free | 1 | INFO |
|
||||
| crédit | unlimited dans le RPS | INFO |
|
||||
| Devnet gRPC endpoint | `http://devnet.rpc.orbitflare.com:10000` | **PASS** |
|
||||
| Devnet live KSP | service atteint, Subscribe auth rejeté | **AUTH GATE** |
|
||||
| Devnet live KSP | Subscribe authentifié, Slot + Ping | **PASS LIVE** |
|
||||
| Mainnet gratuit | non documenté | **OUT** |
|
||||
| Testnet endpoint | non prouvé | **UNKNOWN** |
|
||||
|
||||
@@ -114,50 +114,50 @@ Le CLI OrbitFlare courant n’est pas utilisé comme oracle positif pour l’aut
|
||||
|
||||
## 7. Heartbeat
|
||||
|
||||
| Point | Preuve | Verdict |
|
||||
|----------------------------------------|------------------------------------------|-------------|
|
||||
| OrbitFlare idle timeout partagé | environ 10 minutes | **PASS** |
|
||||
| OrbitFlare recommande client Ping | 30 secondes | **PASS** |
|
||||
| Yellowstone serveur Ping périodique | upstream documenté | **PASS** |
|
||||
| KSP auto reply au serveur Ping | test N1 `0.2.9` | **PASS** |
|
||||
| moteur N1 à modifier | non | **PASS** |
|
||||
| Ping serveur OrbitFlare Devnet observé | live non encore exécuté | **PENDING** |
|
||||
| heartbeat provider additionnel | non justifié tant que live non contraire | **NO** |
|
||||
| Point | Preuve | Verdict |
|
||||
|----------------------------------------|---------------------------------------------|----------|
|
||||
| OrbitFlare idle timeout partagé | environ 10 minutes | **PASS** |
|
||||
| OrbitFlare recommande client Ping | 30 secondes | **PASS** |
|
||||
| Yellowstone serveur Ping périodique | upstream documenté | **PASS** |
|
||||
| KSP auto reply au serveur Ping | test N1 `0.2.9` et non-régression `pre.003` | **PASS** |
|
||||
| moteur N1 à modifier | non | **PASS** |
|
||||
| Ping serveur OrbitFlare Devnet observé | live `pre.002-fix.001` + `pre.003` | **PASS** |
|
||||
| heartbeat provider additionnel | aucune divergence live | **NO** |
|
||||
|
||||
Critère de fermeture : observer le Ping standard sur OrbitFlare Devnet ou qualifier précisément pourquoi il n'est pas observable et quelle divergence provider existe.
|
||||
Le gate est fermé : OrbitFlare émet le Ping Yellowstone standard et le chemin de réponse automatique N1 reste suffisant sans timer provider.
|
||||
|
||||
## 8. Capabilities streaming
|
||||
|
||||
| Capability | Docs OrbitFlare | KSP N2 | Live provider |
|
||||
|---------------------|-----------------|--------|---------------|
|
||||
| accounts | oui | PASS | PENDING |
|
||||
| slots | oui | PASS | PENDING |
|
||||
| transactions | oui | PASS | PENDING |
|
||||
| transactions_status | partiel | PASS | PENDING |
|
||||
| blocks | oui | PASS | PENDING |
|
||||
| blocks_meta | oui | PASS | PENDING |
|
||||
| entry | oui | PASS | PENDING |
|
||||
| commitment | oui | PASS | PENDING |
|
||||
| accounts_data_slice | oui | PASS | PENDING |
|
||||
| Subscribe Ping/Pong | oui | PASS | PENDING |
|
||||
| Capability | Docs OrbitFlare | KSP N2 | Live provider |
|
||||
|---------------------|-----------------|--------|--------------------------|
|
||||
| accounts | oui | PASS | non sondé exhaustivement |
|
||||
| slots | oui | PASS | **PASS** |
|
||||
| transactions | oui | PASS | non sondé exhaustivement |
|
||||
| transactions_status | partiel | PASS | non sondé exhaustivement |
|
||||
| blocks | oui | PASS | non sondé exhaustivement |
|
||||
| blocks_meta | oui | PASS | non sondé exhaustivement |
|
||||
| entry | oui | PASS | non sondé exhaustivement |
|
||||
| commitment | oui | PASS | **PASS confirmed** |
|
||||
| accounts_data_slice | oui | PASS | non sondé exhaustivement |
|
||||
| Subscribe Ping/Pong | oui | PASS | **PASS Ping serveur** |
|
||||
|
||||
Le premier smoke n'a pas besoin de démontrer chaque famille. Il doit prouver que le provider exécute le standard KSP sur Devnet ; les capacités supplémentaires sont sondées sans élargir N2.
|
||||
La release prouve le chemin provider nécessaire à sa mission sans transformer les familles non sondées en capacités absentes.
|
||||
|
||||
## 9. Unary et replay
|
||||
|
||||
| Capability | N2 KSP | OrbitFlare docs | Live |
|
||||
|---------------------|--------|-----------------|---------|
|
||||
| SubscribeReplayInfo | PASS | non prouvé | PENDING |
|
||||
| Ping unary | PASS | non prouvé | PENDING |
|
||||
| GetLatestBlockhash | PASS | non prouvé | PENDING |
|
||||
| GetBlockHeight | PASS | non prouvé | PENDING |
|
||||
| GetSlot | PASS | non prouvé | PENDING |
|
||||
| IsBlockhashValid | PASS | non prouvé | PENDING |
|
||||
| GetVersion | PASS | non prouvé | PENDING |
|
||||
| from_slot | PASS | non prouvé | PENDING |
|
||||
| retention | N/A | non documentée | UNKNOWN |
|
||||
| Capability | N2 KSP | OrbitFlare docs | Verdict provider |
|
||||
|---------------------|--------|-----------------|-----------------------------------|
|
||||
| SubscribeReplayInfo | PASS | non prouvé | UNKNOWN / non bloquant |
|
||||
| Ping unary | PASS | non prouvé | UNKNOWN / non bloquant |
|
||||
| GetLatestBlockhash | PASS | non prouvé | UNKNOWN / non bloquant |
|
||||
| GetBlockHeight | PASS | non prouvé | UNKNOWN / non bloquant |
|
||||
| GetSlot | PASS | non prouvé | UNKNOWN / non bloquant |
|
||||
| IsBlockhashValid | PASS | non prouvé | UNKNOWN / non bloquant |
|
||||
| GetVersion | PASS | non prouvé | UNKNOWN / non bloquant |
|
||||
| from_slot | PASS | non prouvé | N1 disponible, provider non sondé |
|
||||
| retention | N/A | non documentée | UNKNOWN / provider-owned |
|
||||
|
||||
Une restriction provider ne rétrograde jamais la disponibilité de la méthode dans le standard global KSP.
|
||||
Une restriction ou un inconnu provider ne rétrograde jamais la disponibilité de la méthode dans le standard global KSP. Le reconnect N1 tolère déjà l'indisponibilité de `SubscribeReplayInfo` et poursuit avec le `from_slot` conservateur demandé.
|
||||
|
||||
## 10. Limits provider
|
||||
|
||||
@@ -174,29 +174,29 @@ 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` | **PASS STATIC** |
|
||||
| `protocol = solana_yellowstone` | **PASS STATIC** |
|
||||
| `cluster = devnet` | **PASS STATIC** |
|
||||
| Devnet URL publique | **PASS STATIC** |
|
||||
| secret metadata `x-token` | **REQUIRED** |
|
||||
| valeur License Key via `KSP_SECRET_*` | **PASS DESIGN** |
|
||||
| `X-ORBIT-KEY` dans Transport Config | **FORBID** |
|
||||
| heartbeat dans `grpc_defaults` | **NO** |
|
||||
| Exigence | Verdict |
|
||||
|---------------------------------------|----------|
|
||||
| nouveau format Config nécessaire | **NO** |
|
||||
| `provider = orbitflare` | **PASS** |
|
||||
| `protocol = solana_yellowstone` | **PASS** |
|
||||
| `cluster = devnet` | **PASS** |
|
||||
| Devnet URL publique | **PASS** |
|
||||
| secret metadata `x-token` | **PASS** |
|
||||
| valeur License Key via `KSP_SECRET_*` | **PASS** |
|
||||
| `X-ORBIT-KEY` dans Transport Config | **NO** |
|
||||
| heartbeat dans `grpc_defaults` | **NO** |
|
||||
|
||||
`pre.002-fix.001` corrige le profil en :
|
||||
Contrat final :
|
||||
|
||||
```text
|
||||
secret_metadata = x-token <- ${KSP_SECRET_ORBITFLARE_DEVNET_GRPC_X_TOKEN}
|
||||
```
|
||||
|
||||
La valeur effective doit rester redacted dans toutes les projections safe/debug.
|
||||
Le test Config prouve la classification secrète et la redaction ; le live prouve que ce credential ouvre le Subscribe OrbitFlare Devnet.
|
||||
|
||||
## 12. Smoke Devnet attendu
|
||||
## 12. Smoke Devnet final
|
||||
|
||||
Smoke corrigé :
|
||||
Smoke durable :
|
||||
|
||||
```text
|
||||
License Key lue sur stdin
|
||||
@@ -207,28 +207,35 @@ url = http://devnet.rpc.orbitflare.com:10000
|
||||
open standard Subscribe
|
||||
request slots confirmed
|
||||
receive Slot non nul
|
||||
observe Ping serveur pendant fenêtre bornée de caractérisation
|
||||
observe Ping serveur
|
||||
close borné
|
||||
```
|
||||
|
||||
Verdicts actuels :
|
||||
|
||||
| Preuve | Verdict |
|
||||
|----------------------------------------------|--------------------------------|
|
||||
| endpoint parsé par N1 | **PASS STATIC** |
|
||||
| endpoint parsé par N1 | **PASS** |
|
||||
| sans metadata | **FAIL EXPECTED / CLASSIFIED** |
|
||||
| secret `x-token` représentable par Config V3 | **PASS STATIC** |
|
||||
| License Key redacted | **PASS STATIC** |
|
||||
| connect authentifié | **PENDING OPERATOR** |
|
||||
| Subscribe authentifié | **PENDING OPERATOR** |
|
||||
| Slot reçu | **PENDING OPERATOR** |
|
||||
| server Ping reçu | **PENDING OPERATOR** |
|
||||
| secret `x-token` représentable par Config V3 | **PASS** |
|
||||
| License Key redacted | **PASS** |
|
||||
| connect authentifié | **PASS LIVE** |
|
||||
| Subscribe authentifié | **PASS LIVE** |
|
||||
| Slot reçu | **PASS LIVE** |
|
||||
| server Ping reçu | **PASS LIVE** |
|
||||
| auto reply KSP déterministe | **PASS N1** |
|
||||
| close borné | **PASS N1 / LIVE PENDING** |
|
||||
| close borné | **PASS LIVE** |
|
||||
|
||||
Résultats :
|
||||
|
||||
```text
|
||||
pre.002-fix.001 1/1 PASS en 5.10 s
|
||||
pre.003 final 1/1 PASS en 5.19 s
|
||||
```
|
||||
|
||||
## 13. Provider overlay gate
|
||||
|
||||
La release reste sans façade OrbitFlare si `pre.002` démontre :
|
||||
Verdict final : **aucune façade/policy OrbitFlare n'est nécessaire**.
|
||||
|
||||
Les conditions de réutilisation directe sont toutes satisfaites :
|
||||
|
||||
```text
|
||||
standard Subscribe fonctionne
|
||||
@@ -237,64 +244,56 @@ Config V3 exprime endpoint/auth
|
||||
aucune restriction consumer-visible ne requiert un type provider
|
||||
```
|
||||
|
||||
Une façade/policy OrbitFlare devient admissible seulement après preuve live d'une divergence. Même dans ce cas :
|
||||
Les interdictions restent durables :
|
||||
|
||||
```text
|
||||
N1 ne change pas
|
||||
N2 ne change pas
|
||||
pas de raw Tonic
|
||||
pas de SDK OrbitFlare
|
||||
ownership/close provider bornés
|
||||
```
|
||||
|
||||
## 14. Non-régressions finales
|
||||
|
||||
| Surface | Baseline | Final |
|
||||
|-----------------------------------|--------------|---------|
|
||||
| HTTP current typed | 52 sur 52 | PENDING |
|
||||
| HTTP historical | 14 sur 14 | PENDING |
|
||||
| WebSocket standard | 18 sur 18 | PENDING |
|
||||
| Helius LaserStream WebSocket | stable 0.2.8 | PENDING |
|
||||
| Yellowstone N1/N2 | stable 0.2.9 | PENDING |
|
||||
| PublicNode Mainnet/Testnet | stable 0.2.9 | PENDING |
|
||||
| Config V1/V2/V3 backward readable | stable 0.2.9 | PENDING |
|
||||
| dependency firewall | stable 0.2.9 | PENDING |
|
||||
| Surface | Baseline | Final |
|
||||
|-----------------------------------|--------------|------------------------|
|
||||
| HTTP current typed | 52 sur 52 | **PASS** |
|
||||
| HTTP historical | 14 sur 14 | **PASS** |
|
||||
| WebSocket standard | 18 sur 18 | **PASS** |
|
||||
| Helius LaserStream WebSocket | stable 0.2.8 | **PASS** |
|
||||
| Yellowstone N1/N2 | stable 0.2.9 | **PASS** |
|
||||
| PublicNode Mainnet/Testnet | stable 0.2.9 | **PASS deterministic** |
|
||||
| Config V1/V2/V3 backward readable | stable 0.2.9 | **PASS** |
|
||||
| dependency firewall | stable 0.2.9 | **PASS** |
|
||||
|
||||
Les smokes PublicNode live n'ont pas été rejoués en `pre.003` car N1/N2 et les profils PublicNode n'ont pas changé ; leurs preuves live de `0.2.9` restent la baseline et la non-régression déterministe est verte.
|
||||
|
||||
## 15. Gate `pre.001`
|
||||
|
||||
| Critère | Verdict |
|
||||
|-------------------------------------|------------------------|
|
||||
| base stable `v0.2.9` | **PASS** |
|
||||
| baseline fmt/audits/check/clippy | **PASS** |
|
||||
| workspace test | **PASS** |
|
||||
| graph duplicates | **PASS** |
|
||||
| graph complet Transport | **PASS** |
|
||||
| sources OrbitFlare actuelles | **PASS** |
|
||||
| sources Yellowstone actuelles | **PASS** |
|
||||
| Free Devnet gRPC confirmé | **PASS** |
|
||||
| endpoints classifiés | **PASS** |
|
||||
| auth planes distingués | **PASS** |
|
||||
| heartbeat KSP vs provider classifié | **PASS, LIVE PENDING** |
|
||||
| capabilities auditées | **PASS, LIVE PENDING** |
|
||||
| replay/from_slot | **UNKNOWN PROVIDER** |
|
||||
| N1 immutable | **PASS** |
|
||||
| N2 immutable | **PASS** |
|
||||
| Config V3 shape | **PASS** |
|
||||
| smoke ownership | **PASS** |
|
||||
| threat model | **PASS** |
|
||||
| sizing/forecast | **PASS** |
|
||||
| provider runtime lourd ajouté | **NO** |
|
||||
| Critère | Verdict |
|
||||
|-------------------------------------|----------------------|
|
||||
| base stable `v0.2.9` | **PASS** |
|
||||
| baseline fmt/audits/check/clippy | **PASS** |
|
||||
| workspace test | **PASS** |
|
||||
| graph duplicates | **PASS** |
|
||||
| graph complet Transport | **PASS** |
|
||||
| sources OrbitFlare actuelles | **PASS** |
|
||||
| sources Yellowstone actuelles | **PASS** |
|
||||
| Free Devnet gRPC confirmé | **PASS** |
|
||||
| endpoints classifiés | **PASS** |
|
||||
| auth planes distingués | **PASS** |
|
||||
| heartbeat KSP vs provider classifié | **PASS FINAL** |
|
||||
| capabilities auditées | **PASS** |
|
||||
| replay/from_slot | **UNKNOWN PROVIDER** |
|
||||
| N1 immutable | **PASS** |
|
||||
| N2 immutable | **PASS** |
|
||||
| Config V3 shape | **PASS** |
|
||||
| smoke ownership | **PASS** |
|
||||
| threat model | **PASS** |
|
||||
| sizing/forecast | **PASS** |
|
||||
| provider runtime lourd ajouté | **NO** |
|
||||
|
||||
Verdict :
|
||||
|
||||
```text
|
||||
architecture/sizing gate = POSITIVE
|
||||
operator pre.001 gate = PASS
|
||||
pre.002 static/workspace gate = PASS
|
||||
pre.002 live auth hypothesis = FAIL CLASSIFIED
|
||||
pre.002-fix.001 static gate = READY FOR OPERATOR VALIDATION
|
||||
live provider gate = PENDING authenticated characterization
|
||||
```
|
||||
Verdict final : architecture positive, inconnus provider non requis qualifiés, aucun split déclenché.
|
||||
|
||||
## 16. Gate `pre.002` commité
|
||||
|
||||
@@ -319,44 +318,77 @@ Validation opérateur du 2026-08-25 :
|
||||
| live sans metadata | **FAIL CLASSIFIED** |
|
||||
| `SubscribeOpen` | **UNAUTHENTICATED** |
|
||||
|
||||
Le failure live est un résultat de caractérisation utile et non une régression du moteur. Il impose un fix de configuration/auth provider parce que `pre.002` est déjà commité.
|
||||
Le failure live est la caractérisation historique qui a imposé le fix d'auth, pas une régression du moteur.
|
||||
|
||||
## 17. Gate `pre.002-fix.001`
|
||||
|
||||
| Critère | Verdict |
|
||||
|-----------------------------------------------------------------|----------------------|
|
||||
| Cargo `0.2.10-pre.2.fix.1` | **PASS STATIC** |
|
||||
| `.env.example` inventorie le secret OrbitFlare | **PASS STATIC** |
|
||||
| Config `secret_metadata` contient `x-token` | **PASS STATIC** |
|
||||
| valeur provenant de `KSP_SECRET_ORBITFLARE_DEVNET_GRPC_X_TOKEN` | **PASS STATIC** |
|
||||
| test Config prouve redaction et classification secrète | **PASS STATIC** |
|
||||
| smoke lit la License Key sur stdin | **PASS STATIC** |
|
||||
| secret absent des arguments CLI | **PASS STATIC** |
|
||||
| moteur N1 modifié | **NO** |
|
||||
| standard N2 modifié | **NO** |
|
||||
| SDK OrbitFlare ajouté | **NO** |
|
||||
| connect authentifié | **PENDING OPERATOR** |
|
||||
| `Subscribe -> Slot` live | **PENDING OPERATOR** |
|
||||
| `SubscribeUpdate::Ping` live | **PENDING OPERATOR** |
|
||||
| close live | **PENDING OPERATOR** |
|
||||
| Critère | Verdict |
|
||||
|-----------------------------------------------------------------|------------------------|
|
||||
| Cargo `0.2.10-pre.2.fix.1` | **PASS** |
|
||||
| `.env.example` inventorie le secret OrbitFlare | **PASS** |
|
||||
| Config `secret_metadata` contient `x-token` | **PASS** |
|
||||
| valeur provenant de `KSP_SECRET_ORBITFLARE_DEVNET_GRPC_X_TOKEN` | **PASS** |
|
||||
| test Config prouve redaction et classification secrète | **PASS** |
|
||||
| smoke lit la License Key sur stdin | **PASS** |
|
||||
| secret absent des arguments CLI | **PASS** |
|
||||
| moteur N1 modifié | **NO** |
|
||||
| standard N2 modifié | **NO** |
|
||||
| SDK OrbitFlare ajouté | **NO** |
|
||||
| connect authentifié | **PASS LIVE** |
|
||||
| `Subscribe -> Slot` live | **PASS LIVE / 5.10 s** |
|
||||
| `SubscribeUpdate::Ping` live | **PASS LIVE** |
|
||||
| close live | **PASS LIVE** |
|
||||
|
||||
Commande live dédiée, avec secret saisi sans l’inscrire dans l’historique :
|
||||
Le fix ferme l'auth et confirme que le chemin standard suffit.
|
||||
|
||||
```bash
|
||||
read -rsp 'OrbitFlare License Key: ' ORBITFLARE_LICENSE_KEY; echo
|
||||
printf '%s\n' "$ORBITFLARE_LICENSE_KEY" | cargo test -p ksp-onchain-transport-lib --test yellowstone_orbitflare_smoke -- --ignored --nocapture
|
||||
unset ORBITFLARE_LICENSE_KEY
|
||||
```
|
||||
## 18. Gate `pre.003` technique/live final
|
||||
|
||||
Interprétation :
|
||||
Gate opérateur du 2026-08-25 :
|
||||
|
||||
| Critère | Verdict |
|
||||
|------------------------------------------|----------------------------------|
|
||||
| Cargo `0.2.10-pre.3` | **PASS** |
|
||||
| `cargo fmt --all` | **PASS** |
|
||||
| audit Rust | **PASS / 0 export candidate** |
|
||||
| audit Markdown | **PASS / 99 tables / 100 files** |
|
||||
| `cargo check --workspace` | **PASS** |
|
||||
| `cargo clippy --workspace --all-targets` | **PASS** |
|
||||
| Config unit | **114 sur 114 PASS** |
|
||||
| Config ownership | **5 sur 5 PASS** |
|
||||
| Config public API | **15 sur 15 PASS** |
|
||||
| Transport unit | **383 sur 383 PASS** |
|
||||
| Transport public API | **49 sur 49 PASS** |
|
||||
| Transport release completeness | **43 sur 43 PASS** |
|
||||
| Transport doctests | **4 sur 4 PASS** |
|
||||
| workspace dependency canary | **3 sur 3 PASS** |
|
||||
| `cargo test --workspace` | **PASS** |
|
||||
| OrbitFlare Devnet live | **1 sur 1 PASS / 5.19 s** |
|
||||
| graphes Cargo | **INSPECTÉS / PAS DE BLOCAGE** |
|
||||
| moteur N1 modifié | **NO** |
|
||||
| standard N2 modifié | **NO** |
|
||||
|
||||
Pile directe réconciliée :
|
||||
|
||||
```text
|
||||
Slot + Ping PASS
|
||||
-> auth et heartbeat standards composables ; pre.003 devient gate technique/live final
|
||||
|
||||
Subscribe/Slot PASS mais Ping absent
|
||||
-> divergence heartbeat provider à traiter au-dessus de N1/N2 dans pre.003
|
||||
|
||||
auth encore rejetée avec la License Key x-token
|
||||
-> blocker provider/account à qualifier ; ne jamais modifier N1 pour contourner le gate
|
||||
yellowstone-grpc-proto 12.6.0
|
||||
tonic / tonic-prost 0.14.6
|
||||
prost / prost-types 0.14.4
|
||||
```
|
||||
|
||||
Verdict : **gate technique/live final fermé**.
|
||||
|
||||
## 19. Gate `pre.004` documentaire
|
||||
|
||||
Cette tranche doit uniquement synchroniser :
|
||||
|
||||
```text
|
||||
plan 017
|
||||
validation 013
|
||||
README Transport
|
||||
USAGE Transport
|
||||
docs/000-README.md
|
||||
```
|
||||
|
||||
Elle ne change ni code, ni Config runtime, ni schema, ni test, ni dependency. `CHANGELOG.md`, `ROADMAP.md` et le prompt suivant restent réservés au couloir publication-minimal.
|
||||
|
||||
La décision de séquence est prise avant `pre.005` : Helius LaserStream gRPC est reporté dans les TODO Yellowstone sans numéro de release faute d'accès live raisonnable, et `0.2.11` devient `off-chain price transport`. Aucun prompt suivant n'est généré dans `pre.004`.
|
||||
|
||||
Reference in New Issue
Block a user