v0.3.13-pre.006

This commit is contained in:
2026-09-10 16:05:52 +02:00
parent c711213dcc
commit f688325170
14 changed files with 1549 additions and 51 deletions

View File

@@ -1,11 +1,11 @@
<!-- file: docs/validation/030-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Validation v0.3.13 — WS standard / Helius / HTTP live + convergence multi-source
## 1. Rôle
Ce document enregistre les preuves réellement exécutées et les non-claims de `0.3.13`. `pre.001` ferme l'audit/planification, `pre.002` matérialise la composition runtime multi-source, `pre.003` ajoute Standard Solana `logsSubscribe` + hydration HTTP observée, `pre.004` ajoute Standard Solana `blockSubscribe` RAW-direct qualifié Legacy/V0/V1 et `pre.005` ajoute Helius `transactionSubscribe` + hydration commune, sans activer encore la supervision simultanée.
Ce document enregistre les preuves réellement exécutées et les non-claims de `0.3.13`. `pre.001` ferme l'audit/planification, `pre.002` matérialise la composition runtime multi-source, `pre.003` ajoute Standard Solana `logsSubscribe` + hydration HTTP observée, `pre.004` ajoute Standard Solana `blockSubscribe` RAW-direct qualifié Legacy/V0/V1, `pre.005` ajoute Helius `transactionSubscribe` + hydration commune et `pre.006` ajoute le live HTTP block polling run-local, sans activer encore la supervision simultanée.
## 2. Archive stable contrôlée
@@ -1067,4 +1067,91 @@ cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
cargo tree --duplicates
```
## 51. Gate opérateur pre.005-fix.001 reçu
Preuve communiquée le 10 septembre 2026 :
```text
fmt : PASS
audits Rust : clean / export completeness 0
Markdown : clean, 340 tables / 838 files
cargo check --workspace : PASS
clippy workspace all-targets all-features -D warnings : PASS
worker unit : 84/84 PASS
cross-layer : 4/4 PASS
dependency boundary : 12/12 PASS
hardening : 19/19 PASS
public API : 13/13 PASS
release completeness : 4/4 PASS
```
## 52. Surface pre.006 matérialisée
```text
RawTransactionIngestHttpBlockPollingSource
RawTransactionIngestRuntimeResources::from_http_block_polling_source
RawTransactionIngestRuntimeResources::try_push_http_block_polling_source
getSlot(commitment) au démarrage et à chaque cycle
getBlocksWithLimit(next_scan_slot, bounded_limit, commitment)
getBlock observed sur les slots listés
Full/Base64/maxV1/rewards=false
RAW-direct Legacy/V0/V1
timer Worker stop-preemptible
```
Aucun manifeste de crate ni aucune dépendance Transport/Config supplémentaire n'est requis.
## 53. Invariants statiques vérifiés pre.006
La tranche encode explicitement :
```text
start_slot = premier getSlot du run
next_scan_slot initial = start_slot
aucune découverte avant next_scan_slot
découverte strictement croissante
getBlock=null sur slot listé => next_scan_slot reste ce slot
skipped slot non listé => pas de faux gap
slot settled seulement après admission de tout le bloc
aucun hydration_pending pour la voie RAW-direct
version Legacy/V0/V1 qualifiée, ambiguë/>1 rejetée
provenance endpoint/provider réellement observé sur getBlock
source_key indépendant du poll interval et du batch size
```
Les anciens canaris de `0.3.12` qui interdisaient globalement `get_block_observed`/`tokio::time::sleep` ont été resserrés plutôt que supprimés : le coordinator d'hydration continue de ne posséder ni polling ni retry, tandis que ces primitives sont explicitement permises et bornées dans la seule source HTTP polling.
## 54. Validation locale d'assemblage pre.006
Le toolchain Cargo/Rustfmt n'est pas disponible dans l'environnement d'assemblage. Les commandes Cargo post-modification restent donc `NON EXÉCUTÉ LOCAL`. Les audits statiques exécutés sur l'état final sont consignés dans le delta `pre.006`.
## 55. Non-claims pre.006
```text
pas de scan historique avant le start_slot du run
pas de checkpoint durable de polling
pas de Backfill implicite
pas de multi-source simultané avant pre.007
pas de retry/backoff HTTP implémenté dans le Worker
pas de client reqwest direct
pas de Config lu dans le Worker
pas de version transaction >1 ou ambiguë acceptée
pas de getBlock=null assimilé à un slot vide
```
## 56. Gate opérateur requis avant pre.007
```bash
cargo fmt --all
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-onchain-transport-lib
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
cargo tree --duplicates
```