v0.2.8-pre.010
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md -->
|
||||
<!-- version: 22 -->
|
||||
<!-- version: 23 -->
|
||||
|
||||
# Validation `0.2.8` — Helius LaserStream WebSocket
|
||||
|
||||
> **Statut : `pre.008` est entièrement vert : 335/335 unit Transport, 40/40 API, 30/30 completeness, 5/5 doctests et workspace complet. `pre.009` est préparé avec réconciliation de la documentation Helius courante : `slotsUpdates` rejoint la façade Helius ; `block` et `vote` restent explicitement non supportés.**
|
||||
> **Statut : `pre.009` est entièrement vert : 335/335 unit Transport, 41/41 API, 33/33 completeness, 4/4 doctests et workspace complet. `pre.010` est préparé pour synchroniser README/USAGE, verrouiller la stratégie de smoke live architecture-safe et rejouer le cargo tree final.**
|
||||
|
||||
## 1. Références
|
||||
|
||||
@@ -31,6 +31,7 @@ pre.007 paused-I/O observation fix deltas/0.2.8/pre.007-fix.003.md
|
||||
pre.007 dependency-firewall fix deltas/0.2.8/pre.007-fix.004.md
|
||||
pre.008 adversarial/compliance guard deltas/0.2.8/pre.008.md
|
||||
pre.009 compliance provider/current deltas/0.2.8/pre.009.md
|
||||
pre.010 docs/smoke/tree final deltas/0.2.8/pre.010.md
|
||||
validation standard WS docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
|
||||
HTTP compliance docs/validation/007-V0_2_4_HTTP_FINAL_COMPLIANCE.md
|
||||
KSP-TRANSPORT-007 docs/validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md
|
||||
@@ -105,25 +106,25 @@ Verdict : **gate `0.2.8-pre.001` positif ; `pre.002` + `fix.001` et `pre.003` so
|
||||
|
||||
## 3. Matrice provider normative
|
||||
|
||||
| Capability | Standard KSP | Helius doc actuelle | Décision `0.2.8` | Surface Helius attendue | Preuve finale attendue |
|
||||
|------------------------------|----------------:|---------------------------------------------------|--------------------------|-------------------------|---------------------------------------|
|
||||
| `accountSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
|
||||
| `logsSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
|
||||
| `programSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
|
||||
| `rootSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
|
||||
| `signatureSubscribe` pair | oui | supporté | réutiliser standard | présente | one-shot conservé |
|
||||
| `slotSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
|
||||
| `blockSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
|
||||
| `slotsUpdatesSubscribe` pair | oui, unstable | page spécifique + overview courant = disponible | réutiliser wire standard | présente | exact wire + warning unstable |
|
||||
| `voteSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
|
||||
| `transactionSubscribe` | non standard | extension Helius | ajouter typed | présente | request/ack/notification fixtures |
|
||||
| `transactionUnsubscribe` | non standard | documenté dans référence transaction | ajouter via handle | présente | exact method + late-message race |
|
||||
| `tokenAccounts` | non standard | `none/balanceChanged/all` | ajouter typed | présente dans filter | enum + serialization |
|
||||
| `notifyOn` account | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
|
||||
| `notifyOn` program | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
|
||||
| enhanced account extra | non standard | mentionné, wire exact non publié | report explicite | absente | réaudit final |
|
||||
| proactive heartbeat | absent standard | 10 min idle, ping recommandé | Helius-only actor policy | interne | deterministic timer tests |
|
||||
| replay historique | absent standard | pas de contrat WS KSP | interdit | absent | docs/canary no promise |
|
||||
| Capability | Standard KSP | Helius doc actuelle | Décision `0.2.8` | Surface Helius attendue | Preuve finale attendue |
|
||||
|------------------------------|----------------:|-------------------------------------------------|--------------------------|-------------------------|---------------------------------------|
|
||||
| `accountSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
|
||||
| `logsSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
|
||||
| `programSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
|
||||
| `rootSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
|
||||
| `signatureSubscribe` pair | oui | supporté | réutiliser standard | présente | one-shot conservé |
|
||||
| `slotSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
|
||||
| `blockSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
|
||||
| `slotsUpdatesSubscribe` pair | oui, unstable | page spécifique + overview courant = disponible | réutiliser wire standard | présente | exact wire + warning unstable |
|
||||
| `voteSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
|
||||
| `transactionSubscribe` | non standard | extension Helius | ajouter typed | présente | request/ack/notification fixtures |
|
||||
| `transactionUnsubscribe` | non standard | documenté dans référence transaction | ajouter via handle | présente | exact method + late-message race |
|
||||
| `tokenAccounts` | non standard | `none/balanceChanged/all` | ajouter typed | présente dans filter | enum + serialization |
|
||||
| `notifyOn` account | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
|
||||
| `notifyOn` program | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
|
||||
| enhanced account extra | non standard | mentionné, wire exact non publié | report explicite | absente | réaudit final |
|
||||
| proactive heartbeat | absent standard | 10 min idle, ping recommandé | Helius-only actor policy | interne | deterministic timer tests |
|
||||
| replay historique | absent standard | pas de contrat WS KSP | interdit | absent | docs/canary no promise |
|
||||
|
||||
## 4. Matrice des façades protocolaires
|
||||
|
||||
@@ -986,3 +987,73 @@ Le passage de 5 à 4 doctests est attendu : le canari compile-fail `Helius -X->
|
||||
|
||||
Verdict courant : **`pre.009` PREPARED ; `pre.010` bloqué jusqu'au gate opérateur.**
|
||||
|
||||
## 24. Fermeture `pre.009` et gate `pre.010`
|
||||
|
||||
Résultat opérateur `0.2.8-pre.9` :
|
||||
|
||||
```text
|
||||
[x] cargo fmt --all
|
||||
[x] audit Rust workspace = clean / 0 candidate
|
||||
[x] cargo check --workspace = vert, sans warning
|
||||
[x] cargo clippy --workspace --all-targets = vert, sans warning
|
||||
[x] Transport unit = 335/335
|
||||
[x] Transport public API = 41/41
|
||||
[x] release completeness = 33/33
|
||||
[x] Transport doctests = 4/4
|
||||
[x] cargo test --workspace = vert
|
||||
```
|
||||
|
||||
Verdict : **`pre.009` DONE.**
|
||||
|
||||
### 24.1 Stratégie live Helius retenue
|
||||
|
||||
Les pages Helius courantes confirment :
|
||||
|
||||
```text
|
||||
endpoints WSS unifiés mainnet/devnet avec api-key
|
||||
slotSubscribe disponible sur endpoint Helius
|
||||
transactionSubscribe = extension Helius
|
||||
Ping chaque minute recommandé contre l’inactivité
|
||||
```
|
||||
|
||||
La sécurité du credential n’est pas le seul critère. L’ownership KSP impose aussi :
|
||||
|
||||
```text
|
||||
[x] Transport ne lit pas KSP_SECRET_HELIUS_API_KEY
|
||||
[x] Transport ne dépend pas de Config
|
||||
[x] Config reste propriétaire de l’environnement et du secret
|
||||
[x] le smoke Config -> Transport existant reste une exception transitoire
|
||||
[x] aucun nouveau smoke cross-crates Helius n’est ajouté à Config
|
||||
```
|
||||
|
||||
Le smoke live Helius est donc **différé vers la future surface d’intégration/orchestration**. Le scénario minimal recommandé utilisera le profil `helius_devnet` puis `slotSubscribe`; un scénario `transactionSubscribe` restera optionnel et provider-entitlement-dependent. Cette absence de test live committé n’affaiblit pas les gates déterministes de `0.2.8`, déjà couverts par fixtures locales, capability guards, reconnect, heartbeat, backpressure et compliance.
|
||||
|
||||
### 24.2 Critères `pre.010`
|
||||
|
||||
```text
|
||||
[ ] workspace.package.version = 0.2.8-pre.10
|
||||
[ ] README décrit Helius = 7 familles standard + transaction
|
||||
[ ] README rappelle block/vote absents et slotsUpdates unstable
|
||||
[ ] README/USAGE documentent heartbeat Helius 60 s
|
||||
[ ] USAGE documente Config helius_devnet -> HeliusLaserStreamWsSession
|
||||
[ ] KSP_SECRET_HELIUS_API_KEY reste Config-owned
|
||||
[ ] aucun nouveau smoke Helius live dans Transport avec lecture env/secret
|
||||
[ ] aucun nouveau smoke Helius cross-crates ajouté à Config
|
||||
[ ] aucun Transport -> Config
|
||||
[ ] aucune nouvelle dépendance
|
||||
[ ] cargo tree -p ksp-onchain-transport-lib inspecté
|
||||
[ ] cargo tree -p ksp-onchain-transport-lib --duplicates inspecté
|
||||
[ ] cargo tree --duplicates inspecté
|
||||
[ ] cargo fmt --all
|
||||
[ ] audit Rust = clean
|
||||
[ ] cargo check = sans warning
|
||||
[ ] cargo clippy = sans warning
|
||||
[ ] Transport unit = 335
|
||||
[ ] Transport public API = 41
|
||||
[ ] release completeness = 34
|
||||
[ ] Transport doctests = 4
|
||||
[ ] cargo test --workspace = vert
|
||||
```
|
||||
|
||||
Verdict courant : **`pre.010` PREPARED ; `pre.011` bloqué jusqu’au gate opérateur et au cargo tree final.**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user