Files
khadhroony-solana-project/deltas/0.3.10/pre.001.md
2026-09-06 09:05:33 +02:00

8.5 KiB
Raw Blame History

Delta 0.3.10-pre.001 — audit/sizing RAW Transaction + Worker ingest

Base

archive : khadhroony-solana-project-v0.3.9.zip
SHA-256 : 41ef2589a11410aabfb329d387f0008e116006da60ada0802e5f72bc30d3466f
ZIP bytes : 7859118
ZIP entries : 1855
unzip -t : PASS
workspace members : 19
workspace.package.version base : 0.3.9

Le ZIP a été contrôlé sans path traversal/entrée absolue, symlink, .git/, target/, node_modules/, Cargo.lock, .env ou fichier de clé privée détecté.

Type de livraison

ksp-general-0.3.10-pre.001.zip

Le type general est obligatoire parce que Cargo.toml racine est synchronisé vers 0.3.10-pre.1 par VER-ID-009. Larchive déchange ne doit contenir que les fichiers ajoutés/modifiés et le delta, conformément à VER-ARCHIVE-004.

Baseline exécutée avant modification

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 (332 table(s), 750 file(s))

cargo nest pas installé dans lenvironnement dassemblage. Aucun gate Cargo local nest déclaré PASS. Le journal opérateur stable 0.3.9 reste une preuve externe distincte.

Objectif

Exécuter le gate douverture 0.3.10-pre.001 demandé par le prompt 029 : vérifier intégralement la base v0.3.9, auditer lextraction RAW commune et les capabilities live, réévaluer TR-B..TR-F, fixer les frontières Common/Worker/Transport/Config/Store, puis dimensionner les tranches suivantes sans commencer limplémentation lourde.

Mission exécutée

pre.001 reste une tranche de planification, conformément au prompt 029 :

lecture règles/architecture obligatoires
inventaire workspace/manifests/features
extraction RAW commune auditée
capability matrix Worker implementation-ready
TR-B..TR-F réévalués
fraîcheur Solana/Yellowstone/providers revalidée
runtime/source supervision décidés
continuité/gap repair décidés
snapshot concret décidé
Config/secrets boundary décidée
threat model et preuves définis
dependency graph cible fixé
prereleases redimensionnées

Aucune implémentation lourde des deux nouvelles crates nest commencée.

Décisions principales

Common RAW

crate : ksp-raw-transaction-lib
RAW format : ksp.solana.raw_transaction v1 inchangé
common deps : ksp-core-lib + ksp-store-lib(default-features=false) + serde_json + sha2
aucun Transport/Config/Job/Worker/runtime/backend
RawObservationKey reste producer-owned
Backfill conserve son observation key/job_id/scope_fingerprint/origin

Golden confirmé :

byte_len = 112
sha256 = 220792d2b15d262fda242cb220774ee9ddeffebf04dcfadabcf8ef76a9b1a7c3

Toute source full doit prouver une parité byte-for-byte avec RAW v1 avant persistence directe ; sinon elle reste discovery + hydration.

Worker concret

crate : ksp-worker-raw-transaction-ingest-lib
caller-owned Tokio runtime
Worker-owned source/supervisor tasks
bounded channels uniquement
multi-source simultané
Store idempotence comme vérité de convergence
observations distinctes conservées
content conflict terminal
repair borné au run frontier
reconnect != replay
aucun paramètre historique métier au start

Transport gaps

TR-B confirmé : get_block_observed
TR-C confirmé/scindé : common material + adapters Worker + Transport change only if DTO lacks fidelity
TR-D confirmé : provenance durable full-material + source runtime snapshot
TR-E confirmé : reuse from_slot/replay info, aucun second Yellowstone client
TR-F réservé : EARLY seulement si protocole/accès/rôle RAW prouvés

Config

aucun edge Worker -> Config
std.transport V3 actuel réutilisé
pas de nouveau document métier Worker imposé en 0.3.10
adaptation Config seulement si un manque Transport concret lexige
secrets restent Config-owned et redacted

Fraîcheur externe

