v0.3.13-pre.009
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/030-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE.md -->
|
||||
<!-- version: 8 -->
|
||||
<!-- version: 9 -->
|
||||
|
||||
# Validation v0.3.13 — WS standard / Helius / HTTP live + convergence multi-source
|
||||
|
||||
@@ -1288,3 +1288,127 @@ pas de failover provider implicite
|
||||
pas de préférence silencieuse entre sources divergentes
|
||||
pas de nouveaux compteurs/health publics multi-source avant pre.010
|
||||
```
|
||||
|
||||
## 68. Gate complet pre.008-fix.002 reçu
|
||||
|
||||
Le 10 septembre 2026, le gate Worker puis son complément Transport/graphe ont été fournis et sont verts pour toutes les commandes exécutées :
|
||||
|
||||
```text
|
||||
fmt : PASS
|
||||
audits Rust : clean / export completeness 0
|
||||
Markdown : clean, 340 tables / 844 files
|
||||
cargo check --workspace : PASS
|
||||
clippy strict : PASS
|
||||
Worker : 94 unit + 4 cross-layer + 15 dependency-boundary + 22 hardening + 16 public-api + 4 release-completeness, 0 échec
|
||||
Transport : 389 unit + 52 public-api + 44 release-completeness + 4 doc-tests, 0 échec
|
||||
smokes Transport live opt-in : 5 ignored comme prévu
|
||||
cargo tree worker normal/features : exécutés sans erreur
|
||||
cargo tree --duplicates : exécuté sans erreur et liste les doublons existants du workspace
|
||||
```
|
||||
|
||||
Aucun smoke live ignoré n'est requalifié en preuve réseau réelle.
|
||||
|
||||
## 69. Surface pre.009 matérialisée
|
||||
|
||||
```text
|
||||
validate_hydration_fairness_capacity privé
|
||||
hydration_pending_limit privé
|
||||
hydration_in_flight_limit privé
|
||||
quotas statiques par source reference-bearing
|
||||
RawTransactionIngestGlobalHydrationRegistry max_pending exact
|
||||
sémaphore global hydration
|
||||
RawTransactionIngestHydrationLeaderGuard privé
|
||||
RawTransactionIngestCanonicalState privé
|
||||
comparaison slot/block_time/format/hash avant observation additionnelle
|
||||
```
|
||||
|
||||
Aucune API publique ni dépendance supplémentaire n'est requise.
|
||||
|
||||
## 70. Invariants globaux pre.009
|
||||
|
||||
Pour une composition productive valide :
|
||||
|
||||
```text
|
||||
hydration_source_count <= admission_queue_capacity
|
||||
hydration_source_count <= persistence_concurrency
|
||||
somme quotas pending = admission_queue_capacity
|
||||
somme quotas hydration tasks = persistence_concurrency
|
||||
quota de chaque source reference-bearing >= 1
|
||||
global registry distinct keys <= admission_queue_capacity
|
||||
HTTP leader effectivement ouvert <= persistence_concurrency
|
||||
source count <= 32
|
||||
```
|
||||
|
||||
Une composition sous-provisionnée échoue avant spawn. Il n'existe aucune extension silencieuse des bornes configurées, aucune queue provider privée et aucune `unbounded_channel`.
|
||||
|
||||
## 71. Duplicate storm, fairness et cleanup
|
||||
|
||||
Les tests déterministes ajoutés vérifient :
|
||||
|
||||
```text
|
||||
32 subscriptions identiques -> une seule entrée/leader global
|
||||
clés distinctes au-delà de max_pending -> runtime_invalid sûr
|
||||
sémaphore capacité 1 -> seconde acquisition simultanée refusée
|
||||
leader guard droppé -> follower reçoit Failed et la clé peut redevenir leader
|
||||
queue admission capacité 1 -> une seconde source déjà prête n'est pas affamée par la répétition d'une storm
|
||||
```
|
||||
|
||||
Le test de fairness ne revendique ni priorité métier ni scheduler pondéré. Il vérifie le comportement minimal attendu du canal borné commun et les quotas réservent une capacité aux autres sources reference-bearing.
|
||||
|
||||
## 72. Disagreement/content conflict pre.009
|
||||
|
||||
Pour une même identité `(network, signature)`, le cache run-local compare maintenant :
|
||||
|
||||
```text
|
||||
slot
|
||||
block_time
|
||||
format_id
|
||||
format_version
|
||||
content_hash
|
||||
```
|
||||
|
||||
Les cas slot divergent, block time divergent et contenu/hash divergent sont testés comme content conflicts terminaux avant `record_raw_transaction_observation`. Le Store reste l'autorité durable finale et aucune politique de majority vote, provider priority, preferred provider ou overwrite conflict n'est admise.
|
||||
|
||||
## 73. Canaris externes pre.009
|
||||
|
||||
Les suites externes sont étendues pour verrouiller :
|
||||
|
||||
```text
|
||||
dependency-boundary : bornes/fairness restent dans Worker + façades existantes
|
||||
hardening : quotas, sémaphore, cleanup, disagreement et absence de provider preference
|
||||
public-api : registry, leader guard, quotas et canonical state restent privés
|
||||
release-completeness : présence obligatoire des trois nouveaux canaris
|
||||
```
|
||||
|
||||
## 74. Validation locale d'assemblage pre.009
|
||||
|
||||
Le toolchain Cargo/Rustfmt n'est pas disponible dans l'environnement d'assemblage. Les commandes Cargo post-modification restent `NON EXÉCUTÉ LOCAL`; seules les validations statiques effectivement exécutées et les contrôles de packaging pourront être déclarés PASS dans le delta.
|
||||
|
||||
## 75. Non-claims pre.009
|
||||
|
||||
```text
|
||||
pas de nouveaux compteurs/health publics avant pre.010
|
||||
pas de QoS/scheduler pondéré
|
||||
pas de failover provider implicite
|
||||
pas de source primary/standby
|
||||
pas de majority vote
|
||||
pas de préférence provider/tier
|
||||
pas de overwrite d'un conflit canonique
|
||||
pas de preuve live réseau nouvelle
|
||||
```
|
||||
|
||||
## 76. Gate opérateur requis avant pre.010
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user