Files
2026-09-08 23:44:19 +02:00

271 lines
8.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: deltas/0.3.12/pre.001.md -->
<!-- version: 1 -->
# Delta 0.3.12-pre.001 — audit Yellowstone, hydration HTTP et continuité Worker
## Base
```text
archive : khadhroony-solana-project-v0.3.11.zip
SHA-256 : a6bb59935650a7f48630d12ef80fbd1a44a84819dd129b085ff7f467369535fc
ZIP bytes : 8125100
ZIP entries : 1950
unzip -t : PASS
workspace members : 21
workspace.package.version base : 0.3.11
stable delta : deltas/0.3.11/rel.001.md
```
Le ZIP a une racine unique et a été contrôlé sans entrée absolue, path traversal, symlink, `.git/`, `target/`, `node_modules/`, `Cargo.lock` ou `.env`.
Préconditions du prompt `031` confirmées :
```text
Worker RawTransaction présent et documenté
aucune source réseau productive Worker stable
Common RAW présente
Transport Yellowstone générique présent
Store facade présente
Backfill indépendant du Worker
```
## Type de livraison
```text
ksp-general-0.3.12-pre.001.zip
```
Le type `general` est requis par le bump `Cargo.toml` de toute prerelease non-fix (`VER-ID-009`). L'archive d'échange contient uniquement les fichiers ajoutés/modifiés par cette tranche et son delta.
## Baseline exécutée avant modification
```text
python3 scripts/audit_rust_workspace_rules.py
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
Markdown table audit: clean (340 table(s), 798 file(s))
```
## Objectif
Exécuter le gate `pre.001` de `prompts/031-V0_3_12_START_PROMPT.md` : audit complet de la stable et des règles, inventaire Worker/Transport/Common RAW/Store/Config, fraîcheur Yellowstone/Solana/providers/crates, matrice des signaux, architecture d'injection, hydration/provenance, continuité/frontier, threat model, smokes, graphe Cargo et sizing, sans implémentation réseau productive.
## Audit des règles
Aucune contradiction normative active n'a été trouvée dans les règles courantes. Aucun fichier de règles n'est modifié.
Contraintes fermées :
```text
Worker/Job séparés
Config seul propriétaire des endpoints/secrets/composition
Store facade seulement
pas de public enqueue
pas de second moteur Yellowstone
nouvelle prerelease => Cargo 0.3.12-pre.1
tranches <= 1520 minutes
```
## Décisions fermées
### Edge et injection
```text
seul nouvel edge autorisé : Worker -> ksp-onchain-transport-lib
Worker -> Config reste interdit
Worker -> Backfill reste interdit
caller supérieur construit channel/request Yellowstone + pool/role HTTP
RawTransactionIngestYellowstoneSource + RawTransactionIngestRuntimeResources retenus
start stable source-neutral conservé
start_with_runtime_resources(settings, Arc<Store>, resources) retenu
```
### Matrice Yellowstone
```text
Transaction -> candidat hydration
TransactionStatus -> candidat hydration
Block transactions-> candidats hydration
BlockMeta -> continuity/health seulement
Slot -> continuity/health seulement
from_slot -> reconnect/replay Transport, pas checkpoint historique
ReplayInfo -> borne de rétention seulement
```
### RAW/hydration
```text
RAW-direct Yellowstone non prouvé et interdit en P0
get_transaction_observed = hydration P0
Base64 + confirmed/finalized + maxSupportedTransactionVersion=0
processed exclu du chemin hydraté P0
get_block_observed non requis au P0
```
### Provenance
Le modèle Store existant est conservé sans migration. La route multi-hop est représentée par des codes sûrs composites `yellowstone_http` contenant les identités logiques Yellowstone et le winner HTTP, toutes bornées par `RawProvenanceCode`. Aucune URL/token/header n'est conservé.
### Continuité
```text
Transport high-watermark != Worker processing frontier
processing frontier != blockchain completeness
reconnect != replay != repair
replay attempt != preuve de couverture
continuity gap prouvé par ReplayInfo => fault sûr
aucun Backfill/repair automatique en 0.3.12
frontier run-local, non persistante
```
## Fraîcheur externe du 8 septembre 2026
```text
yellowstone-grpc-proto latest = 12.7.0 (2026-08-29)
workspace = ^12.7 => aucun bump requis
Solana getTransaction fournit blockTime/meta/slot/transaction/version
Solana getBlock reste disponible mais non requis au P0
OrbitFlare documente Devnet gRPC et free Devnet-only
Helius LaserStream documente Yellowstone compatibility et replay provider-specific ~216k slots/~24h
```
Le changelog Yellowstone du 22 juillet 2026 corrige un défaut `from_slot` + `blocks` pouvant reprendre au live head sans rejouer les Blocks. KSP ne considérera donc jamais l'acceptation de `from_slot` comme une preuve de continuité.
## Smokes
Smokes Transport existants :
```text
OrbitFlare Devnet : opt-in, token opérateur
PublicNode Mainnet/Testnet : opt-in, tokens opérateur
```
Aucun secret live n'est fourni dans l'archive. Aucun smoke Worker n'est exécuté en `pre.001` et aucun faux PASS live n'est déclaré.
## Graphe Cargo cible
Après `pre.002` :
```text
ksp-worker-raw-transaction-ingest-lib
-> ksp-core-lib
-> ksp-logging-lib
-> ksp-onchain-transport-lib
-> ksp-raw-transaction-lib
-> ksp-store-lib default-features=false
-> ksp-worker-api
-> sha2
-> tokio macros,rt,sync,time
```
Pas d'edge Worker direct vers Config, Backfill, Store backend, Tonic, Reqwest, Yellowstone proto ou SDK provider.
## Sizing recalibré
```text
pre.002 Transport resource/source contract
pre.003 Transaction + TransactionStatus adapters
pre.004 HTTP hydration + provenance
pre.005 Block + BlockMeta + Slot
pre.006 source task + supervisor/coalescence
pre.007 processing frontier
pre.008 reconnect/from_slot/ReplayInfo
pre.009 race/retry/backpressure hardening
pre.010 cross-layer completeness/security
pre.011 technical/live gate
pre.012 documentation reconciliation
pre.013 publication preparation
rel.001
```
Décision : maintenir `0.3.12`. Le split frontier/replay évite une tranche de continuité trop large ; toute tranche dépassant réellement 1520 minutes sera encore scindée avant exécution.
## Fichiers ajoutés
```text
docs/plans/033-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY_PLAN.md
docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md
deltas/0.3.12/pre.001.md
```
## Fichiers modifiés
```text
Cargo.toml
```
Versions :
```text
Cargo.toml : 518 -> 519
workspace.package.version : 0.3.11 -> 0.3.12-pre.1
```
Le bump Cargo est requis par `VER-ID-009` pour une prerelease non-fix, même si la tranche ne modifie aucun Rust.
## Fichiers supprimés
```text
aucun
```
## Validation après modification
Audits statiques réellement exécutés sur le delta complet :
```text
python3 scripts/audit_rust_workspace_rules.py
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
Markdown table audit: clean (340 table(s), 801 file(s))
```
Résultat : PASS.
## Validations non exécutées localement
`cargo` n'est pas installé dans l'environnement d'assemblage. Ne sont donc pas déclarés PASS localement :
```text
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
cargo tree --duplicates
```
Le journal opérateur fourni avec la stable montre un gate Cargo complet vert sur `0.3.11`; cette preuve reste distincte du delta `0.3.12-pre.001`.
## Gate opérateur demandé
Après application :
```bash
cargo fmt --all -- --check
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-worker-raw-transaction-ingest-lib
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
```
## Questions reportées
```text
RAW-direct Yellowstone après preuve byte-exact
retry Worker borné spécifique au null getTransaction
multi-source redundancy/failover
hot listener reconfiguration complète
repair automatique 0.3.14
checkpoint durable inter-process
provider-specific capabilities permanentes
```