9.3 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, les preuves acquises jusqu'à pre.006-fix.002 et les validations finales attendues de pre.007 avant publication 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 candidat pre.007 |
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 déclare 80 tests Transport et 114 tests Config, dont le smoke Devnet Config unique marqué ignored. Ces nombres sont des canaries de clôture de la candidate et devront être confirmés par Cargo sur le dépôt canonique.
Smoke Devnet opt-in
Le smoke live appartient à ksp-config-lib, car il doit prouver la chaîne :
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.
Audit cargo tree final attendu
À exécuter sur le dépôt canonique :
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib -d
cargo tree -p ksp-onchain-transport-lib -e features
cargo tree -p ksp-onchain-transport-lib -e normal
cargo tree -p ksp-config-lib
cargo tree -p ksp-config-lib -d
cargo tree -p ksp-config-lib -e features
cargo tree -p ksp-config-lib -e normal
Points attendus :
- pas de Config sous Transport ;
- Config dépend de Transport dans le sens autorisé ;
- pas de Store/Program ;
- pas de
tracingdirect chez Transport ; reqwest/rustls,serde/derive, Tokio Transport et Tokio de test Config restent activés localement par les crates consommatrices.
Validations finales de pre.007
Avant commit :
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
Puis, de manière opt-in :
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
Le smoke live est une preuve supplémentaire ; les suites déterministes restent la gate reproductible de publication.
Préparation de rel.001
Si les validations de pre.007 sont propres, rel.001 doit rester minimal :
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
nouveau delta deltas/0.2.1/rel.001.md
commit v0.2.1-rel.001
tag v0.2.1
Aucune nouvelle capacité HTTP ne doit être introduite dans rel.001.