v0.3.10-pre.005
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md -->
|
||||
<!-- version: 6 -->
|
||||
<!-- version: 7 -->
|
||||
|
||||
# Validation v0.3.10 — RAW Transaction commune + Worker d’ingestion
|
||||
|
||||
@@ -228,8 +228,8 @@ Familles à prouver séparément :
|
||||
```text
|
||||
HTTP getTransaction
|
||||
HTTP getBlock transaction
|
||||
WS blockSubscribe transaction
|
||||
Helius transactionSubscribe full
|
||||
WS blockSubscribe transaction legacy/v0 full/base64
|
||||
Helius transactionSubscribe full/base64 -> negative parity / hydration
|
||||
Yellowstone transaction
|
||||
Yellowstone block transaction
|
||||
Transaction V1
|
||||
@@ -796,5 +796,59 @@ Version technique du fix :
|
||||
workspace.package.version = 0.3.10-pre.4.fix.1
|
||||
```
|
||||
|
||||
Le gate complet de `pre.004` doit être rejoué après application du fix avant ouverture de `pre.005`.
|
||||
Le rejeu du fix communiqué le 2026-09-06 est intégralement vert :
|
||||
|
||||
```text
|
||||
cargo fmt --all : exécuté
|
||||
General Rust rule audit: clean
|
||||
Rust export completeness audit: 0 candidate(s)
|
||||
KSP workspace Rust rule audit: clean
|
||||
Markdown table audit: clean (339 table(s), 758 file(s))
|
||||
cargo check --workspace : PASS
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings : PASS
|
||||
cargo test -p ksp-raw-transaction-lib : PASS, 12 unit + 9 intégration, 0 échec
|
||||
cargo test -p ksp-onchain-transport-lib : PASS, 387 unit + 51 public API + 43 release completeness + 4 doctests, 0 échec ; smokes live ignorés comme prévu
|
||||
cargo test -p ksp-job-backfill-lib : PASS, 51 unit + 21 intégration, 0 échec
|
||||
```
|
||||
|
||||
Les arbres Cargo n’ont pas été rejoués sur ce fix car aucune dépendance ni feature n’a changé. `pre.004-fix.001` est donc fermé et `pre.005` peut s’ouvrir.
|
||||
|
||||
### 13.7 Qualification WS/Helius de `pre.005`
|
||||
|
||||
Le canari `ksp-job-backfill-lib/tests/ws_raw_parity.rs` utilise uniquement des serveurs HTTP/WS locaux déterministes. Aucun smoke réseau ni secret provider n’est requis.
|
||||
|
||||
Cas positif standard :
|
||||
|
||||
```text
|
||||
HTTP getBlock observed
|
||||
WS blockSubscribe confirmed/full/base64/maxSupportedTransactionVersion=0
|
||||
-> même SolanaConfirmedBlock
|
||||
-> même RawTransactionReference
|
||||
-> même slot
|
||||
-> même block_time
|
||||
-> mêmes bytes RAW v1
|
||||
-> même content_hash
|
||||
```
|
||||
|
||||
Ce gate qualifie uniquement le sous-ensemble legacy/v0. Transaction V1 reste au gate `pre.006`.
|
||||
|
||||
Cas négatif Helius :
|
||||
|
||||
```text
|
||||
Helius transactionSubscribe full/base64
|
||||
-> même signature/identité que HTTP
|
||||
-> même slot
|
||||
-> transaction wire + meta + transactionIndex présents
|
||||
-> blockTime absent
|
||||
-> version absente
|
||||
|
||||
meilleure projection Helius
|
||||
!= hydration HTTP complète sur block_time
|
||||
!= bytes RAW v1
|
||||
!= content_hash
|
||||
```
|
||||
|
||||
Le résultat est normatif pour le Worker : Helius `transactionSubscribe` est un signal live riche qui doit être hydraté par HTTP avant persistence RAW. Aucun champ absent n’est inventé et aucun RAW v2 n’est introduit.
|
||||
|
||||
La dépendance `tokio-tungstenite` nécessaire aux fixtures WS est strictement `dev-dependencies`; `tests/dependency_boundary.rs` verrouille cette frontière. Aucun edge de production Transport -> common n’est ajouté.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user