v0.3.12-pre.001
This commit is contained in:
270
deltas/0.3.12/pre.001.md
Normal file
270
deltas/0.3.12/pre.001.md
Normal file
@@ -0,0 +1,270 @@
|
||||
<!-- 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 <= 15–20 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 15–20 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
|
||||
```
|
||||
Reference in New Issue
Block a user