v0.3.10-pre.006

This commit is contained in:
2026-09-07 18:58:48 +02:00
parent d4f4237723
commit f7c57f21c5
17 changed files with 1748 additions and 61 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md -->
<!-- version: 9 -->
<!-- version: 10 -->
# Validation v0.3.10 — RAW Transaction commune + Worker dingestion
@@ -942,3 +942,50 @@ KSP workspace Rust rule audit: clean
Markdown table audit: clean (339 table(s), 761 file(s))
```
### 13.10 Gate d'assemblage `pre.006` — Transaction V1 et Yellowstone
Le rejeu opérateur de `pre.005-fix.002` communiqué le 6 septembre 2026 est intégralement vert : audits statiques, `cargo check --workspace`, Clippy strict, common RAW, 387 tests Transport avec suites publiques/release/doctests, et suite Backfill complète incluant hardening et parité WS/Helius. `pre.006` part donc de cette baseline fermée.
La tranche ajoute dans `ksp-raw-transaction-lib` :
```text
RawSolanaMessageVersion Legacy/V0/V1
RawSolanaMessageHeader
RawSolanaCompiledInstruction
RawSolanaAddressTableLookup
RawSolanaTransactionConfig
RawSolanaTransactionMessage
RawSolanaTransactionWire
serialize_solana_transaction_wire
serialize_solana_transaction_wire_base64
```
Les tests common imposent des goldens Base64 exacts Legacy/V0/V1, la configuration V1 vide significative, les limites structurelles V1, l'interdiction des ALT et l'extraction de signature depuis les signatures terminales.
Le canari Backfill `tests/yellowstone_raw_parity.rs` utilise un serveur Geyser local et le vrai canal public Yellowstone Transport. Il exige :
```text
Transaction V1 : slot = 42, index = 3, wire = golden common
Block V1 : slot = 42, index = 3, block_time présent, wire identique
meta : conservée comme DTO Yellowstone, sans prétendre à l'identité JSON HTTP
```
Décision de qualification :
```text
Yellowstone transaction wire = QUALIFIÉ
Yellowstone Transaction RAW = HYDRATION HTTP (block_time absent)
Yellowstone Block RAW complet = HYDRATION HTTP (meta JSON byte-identical non prouvée)
TR-C2 adapter productif = différé au Worker pre.007
```
Le manifest Backfill ajoute uniquement en dev :
```text
tonic = { workspace = true, features = ["codegen", "server"] }
yellowstone-grpc-proto = { workspace = true, features = ["tonic"] }
```
`tests/dependency_boundary.rs` vérifie qu'elles ne figurent pas avant `[dev-dependencies]`, et le canari hardening attend exactement `{tokio, tokio-tungstenite, tonic, yellowstone-grpc-proto}` en dev tout en gardant l'inventaire normal inchangé.
L'environnement d'assemblage ne fournit ni `cargo`, ni `rustc`, ni `rustfmt`. Le gate Cargo/Clippy/tests reste donc opérateur. Les audits Python KSP et Markdown sont exécutés après fermeture du delta et leurs résultats sont enregistrés dans `deltas/0.3.10/pre.006.md`.