Files
khadhroony-solana-project/deltas/0.2.1/pre.001.md
2026-08-17 17:20:41 +02:00

5.9 KiB
Raw Blame History

Delta 0.2.1-pre.001 — audit HTTP, matrice exhaustive, architecture et sizing

Base requise

Release stable attendue :

v0.2.0

L'archive KSP fournie porte workspace.package.version = "0.2.0" et contient les quatre crates N1 attendues. Elle ne contient pas .git; le tag v0.2.0 n'est donc pas revérifiable localement depuis le zip.

Archive historique auditée :

khadhroony-bot3_v0.5.3-pre.005-fix010.zip
workspace.package.version = "0.5.3-pre.5"

Objectif

Exécuter la première tranche obligatoire d'audit/conception de 0.2.1 sans grosse implémentation : relecture KSP, audit détaillé du transport bot3, inventaire officiel Solana HTTP actuel, matrice exhaustive, décisions d'architecture et gate de sizing.

Version Cargo

Conformément à VER-ID-009, la prerelease non-fix synchronise le signal technique :

0.2.0 -> 0.2.1-pre.1

Aucune crate, source Rust ou dépendance n'est ajoutée dans cette tranche.

Résultats principaux

  • index HTTP Solana courant audité : 52 méthodes ;
  • navigation Deprecated officielle : 14 méthodes historiques ;
  • changelog Agave : endpoints RPC v1 obsolete/deprecated retirés en v2 ; les 14 pages sont donc conservées dans la matrice comme Deprecated / runtime Removed, pas comme wrappers callables ;
  • aucune méthode HTTP courante marquée unstable/experimental trouvée dans l'audit du 2026-08-17 ; les marqueurs Unstable trouvés concernent WebSocket/PubSub ;
  • getBlock et getTransaction sont des méthodes courantes stables mais leur deuxième paramètre legacy sous forme de bare encoding string est explicitement deprecated ;
  • bot3 contient exactement les 52 noms courants, tous TypedAdapter, sans manque ni extra ; il n'intègre pas les 14 Deprecated au registre HTTP ;
  • bot3 doit être refondu pour supprimer Transport -> Config, Transport -> ks-lib et tracing direct.

Gate de sizing

Réponse pour le périmètre monolithique du prompt 006 :

NON

Le scope est scindé immédiatement, sans masquer aucune méthode :

0.2.1  foundation + registry exhaustif + pool/resilience/config + 4 canaris
0.2.2  Accounts + Tokens
0.2.3  Transactions
0.2.4  Blocks
0.2.5  Cluster
0.2.6  Economics + compliance finale HTTP

Wallet est décalé à 0.2.7, Wallet Desk à 0.2.8, puis les releases suivantes sont renumérotées.

Réponse pour la 0.2.1 réduite définie par le plan 008 :

OUI, raisonnablement clôturable dans la session.

Architecture décidée

  • settings runtime publics possédés par Transport, utilisant notamment Duration;
  • provider/cluster/role/request kind sous descriptors ouverts/newtypes ;
  • URL encapsulée avec Debug redacted ;
  • descriptor central séparant statut documentaire, statut runtime, statut de forme de requête, operation kind et retry class ;
  • pool logique : priorité globale puis round-robin/fallback, avec endpoints disabled exclus ;
  • RPS/burst/concurrence/cooldown par endpoint/rôle ;
  • retry transport borné seulement pour opérations retry-safe ; sendTransaction/requestAirdrop ne sont jamais resend automatiquement après dispatch ambigu ;
  • erreurs via l'unique ksp_core_lib::Error ;
  • réponses Transport/wire, aucun modèle Store/Program/canonical ;
  • Config standard IDs candidats cfg.std.transport / schema.std.transport et adapter Config -> Transport ;
  • aucune nouvelle variable .env.example dans pre.001.

Dépendances auditées

reqwest courant observé : 0.13.4; Tokio courant observé : 1.53.1. Le workspace possède déjà serde, serde_json et tokio ^1.53. reqwest sera ajouté seulement à pre.002 après vérification exacte de ses features. base64/bs58 sont différés jusqu'au premier besoin concret.

Fichiers ajoutés

docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
deltas/0.2.1/pre.001.md

Fichiers modifiés

Cargo.toml
ROADMAP.md
docs/000-README.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
prompts/006-V0_2_1_START_PROMPT.md

Fichiers supprimés

Aucun.

Validations exécutées

  • relecture des sources internes obligatoires et des contrats publics Core/Logging/Config ;
  • inspection du workspace stable fourni ;
  • inspection du transport/config bot3 fourni ;
  • comparaison automatisée locale des 52 noms bot3 avec les 52 noms de l'index officiel audité : missing = [], extra = [] ;
  • consultation de la documentation officielle Solana HTTP et Deprecated ;
  • consultation de JSON-RPC 2.0 ;
  • consultation du changelog Agave pour le statut runtime des endpoints deprecated ; aucun POST JSON-RPC live vers un provider na été exécuté, les éventuelles divergences provider restent donc à documenter séparément ;
  • vérification des versions actuelles candidates reqwest/tokio ;
  • vérification de l'absence de .git dans l'archive KSP.

Validations non exécutées

Le sandbox ne contient pas le binaire cargo (cargo: command not found). Les commandes suivantes n'ont donc pas été exécutées ici et doivent être rejouées sur le checkout de développement avant commit :

cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test --workspace

Aucun cargo tree n'est pertinent avant ajout de la crate/dépendance ; les audits cargo tree -p ksp-onchain-transport-lib ... deviennent obligatoires dès pre.002.

L'archive source ne contient pas .git; le commit attendu après application/validation suit VER-GIT-001 :

v0.2.1-pre.001

Questions ouvertes

Aucune question bloquante pour ouvrir pre.002. Les détails de nommage Rust peuvent encore être ajustés si une contrainte concrète apparaît, sans modifier l'ownership et les invariants fixés par le plan.

Suite

0.2.1-pre.002 : créer la crate, fixer les settings/validation, JSON-RPC, descriptors/status, erreurs et base Logging sur le périmètre réduit.