v0.2.6-rel.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/005-DEPENDENCY_GRAPH.md -->
|
||||
<!-- version: 12 -->
|
||||
<!-- version: 13 -->
|
||||
|
||||
# Graphe de dépendances KSP
|
||||
|
||||
@@ -33,7 +33,7 @@ Les applications/jobs/workers/scenarios composent les implementations concrètes
|
||||
|
||||
Workers continus et jobs bornés gardent des lifecycle APIs séparées.
|
||||
|
||||
# Fondations N1
|
||||
## Fondations N1
|
||||
|
||||
```text
|
||||
ksp-core-lib
|
||||
@@ -50,7 +50,7 @@ ksp-config-lib
|
||||
|
||||
`ksp-config-lib` est l'unique propriétaire des documents Config, `.env` et variables KSP/KSPB.
|
||||
|
||||
# Transport on-chain
|
||||
## Transport on-chain
|
||||
|
||||
```text
|
||||
ksp-onchain-transport-lib
|
||||
@@ -83,7 +83,7 @@ ksp-onchain-transport-lib
|
||||
|
||||
Cette direction est analogue à Config -> Logging : Config exprime/adapte la configuration, le composant reste propriétaire de ses contrats runtime.
|
||||
|
||||
## HTTP
|
||||
### HTTP
|
||||
|
||||
```text
|
||||
HttpEndpointConfig
|
||||
@@ -96,7 +96,7 @@ JSON-RPC read/write methods
|
||||
|
||||
Le pool HTTP sélectionne des endpoints/clients logiques selon rôles/capabilities/priorités/limites.
|
||||
|
||||
## WebSocket
|
||||
### WebSocket
|
||||
|
||||
```text
|
||||
WsEndpoint
|
||||
@@ -110,11 +110,11 @@ Plusieurs sessions sur une même URL sont autorisées. Un scheduler/pool automat
|
||||
|
||||
Helius LaserStream WebSocket étend le même moteur/session ; il ne duplique pas le client standard.
|
||||
|
||||
## Yellowstone
|
||||
### Yellowstone
|
||||
|
||||
Yellowstone gRPC est un backend standard/provider-neutral. Les adapters/capabilities Helius/Triton/ERPC/Chainstack/Shyft peuvent venir plus tard sans redéfinir le contrat générique.
|
||||
|
||||
# Transport off-chain
|
||||
## Transport off-chain
|
||||
|
||||
```text
|
||||
ksp-offchain-transport-lib
|
||||
@@ -127,7 +127,7 @@ Aucune `ksp-offchain-transport-api` globale n'est prévue.
|
||||
|
||||
La première surface est un reader de prix ; metadata HTTP/IPFS/Arweave et autres besoins sont ajoutés lorsqu'ils deviennent concrets.
|
||||
|
||||
# Wallet
|
||||
## Wallet
|
||||
|
||||
```text
|
||||
ksp-wallet-lib
|
||||
@@ -159,7 +159,7 @@ Le Wallet stocke/ouvre/signe. Il ne décide pas si une dépense est autorisée.
|
||||
|
||||
`WalletPolicy` historique migre conceptuellement vers execution policy, pas vers `ksp-wallet-lib`.
|
||||
|
||||
# Interface / wire
|
||||
## Interface / wire
|
||||
|
||||
```text
|
||||
ksp-interface-lib
|
||||
@@ -182,7 +182,7 @@ ksp-interface-lib -X-> Store
|
||||
ksp-interface-lib -X-> Wallet
|
||||
```
|
||||
|
||||
# Program
|
||||
## Program
|
||||
|
||||
```text
|
||||
ksp-program-api
|
||||
@@ -206,7 +206,7 @@ ksp-program-<name>-lib
|
||||
|
||||
Elle n'a pas besoin de dépendre de `ksp-program-lib`.
|
||||
|
||||
# Execution / Policy
|
||||
## Execution / Policy
|
||||
|
||||
```text
|
||||
ksp-execution-policy-api
|
||||
@@ -229,7 +229,7 @@ ksp-execution-lib -X-> ksp-program-lib
|
||||
|
||||
Une petite policy spécifique peut vivre dans une crate scenario/orchestrateur. Une ou plusieurs bibliothèques de policies communes ne sont créées qu'après démonstration d'une réutilisation réelle.
|
||||
|
||||
# Data plane durable
|
||||
## Data plane durable
|
||||
|
||||
```text
|
||||
D1 RAW
|
||||
@@ -238,7 +238,7 @@ D1 RAW
|
||||
-> D4 SPECIALIZED
|
||||
```
|
||||
|
||||
## RAW
|
||||
### RAW
|
||||
|
||||
```text
|
||||
transport model
|
||||
@@ -253,7 +253,7 @@ ksp-store-api
|
||||
ksp-store-lib
|
||||
```
|
||||
|
||||
## CORE
|
||||
### CORE
|
||||
|
||||
```text
|
||||
D1 RAW
|
||||
@@ -275,7 +275,7 @@ RAW -> CORE -X-> ksp-program-lib
|
||||
RAW -> CORE -X-> ksp-materializer-api
|
||||
```
|
||||
|
||||
## DECODE
|
||||
### DECODE
|
||||
|
||||
```text
|
||||
D2 CORE
|
||||
@@ -293,7 +293,7 @@ ksp-materializer-api implementation
|
||||
D3 DECODE / generic journal
|
||||
```
|
||||
|
||||
## SPECIALIZED
|
||||
### SPECIALIZED
|
||||
|
||||
```text
|
||||
D3 DECODE
|
||||
@@ -305,7 +305,7 @@ specialized projector/materializer
|
||||
D4 SPECIALIZED
|
||||
```
|
||||
|
||||
# Materialization
|
||||
## Materialization
|
||||
|
||||
```text
|
||||
ksp-materializer-api
|
||||
@@ -319,7 +319,7 @@ ksp-materializer-lib
|
||||
|
||||
Program/Materializer ne dépendent pas du Store backend.
|
||||
|
||||
# Store
|
||||
## Store
|
||||
|
||||
```text
|
||||
ksp-store-api
|
||||
@@ -341,7 +341,7 @@ ksp-store-lib -X-> transport/program/materializer
|
||||
|
||||
La première release Store (`0.3.1`) est RAW-only ; les contrats CORE/DECODE/SPECIALIZED sont ajoutés avec leurs couches.
|
||||
|
||||
# Jobs
|
||||
## Jobs
|
||||
|
||||
```text
|
||||
ksp-job-api
|
||||
@@ -361,7 +361,7 @@ ksp-job-backfill
|
||||
|
||||
Il remplit RAW et ne décode rien.
|
||||
|
||||
# Workers
|
||||
## Workers
|
||||
|
||||
```text
|
||||
ksp-worker-api
|
||||
@@ -376,9 +376,9 @@ RAW worker et CORE worker sont introduits à la fin de leur couche respective, l
|
||||
|
||||
Les workers DECODE/SPECIALIZED sont introduits avec les groupes Program concernés plutôt que tous anticipés en bloc.
|
||||
|
||||
# Apps
|
||||
## Apps
|
||||
|
||||
## Wallet Desk
|
||||
### Wallet Desk
|
||||
|
||||
```text
|
||||
ksp-app-wallet-desk
|
||||
@@ -390,7 +390,7 @@ ksp-app-wallet-desk
|
||||
|
||||
L'app compose ; elle ne déplace pas Config/Wallet/Transport dans Tauri. Les handles `WalletView`/`WalletOwner` restent côté Rust, et le frontend ne reçoit que des DTOs sûrs. Config fournit la racine/profil Wallet et le profil Transport. Les passwords Wallet ne deviennent jamais des champs des documents JSON Config ; ils peuvent être saisis éphémèrement frontend -> Rust ou provenir plus tard de secrets process/`.env` `KSP_SECRET_WALLET_PASS_*` possédés exclusivement par Config. Le secret Solana ne devient jamais une valeur Config ni un DTO frontend.
|
||||
|
||||
## Price Desk
|
||||
### Price Desk
|
||||
|
||||
```text
|
||||
price desk
|
||||
@@ -399,7 +399,7 @@ price desk
|
||||
-> ksp-logging-lib
|
||||
```
|
||||
|
||||
## Backfill app
|
||||
### Backfill app
|
||||
|
||||
```text
|
||||
backfill app
|
||||
@@ -409,7 +409,7 @@ backfill app
|
||||
-> ksp-logging-lib
|
||||
```
|
||||
|
||||
## Market Desk
|
||||
### Market Desk
|
||||
|
||||
```text
|
||||
ksp-app-market-desk
|
||||
@@ -420,7 +420,7 @@ ksp-app-market-desk
|
||||
|
||||
Elle consomme les projections SPECIALIZED normalisées ; elle ne dépend pas directement des bibliothèques protocole externes.
|
||||
|
||||
# Scenarios
|
||||
## Scenarios
|
||||
|
||||
```text
|
||||
ksp-scenario-<domain>-lib
|
||||
@@ -437,7 +437,7 @@ Une policy Devnet petite et spécifique peut être implémentée dans la crate s
|
||||
|
||||
L'app demo correspondante reste un adapter UI mince.
|
||||
|
||||
# Progression verticale Program
|
||||
## Progression verticale Program
|
||||
|
||||
À partir de DECODE :
|
||||
|
||||
@@ -454,7 +454,7 @@ wire
|
||||
|
||||
Les satellites nécessaires restent dans le même groupe protocolaire.
|
||||
|
||||
# Contrôle des cycles
|
||||
## Contrôle des cycles
|
||||
|
||||
Le sens général reste descendant :
|
||||
|
||||
@@ -476,7 +476,7 @@ job-api
|
||||
|
||||
Les applications/orchestrateurs réalisent les compositions explicites ; aucune boucle inverse ne doit être créée pour éviter une conversion au bon niveau.
|
||||
|
||||
# Dépendances non retenues actuellement
|
||||
## Dépendances non retenues actuellement
|
||||
|
||||
```text
|
||||
ksp-api-lib
|
||||
|
||||
Reference in New Issue
Block a user