v0.3.9-pre.006-fix.001
This commit is contained in:
135
deltas/0.3.9/pre.006-fix.001.md
Normal file
135
deltas/0.3.9/pre.006-fix.001.md
Normal file
@@ -0,0 +1,135 @@
|
||||
<!-- file: deltas/0.3.9/pre.006-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.9-pre.006-fix.001`
|
||||
|
||||
## 1. Objet
|
||||
|
||||
Corriger la synthèse architecturale RAW de `pre.006` sans modifier le runtime.
|
||||
|
||||
Le document `docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md` était fonctionnellement riche mais conservait la forme de deux audits chronologiques A/B auxquels une synthèse avait été ajoutée. Cette structure masquait aussi la séparation stricte attendue entre les deux producteurs de `RawTransaction`.
|
||||
|
||||
Le correctif réécrit intégralement l'owner comme une synthèse unique centrée sur Store / `RawTransaction`.
|
||||
|
||||
## 2. Architecture corrigée
|
||||
|
||||
Le modèle durable devient explicitement :
|
||||
|
||||
```text
|
||||
sources/protocoles/providers
|
||||
-> capabilities d'acquisition
|
||||
-> Job Backfill OU Worker Ingest selon l'intention
|
||||
-> normalisation RAW source-neutral
|
||||
-> Store
|
||||
-> RawTransaction + observations/provenance
|
||||
```
|
||||
|
||||
Les deux producteurs sont indépendants :
|
||||
|
||||
```text
|
||||
Job Backfill
|
||||
= historique demandé
|
||||
= paramètres métier explicites
|
||||
= campagne bornée et terminable
|
||||
|
||||
Worker Raw Transaction Ingest
|
||||
= acquisition continue depuis start
|
||||
= aucun paramètre métier de campagne au start
|
||||
= stop pour terminer normalement
|
||||
```
|
||||
|
||||
Aucun edge, appel, délégation, checkpoint partagé ou coordination lifecycle `Job <-> Worker` n'est admis.
|
||||
|
||||
## 3. Protocoles et capabilities
|
||||
|
||||
Le correctif supprime toute lecture implicite :
|
||||
|
||||
```text
|
||||
HTTP = Backfill
|
||||
WS/gRPC = Worker
|
||||
```
|
||||
|
||||
La règle correcte est :
|
||||
|
||||
```text
|
||||
HTTP / WS / gRPC / archive / EARLY
|
||||
= moyens d'acquisition
|
||||
= utilisables par le producer dont l'intention correspond
|
||||
```
|
||||
|
||||
Exemples :
|
||||
|
||||
- HTTP `getTransaction` sert au Worker pour hydrater un signal live et au Job pour hydrater une signature historique ;
|
||||
- HTTP `getBlock` peut servir au Worker en live polling/repair de continuité et au Job pour une plage historique ;
|
||||
- Yellowstone `from_slot` peut réparer la continuité d'un Worker depuis son frontier actif ou alimenter un Job de replay historique borné ;
|
||||
- une API archive/provider history appartient au Job lorsqu'elle répond à une campagne historique.
|
||||
|
||||
## 4. Frontière de continuité Worker
|
||||
|
||||
Le Worker peut réparer uniquement les pertes de continuité liées à son acquisition active :
|
||||
|
||||
```text
|
||||
frontier live
|
||||
-> gap détecté
|
||||
-> replay/hydration/block recovery
|
||||
-> frontier restauré
|
||||
-> live continue
|
||||
```
|
||||
|
||||
Il ne reçoit jamais une requête arbitraire « remonte avant telle date/slot/signature ». Cette responsabilité appartient au Job Backfill.
|
||||
|
||||
## 5. Normalisation commune
|
||||
|
||||
`ksp-raw-transaction-lib` reste retenu comme lower-layer source-neutral commun afin d'éviter la duplication du canonicalizer RAW v1.
|
||||
|
||||
Cette dépendance inférieure ne crée aucune relation fonctionnelle entre Job et Worker :
|
||||
|
||||
```text
|
||||
Job ------> raw common ------> Store
|
||||
Worker ---> raw common ------> Store
|
||||
|
||||
aucun edge Job <-> Worker
|
||||
```
|
||||
|
||||
## 6. Données d'audit conservées
|
||||
|
||||
La réécriture conserve et réorganise :
|
||||
|
||||
- la matrice exhaustive des méthodes standard HTTP/WS/Yellowstone ;
|
||||
- l'applicabilité Worker / Job par méthode ;
|
||||
- les providers et infrastructures connus ;
|
||||
- les réseaux ;
|
||||
- les prix/tiers datés au 4 septembre 2026 ;
|
||||
- les statuts `PROUVÉ`, `TESTABLE`, `NON PROUVÉ`, `BLOQUÉ TIER`, `À REVALIDER` ;
|
||||
- les sources EARLY/shreds ;
|
||||
- la stratégie de preuve Mainnet/Devnet/Testnet/local ;
|
||||
- les gaps Transport/Config ;
|
||||
- les handoffs `0.3.10` Worker et `0.3.12` Backfill.
|
||||
|
||||
## 7. Version
|
||||
|
||||
Correctif strictement documentaire. Conformément aux règles KSP applicables aux fixes documentaires :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.9-pre.6
|
||||
```
|
||||
|
||||
Aucun changement `Cargo.toml` n'est effectué.
|
||||
|
||||
## 8. Fichiers
|
||||
|
||||
Modifiés :
|
||||
|
||||
```text
|
||||
docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md
|
||||
docs/plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md
|
||||
docs/validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md
|
||||
```
|
||||
|
||||
Ajouté :
|
||||
|
||||
```text
|
||||
deltas/0.3.9/pre.006-fix.001.md
|
||||
```
|
||||
|
||||
Aucun fichier Rust, Config, Store, Transport, endpoint ou secret n'est modifié.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Plan v0.3.9 — Worker API générique + audit RAW Transaction
|
||||
|
||||
@@ -506,15 +506,18 @@ Après freeze fonctionnelle de `ksp-worker-api` en `pre.003`, l’audit RAW est
|
||||
docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md
|
||||
```
|
||||
|
||||
Ce document séparera :
|
||||
Après la synthèse `pre.006-fix.001`, ce document doit être lu comme une **architecture unique centrée sur Store / `RawTransaction`**, et non comme la juxtaposition chronologique des audits A/B. Il sépare :
|
||||
|
||||
```text
|
||||
partie durable : taxonomy capabilities/roles/combinations/convergence
|
||||
partie audit daté : disponibilité provider, quotas, replay, tiers et liens sources primaires
|
||||
handoff : gaps Transport/Config 0.3.10 et applicability Backfill 0.3.12
|
||||
centre durable : Store / RawTransaction / observations / provenance
|
||||
producteur 1 : Job Backfill historique, paramétré, borné et terminable
|
||||
producteur 2 : Worker Ingest continu, start/stop, sans requête métier historique
|
||||
capabilities : HTTP / WS / gRPC / archive / EARLY utilisables selon l'intention
|
||||
preuve datée : providers, réseaux, tiers, prix, replay et accès réellement prouvés
|
||||
handoffs : Worker 0.3.10 et Backfill 0.3.12, sans edge Job <-> Worker
|
||||
```
|
||||
|
||||
Ce choix évite de transformer le plan de release en registre provider tout en donnant à `0.3.10` et `0.3.12` une référence architecturale réauditable. L’index architecture ne sera synchronisé qu’au moment où ce document sera réellement créé, puis réconcilié dans le couloir documentaire final.
|
||||
Les protocoles n'appartiennent à aucun producteur. Une capability gRPC/WS peut servir au Job lorsqu'elle fournit un historique/replay borné ; HTTP peut servir au Worker pour hydration, live block polling ou repair de sa continuité active. L’index architecture ne sera synchronisé qu’au moment où ce document sera réellement créé, puis réconcilié dans le couloir documentaire final.
|
||||
|
||||
kbot3 ne sera alors utilisé que pour inventorier des comportements historiques. Aucun code, DTO, Config, URL, dependency ou version n’en sera repris.
|
||||
|
||||
@@ -595,7 +598,13 @@ Budget cible : **15-20 min**. `docs/architecture/011-RAW_TRANSACTION_ACQUISITION
|
||||
|
||||
**Statut : réalisé ; synthèse exhaustive des possibilités, y compris non prouvées/non testables actuellement, sans changement runtime.**
|
||||
|
||||
Budget cible : **15-20 min**. `docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md` ferme la matrice par familles de sources, providers, réseaux, prix/tier datés, temporalité, complétude, replay, destination Worker/Backfill et statut de preuve. La synthèse sépare explicitement possibilité connue, support KSP et preuve live afin qu'un tier payant ou un compte indisponible n'exclue jamais une branche de l'architecture. Le handoff `0.3.10` retient un Worker multi-source par capabilities, les adapters standard/Yellowstone/Helius déjà auditables, les hooks EARLY, la stratégie de gap repair et l'extraction de la canonicalisation dans `ksp-raw-transaction-lib`; `0.3.12` reçoit les stratégies block scan, replay Yellowstone, archives/provider history et Old Faithful. Aucun endpoint, secret ou client provider n'est ajouté ici.
|
||||
Budget cible : **15-20 min**. `docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md` ferme la matrice par familles de sources, providers, réseaux, prix/tier datés, temporalité, complétude, replay, destination Worker/Backfill et statut de preuve. La synthèse sépare explicitement possibilité connue, support KSP et preuve live afin qu'un tier payant ou un compte indisponible n'exclue jamais une branche de l'architecture. Le handoff distingue deux producteurs indépendants de Store : `0.3.10` reçoit le Worker live start/stop, sans requête historique métier, et les adaptations communes nécessaires ; `0.3.12` reçoit l'extension du Job Backfill historique paramétré. Les protocoles restent orthogonaux aux rôles : HTTP peut servir au Worker et WS/gRPC au Job lorsque leur sémantique le justifie. Aucun endpoint, secret ou client provider n'est ajouté ici.
|
||||
|
||||
#### `pre.006-fix.001` — synthèse Store-centrique et séparation stricte Worker / Backfill
|
||||
|
||||
**Statut : réalisé ; correctif documentaire uniquement.**
|
||||
|
||||
Réécriture complète de `docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md` pour supprimer l'effet « audit A + audit B + synthèse ajoutée ». Le document devient une référence architecturale unique centrée sur `RawTransaction` dans Store. Il fixe explicitement : Job Backfill = historique paramétré/borné ; Worker Ingest = acquisition continue start/stop sans paramètres métier historiques ; aucun edge, délégation ou coordination obligatoire entre les deux ; capabilities HTTP/WS/gRPC/archive classifiées par usage et non par producteur. Le replay/repair Worker est limité à la continuité de son acquisition active et ne devient jamais une campagne historique. Correctif strictement documentaire : `workspace.package.version` reste `0.3.9-pre.6`.
|
||||
|
||||
### `pre.007` — gate technique final
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 10 -->
|
||||
|
||||
# Validation v0.3.9 — Worker API + audit RAW Transaction
|
||||
|
||||
@@ -212,6 +212,19 @@ Aucun item ci-dessous n’est déclaré exécuté en `pre.001`.
|
||||
- [X] Applicability `0.3.12` Backfill indiquée par source/méthode : GSFA, block scan, explicit signatures, Yellowstone replay, provider history/archive et Old Faithful.
|
||||
- [X] `docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md` créé dès `pre.004` comme owner durable, à enrichir en `pre.005`/`pre.006`.
|
||||
|
||||
#### `pre.006-fix.001` — synthèse Store-centrique et rôles indépendants
|
||||
|
||||
- [X] `011-RAW_TRANSACTION_ACQUISITION.md` réécrit intégralement comme une synthèse unique ; les anciens blocs A/B ne structurent plus le document.
|
||||
- [X] Store / `RawTransaction` explicitement placé au centre ; observations/provenance restent autour du RAW durable.
|
||||
- [X] Job Backfill figé comme producteur historique paramétré, borné et terminable.
|
||||
- [X] Worker Raw Transaction Ingest figé comme producteur continu start/stop sans signature/program_id/plage/limit de campagne au démarrage.
|
||||
- [X] Aucun edge, délégation, coordination lifecycle ou checkpoint partagé Job <-> Worker.
|
||||
- [X] Protocoles classifiés par capability/usage : HTTP peut servir au Worker ; WS/gRPC/replay peuvent servir au Job si la campagne historique l'exige.
|
||||
- [X] Repair Worker borné à la continuité de son acquisition live ; aucune recherche historique arbitraire.
|
||||
- [X] `ksp-raw-transaction-lib` conservé uniquement comme lower-layer source-neutral commune ; il ne crée aucune collaboration Job/Worker.
|
||||
- [X] Matrices provider/réseau/prix/preuve et sources EARLY conservées dans la synthèse réorganisée.
|
||||
- [X] Correctif documentaire uniquement : `workspace.package.version` reste `0.3.9-pre.6`.
|
||||
|
||||
## 7. Couloirs de fermeture
|
||||
|
||||
### `pre.007` — gate technique final
|
||||
@@ -259,4 +272,4 @@ Après la synthèse multi-source `pre.006`, l'état courant est :
|
||||
workspace.package.version = 0.3.9-pre.6
|
||||
```
|
||||
|
||||
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Les correctifs de conformité/compilation portent successivement `0.3.9-pre.2.fix.1` puis `0.3.9-pre.2.fix.2` conformément à `VER-ID-007` et `VER-ID-010`. `pre.003` reprend ensuite la séquence prerelease normale avec `0.3.9-pre.3`; son gate opérateur est PASS et freeze Worker API. `pre.004` poursuit avec `0.3.9-pre.4` sans changement runtime, uniquement l'audit standard Solana/KSP et la création de l'owner durable d'acquisition. `pre.005` passe à `0.3.9-pre.5` et enrichit cet owner avec l'audit Helius/Yellowstone/providers/kbot3 sans modifier le runtime. `pre.006` passe à `0.3.9-pre.6` et ferme la synthèse exhaustive possibilités/support/preuve ainsi que les handoffs `0.3.10`/`0.3.12`, toujours sans changement runtime. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.
|
||||
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Les correctifs de conformité/compilation portent successivement `0.3.9-pre.2.fix.1` puis `0.3.9-pre.2.fix.2` conformément à `VER-ID-007` et `VER-ID-010`. `pre.003` reprend ensuite la séquence prerelease normale avec `0.3.9-pre.3`; son gate opérateur est PASS et freeze Worker API. `pre.004` poursuit avec `0.3.9-pre.4` sans changement runtime, uniquement l'audit standard Solana/KSP et la création de l'owner durable d'acquisition. `pre.005` passe à `0.3.9-pre.5` et enrichit cet owner avec l'audit Helius/Yellowstone/providers/kbot3 sans modifier le runtime. `pre.006` passe à `0.3.9-pre.6` et ferme la synthèse exhaustive possibilités/support/preuve ainsi que les handoffs `0.3.10`/`0.3.12`, toujours sans changement runtime. `pre.006-fix.001` réécrit ensuite l'owner d'architecture comme synthèse Store-centrique et corrige la séparation Worker live / Job historique sans modifier Cargo. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.
|
||||
|
||||
Reference in New Issue
Block a user