3.3 KiB
3.3 KiB
Prompt de démarrage KSP 0.1.x
Status : Brouillon vivant — ne pas utiliser comme prompt final tant que 0.0.3 n'est pas clôturée.
Mission provisoire
Commencer le développement fonctionnel KSP sur les fondations N1 nécessaires au reste du projet, principalement :
ksp-core-lib;ksp-logging-lib;ksp-config-lib;ksp-app-config-desk.
Décisions déjà acquises
- Le développement fonctionnel commence en
0.1.x. - Chaque delta est commité à partir de cette série.
- Les bibliothèques d'implémentation réutilisables utilisent
ksp-<role>-lib. - Les crates de contrats publics extensibles utilisent
ksp-<domain>-api, sans suffixe-lib. - Une crate
*-apin'est pas une implémentation directement destinée à être appelée par un exécutable. - Éviter un
ksp-api-libmonolithique ; les APIs restent séparées par domaine. ksp-program-api,ksp-materializer-apietksp-store-apisont les premiers contrats d'extension prévus.- Les workers et jobs possèdent des APIs communes séparées :
ksp-worker-apietksp-job-api. - Les notifications de données restent indépendantes du worker/job producteur ;
ksp-store-apiest le propriétaire candidat des notifications de données persistées. ksp-store-libcontient PostgreSQL comme implémentation de référence.- Les applications restent des interfaces/compositions au-dessus des composants KSP.
- Les exécutables ne dépendent pas directement de crates Solana/protocoles externes.
ksp-core-lib,ksp-config-lib,ksp-logging-libetksp-interface-libsont des fondations N1.ksp-core-libdoit posséder les Program IDs fondamentaux et un type d'erreur public commun.- Les règles fines de nommage des items publics/arborescence seront définies à partir des premières APIs réelles.
- Les prereleases intermédiaires sont planifiées comme des tranches bornées d'environ 15–20 minutes maximum de travail effectif estimé.
- Si le plan complet de
0.1.xrisque de saturer une seule session, il doit être réparti sur plusieurs sessions et/ou versions avant développement.
Objectifs provisoires
- Stabiliser le premier contrat utile de
ksp-core-lib. - Définir le modèle commun
Errorsans rendre N1 dépendant des domaines supérieurs. - Intégrer les Program IDs fondamentaux dans
ksp-core-lib. - Créer
ksp-logging-lib. - Créer
ksp-config-lib. - Créer
ksp-app-config-deskcomme interface de manipulation de la configuration. - Ajouter les règles API/naming/arborescence rendues nécessaires par les premiers vrais contrats.
- Préparer uniquement les contrats minimaux requis pour
0.2.xlorsque leur définition précoce est utile.
Hors périmètre provisoire
- implémentation réelle de
ksp-program-api/ksp-program-libau-delà des contrats strictement nécessaires ; - implémentation complète de
ksp-interface-lib; - wallet ;
- transport on-chain ;
- storage/materializers ;
- workers/jobs ;
- protocoles trading ;
- Trading Intelligence.
Validations attendues
Au minimum, lorsque du code Rust est introduit :
cargo fmt --all
cargo check --workspace
cargo test --workspace
cargo clippy --workspace --all-targets
Aucune validation non exécutée ne doit être déclarée réussie.