v0.3.10-pre.002

This commit is contained in:
2026-09-06 09:58:31 +02:00
parent 6b434750c5
commit d0da907c00
17 changed files with 1453 additions and 29 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan v0.3.10 — RAW Transaction commune + Worker dingestion multi-source
@@ -19,7 +19,7 @@ sources live
-> matériau transaction complet ou discovery/hydration
-> canonicalisation RAW v1 unique
-> RawTransaction + RawTransactionObservation
-> ksp-store-lib
-> persistence par le producteur concret via ksp-store-lib
```
Le Worker et le Job Backfill sont deux producteurs autonomes du même modèle durable. Aucun appel, lifecycle, orchestration, checkpoint ou contrat fonctionnel ne doit relier les deux.
@@ -161,7 +161,7 @@ Les décisions de fermeture du gate sont :
RAW v1 reste unique ; aucun RAW v2.
mainnet reste lidentité KSP canonique ; mainnet-beta reste alias externe/legacy.
ksp-raw-transaction-lib devient lunique owner de la canonicalisation RAW v1.
La common crate dépend de Store façade, jamais de Transport/Config/Job/Worker.
La common crate dépend des modèles `ksp-store-api` conformément à `DEP-PIPE-006`, jamais de la façade runtime Store ni de Transport/Config/Job/Worker.
RawObservationKey reste producer-owned comme le contrat Store lindique déjà.
Le Backfill conserve son observation-key Job-owned et ses métadonnées de campagne.
Le Worker possède son runtime concret, ses source IDs, ses observation keys et sa continuité de run.
@@ -290,7 +290,7 @@ Cible retenue :
```text
ksp-raw-transaction-lib
-> ksp-core-lib
-> ksp-store-lib default-features=false
-> ksp-store-api
-> serde_json
-> sha2
```
@@ -298,13 +298,14 @@ ksp-raw-transaction-lib
Justification :
- `ksp-core-lib` est nécessaire aux codes/erreurs KSP propres à la canonicalisation ;
- `ksp-store-lib` fournit les reexports approuvés de `RawTransaction`, `RawPayload`, provenance et primitives ;
- `ksp-store-api` fournit directement les modèles canoniques `RawTransaction`, `RawPayload`, provenance et primitives, conformément à `DEP-PIPE-006` ;
- `serde_json` reste requis par RAW v1 pour canonicaliser `meta` et préserver les états wire ;
- `sha2` reste requis pour le digest canonique exact.
Interdits :
```text
ksp-store-lib
ksp-onchain-transport-lib
ksp-config-lib
ksp-job-api
@@ -979,33 +980,29 @@ Une preuve sur `transactions` ne valide pas automatiquement `blocks`.
## 16. Graphe de dépendances cible
```text
ksp-core-lib
^
|
ksp-store-api <- ksp-store-lib <- ksp-raw-transaction-lib
^ ^
| |
| +-------+------------------+
| | |
| ksp-job-backfill-lib ksp-worker-raw-transaction-ingest-lib
| ^ ^
| | |
+----------+--------------------------+
|
ksp-onchain-transport-lib
ksp-raw-transaction-lib -> ksp-core-lib
ksp-raw-transaction-lib -> ksp-store-api -> ksp-core-lib
ksp-worker-api --------------------------> ksp-worker-raw-transaction-ingest-lib
ksp-logging-lib -------------------------> ksp-worker-raw-transaction-ingest-lib
ksp-job-backfill-lib -> ksp-raw-transaction-lib
ksp-job-backfill-lib -> ksp-store-lib -> ksp-store-api
ksp-job-backfill-lib -> ksp-onchain-transport-lib
ksp-job-backfill-lib -> ksp-job-api
ksp-worker-raw-transaction-ingest-lib -> ksp-raw-transaction-lib
ksp-worker-raw-transaction-ingest-lib -> ksp-store-lib -> ksp-store-api
ksp-worker-raw-transaction-ingest-lib -> ksp-onchain-transport-lib
ksp-worker-raw-transaction-ingest-lib -> ksp-worker-api
ksp-worker-raw-transaction-ingest-lib -> ksp-logging-lib
```
Lecture des flèches du schéma : les consumers dépendent des lower layers ; aucun lower layer ne dépend dun consumer. Le dessin ne crée pas dedge `ksp-store-lib -> common` : cest bien `common -> ksp-store-lib`.
Lecture des flèches du schéma : les consumers dépendent des lower layers ; aucun lower layer ne dépend dun consumer. `ksp-raw-transaction-lib` dépend directement de `ksp-store-api` comme pipeline RAW réutilisable ; `ksp-store-lib` reste la façade runtime utilisée séparément par les producteurs concrets pour la persistence.
Edges exacts attendus :
```text
ksp-raw-transaction-lib
-> ksp-core-lib
-> ksp-store-lib default-features=false
-> ksp-store-api
-> serde_json
-> sha2
@@ -1037,7 +1034,11 @@ Présente tranche : archive/règles, common extraction, capability matrix, fraî
### `pre.002` — common RAW foundation
Créer `ksp-raw-transaction-lib`, types source-neutral minimaux, signature parser, canonical JSON, SHA-256 et golden RAW v1 exact. Aucun Worker.
**Statut : réalisé.**
`ksp-raw-transaction-lib` matérialise les types source-neutral minimaux, le parser Base58 strict vers 64 octets, la canonicalisation JSON RAW v1, SHA-256 et lassemblage transaction + observation producer-owned. Le golden `112` bytes / `220792...a7c3` est verrouillé par test. Aucun Worker ni migration Backfill nest ouvert.
La matérialisation a révélé une correction normative du sizing `pre.001` : `DEP-PIPE-006` impose `ksp-store-api` au pipeline RAW et interdit `ksp-store-lib`. Le graphe et la section 5.4 sont donc corrigés dans cette tranche sans changer le contrat fonctionnel RAW.
### `pre.003` — migration Backfill vers common