Files
khadhroony-solana-project/docs/validation/003-V0_2_1_ONCHAIN_HTTP.md
2026-08-17 22:50:56 +02:00

9.6 KiB
Raw Permalink Blame History

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.10.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.20.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 dy 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 tracing directe 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 -d sont limités à syn 2.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