9.6 KiB
Validation 0.2.1 — HTTP Solana foundation
Objet
Cette matrice synthétise les critères de clôture de 0.2.1 — ksp-onchain-transport-lib / HTTP Solana foundation et les preuves opérateur ayant autorisé la publication stable 0.2.1-rel.001.
Elle ne remplace ni docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md ni les deltas 0.2.1.
Base de clôture
base validée : 0.2.1-pre.6.fix.2
candidate finale : 0.2.1-pre.7
La base pre.006-fix.002 a été validée par l'opérateur le 2026-08-17 avec cargo fmt --all, cargo check --workspace, cargo clippy --workspace --all-targets, les tests ciblés Transport/Config Desk/Config/Core et cargo test --workspace.
Revérification officielle Solana
Revérification de clôture effectuée le 2026-08-17.
Index HTTP officiel :
https://solana.com/docs/rpc/http
L'index courant expose toujours 52 méthodes HTTP et confirme JSON-RPC 2.0 sur HTTP POST avec Content-Type: application/json.
La navigation officielle Deprecated Methods, visible depuis les pages deprecated telles que :
https://solana.com/docs/rpc/deprecated/confirmtransaction
expose toujours les 14 noms historiques audités :
confirmTransaction
getConfirmedBlock
getConfirmedBlocks
getConfirmedBlocksWithLimit
getConfirmedSignaturesForAddress2
getConfirmedTransaction
getFeeCalculatorForBlockhash
getFeeRateGovernor
getFees
getRecentBlockhash
getSignatureConfirmation
getSignatureStatus
getSnapshotSlot
getStakeActivation
KSP les conserve comme Deprecated / Removed / Historical; 0.2.1 ne simule pas leur appelabilité runtime.
Matrice de clôture
| Critère | État stable 0.2.1 |
Preuve / contrat |
|---|---|---|
Crate ksp-onchain-transport-lib présente et indépendante |
OK | manifest + canary Core workspace_dependencies |
| Transport -X-> Config/Store/Program | OK | canary de firewall workspace |
Transport -X-> tracing direct |
OK | ownership Logging + ksp-logging-lib |
| Features Cargo activées localement par consumer | OK | canary workspace + manifests |
| Target Logging explicite possédé par la crate | OK | src/constants.rs + canary workspace_logging |
| URL endpoint redacted dans settings/snapshots/Debug | OK | tests settings/client/pool/public API |
reqwest::Error source sans URL sensible |
OK | without_url() + canary timeout secret |
| JSON-RPC 2.0 request/response/id/error | OK | tests json_rpc |
| Registry HTTP courant | OK | 52 descriptors + canary de release |
| Registry historique Deprecated | OK | 14 descriptors Removed + canary de release |
| Partition typed future | OK | 4 / 22 / 11 / 15 pour 0.2.1–0.2.4 |
| Quatre canaris typés exacts | OK | getBalance, getGenesisHash, getHealth, getVersion |
| Pool rôles/capabilities/priorités/fairness | OK | tests pool |
| RPS/burst/concurrence/cooldown | OK | tests resilience/pool |
| Deadline/timeout/retry borné | OK | tests executor/resilience |
| No-resend après dispatch ambigu | OK | descriptor + policy + tests |
| 429/Retry-After et statuts temporaires | OK | tests executor |
| Config standard Transport | OK | std.transport.json + schema + example |
| Direction Config -> Transport | OK | adapter load_resolved_transport_config |
| Sensibilité/provenance/env Transport | OK | tests Config |
| Logging Transport dédié | OK | sink dédié info dans std.logging.json |
| Tests réseau par défaut déterministes | OK | fixtures + serveur HTTP local |
| Smoke Devnet | OPT-IN | tests/transport_devnet_smoke.rs, ignored par défaut |
| README durable | OK | crates/ksp-onchain-transport-lib/README.md |
| USAGE durable | OK | crates/ksp-onchain-transport-lib/USAGE.md |
| Prompt release suivante | OK | prompts/007-V0_2_2_START_PROMPT.md |
| Matrice HTTP globale préservée | OK | plan 008; 48 méthodes restantes restent affectées à 0.2.2–0.2.4 |
Canaries de complétude finales
pre.007 ajoute une intégration publique dédiée qui vérifie :
current == 52
historical == 14
coverage == 4 / 22 / 11 / 15
V0_2_1 == getBalance/getGenesisHash/getHealth/getVersion
historical => Deprecated + Removed + NotApplicable
Ces checks complètent les tests unitaires existants du registre et protègent la frontière de release depuis l'API publique.
La candidate validée déclare 80 tests Transport et 114 tests Config, dont le smoke Devnet Config unique marqué ignored. Cargo a confirmé ces surfaces sur le dépôt canonique avant rel.001.
Smoke Devnet opt-in
Le smoke live est temporairement hébergé dans ksp-config-lib, car la direction de dépendance actuelle permet d’y prouver la chaîne sans introduire Transport -> Config :
Config
-> profile devnet_public
-> HttpTransportSettings
-> HttpTransportPool
-> getHealth
-> getGenesisHash
-> getVersion
-> getBalance(System Program)
Transport ne lit donc pas directement l'environnement.
Exécution explicite :
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
Ce test dépend d'un service Devnet externe. Il reste ignoré dans les suites déterministes et un incident/rate-limit du RPC public n'est pas assimilé à une régression locale sans analyse. Il a été exécuté explicitement avec succès avant rel.001.
TODO ownership : ksp-config-lib ne doit jamais devenir la destination générale des smoke tests, y compris pour les futurs scénarios Config + autre crate. Dès qu'une surface KSP d'intégration/orchestration appropriée existe, ce smoke doit y migrer ; les futurs smokes cross-crates doivent être créés directement sur cette surface dédiée.
Audit cargo tree final
Les graphes ont été exécutés sur le dépôt canonique pour Transport et Config sous les formes normale, duplicates et features. Ils confirment :
- aucune dépendance Config sous Transport ;
- Config dépend de Transport dans le sens autorisé ;
- aucune dépendance Store/Program ;
- aucune dépendance
tracingdirecte de Transport ; reqwest/rustls,serde/derive, Tokio Transport et Tokio de test Config restent activés localement par les crates consommatrices ;- les doublons signalés par
cargo tree -dsont limités àsyn2.x/3.x dans les graphes inspectés et proviennent des chaînes proc-macro/transitives, sans duplication d'une stack HTTP/Tokio KSP concurrente.
Validations finales opérateur
Validé le 2026-08-17 sur le dépôt canonique :
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test -p ksp-config-lib
cargo test -p ksp-core-lib
cargo test -p ksp-app-config-desk
cargo test --workspace
Le smoke live a ensuite été exécuté explicitement :
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
Résultat : 1 passed; 0 failed; les quatre canaris foundation sont donc atteints via le profil Devnet committé.
Publication rel.001
0.2.1-rel.001 ne contient aucune nouvelle capacité HTTP. Il publie :
workspace.package.version -> 0.2.1
ROADMAP : 0.2.1 -> [X]
CHANGELOG : synthèse stable 0.2.1
plan 008 / matrice 003 : statut clôturé et preuves opérateur
delta deltas/0.2.1/rel.001.md
commit v0.2.1-rel.001
tag stable v0.2.1 après validation du commit de release