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

9.3 KiB
Raw 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, 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.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 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 tracing direct 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.