Vérifié le 5 septembre 2026 :

yellowstone-grpc-proto latest = 12.7.0 (2026-08-29)
workspace stable = ^12.7 -> aucun bump initial
Yellowstone block from_slot replay a reçu un fix upstream en juillet 2026 -> smoke block replay obligatoire
Helius transactionSubscribe courant ; Helius blockSubscribe explicitement non supporté
Helius LaserStream replay 24 h documenté
PublicNode Yellowstone Mainnet/Testnet visible ; replay depth non prouvée
OrbitFlare gRPC Devnet disponible Free/Developer
QuickNode gRPC Scale+ ; port 443/x-token ; port 10000 sunset 2026-10-01
Alchemy replay docs contradictoires 6000 vs 432000 slots -> aucune constante KSP
Jito ShredStream shutdown annoncé pour 2026-09-05 -> SUNSET, non retenu TR-F

Plan recalibré

pre.002 common RAW foundation
pre.003 Backfill migration
pre.004 observed block + HTTP block material
pre.005 WS/Helius full parity
pre.006 Yellowstone parity
pre.007 Worker runtime foundation
pre.008 Yellowstone live/replay
pre.009 WS/HTTP live
pre.010 multi-source persistence/hardening
pre.011 gap repair
pre.012 Config/profiles + smokes accessibles
pre.013 EARLY si prouvé, sinon consolidation
pre.014 gate technique/live final
pre.015 réconciliation documentaire
pre.016 préparation publication
rel.001 stable

Fichiers ajoutés

docs/plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md
docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md
deltas/0.3.10/pre.001.md

Fichiers modifiés

Cargo.toml

Cargo.toml :

file version 489 -> 490
workspace.package.version 0.3.9 -> 0.3.10-pre.1

Ce bump est requis par VER-ID-009 pour toute prerelease non-fix, même lorsque la tranche est documentaire.

Fichiers supprimés

aucun

Validation après modification

Audits statiques réellement exécutés après matérialisation de pre.001 :

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 (339 table(s), 753 file(s))

Le premier passage Markdown post-modification a détecté 32 erreurs dalignement uniquement dans les nouvelles tables. Elles ont été corrigées selon la règle KSP, puis le gate complet ci-dessus a été relancé jusquà PASS.

La comparaison byte-à-byte contre le contenu du ZIP stable, après suppression du cache Python daudit, donne exactement :

ajoutés :
  deltas/0.3.10/pre.001.md
  docs/plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md
  docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md
modifié :
  Cargo.toml
supprimé :
  aucun

Les commandes Cargo/Tauri ne sont pas exécutables dans lenvironnement dassemblage courant (cargo absent). Elles restent donc explicitement NON EXÉCUTÉES LOCALEMENT pour ce delta ; aucune preuve opérateur antérieure nest transformée en PASS local.

Validations non exécutées localement

cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
cargo tree --duplicates
builds Tauri
smokes live opt-in

Motif : toolchain Cargo absent du sandbox dassemblage et aucune credential/provider live nest injectée. Les preuves stables fournies par lopérateur sont conservées comme contexte externe distinct ; elles ne remplacent pas les gates futurs de 0.3.10.

Questions ouvertes

Aucune question de boundary ne bloque pre.002. Restent volontairement à résoudre par preuve pendant les tranches prévues :

parité byte-for-byte RAW v1 des sources WS/Helius/Yellowstone full
profondeur replay réellement observable par provider au moment du smoke
nécessité éventuelle dun profil/rôle Transport supplémentaire pour un smoke accessible
admission dune source EARLY seulement si protocole, accès et rôle RAW sont effectivement prouvés

Ces points ne doivent pas être anticipés par des constantes, des claims lossless ou une RAW v2.

Non inclus

aucune nouvelle crate créée
aucun Rust modifié
aucun Transport/Config/Store code modifié
aucun kbot3 ouvert ou copié
aucun Worker live
aucun RAW v2
aucun CHANGELOG/ROADMAP modifié
aucun prompt 0.3.11 créé
aucun Cargo gate déclaré localement