8.5 KiB
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. L’archive 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 n’est pas installé dans l’environnement d’assemblage. Aucun gate Cargo local n’est déclaré PASS. Le journal opérateur stable 0.3.9 reste une preuve externe distincte.
Objectif
Exécuter le gate d’ouverture 0.3.10-pre.001 demandé par le prompt 029 : vérifier intégralement la base v0.3.9, auditer l’extraction 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 l’implé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 n’est 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 l’exige
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 d’alignement 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 d’audit, 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 l’environnement d’assemblage courant (cargo absent). Elles restent donc explicitement NON EXÉCUTÉES LOCALEMENT pour ce delta ; aucune preuve opérateur antérieure n’est 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 d’assemblage et aucune credential/provider live n’est injectée. Les preuves stables fournies par l’opé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 d’un profil/rôle Transport supplémentaire pour un smoke accessible
admission d’une 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