v0.2.9-pre.008-fix.001
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md -->
|
||||
<!-- version: 17 -->
|
||||
<!-- version: 18 -->
|
||||
|
||||
# Validation `0.2.9` — moteur Yellowstone + standard Solana + PublicNode
|
||||
|
||||
> **Statut : `pre.007` est fermée sur gate opérateur intégralement vert : fmt/audit/check/Clippy/workspace PASS, Transport 367 unit + 46 public API + 40 completeness + 4 doctests. `0.2.9-pre.008` est candidate Blocks + `block_meta` + `entry` : filtre Blocks courant complet, metadata/rewards/time/height, payloads Transaction/Account réutilisés, Entry complète et compteurs serveur conservés indépendamment des payloads optionnels. Bidi reste `pre.009`.**
|
||||
> **Statut : `pre.008` est fonctionnellement verte : fmt/audit/check/tests/workspace PASS, Transport 370 unit + 47 public API + 41 completeness + 4 doctests. Clippy passe avec un unique warning `field_reassign_with_default` dans la fixture Blocks. `pre.008-fix.001` corrige uniquement ce warning ; bidi reste `pre.009`.**
|
||||
|
||||
## 1. Autorités du gate
|
||||
|
||||
@@ -410,7 +410,7 @@ pre.004 DONE standard: Subscribe common/from_slot/bounds 15
|
||||
pre.005 DONE standard: accounts + slots 15–20 min ; gate final fix.001 PASS
|
||||
pre.006 DONE structure: namespace privé HTTP `http_*` 15–20 min ; gate PASS
|
||||
pre.007 DONE standard: transactions + transaction_status 15–20 min ; gate PASS
|
||||
pre.008 CANDIDATE standard: blocks + block_meta + entry 15–20 min
|
||||
pre.008 FIX.001 CANDIDATE standard: blocks + block_meta + entry 15–20 min ; gate fonctionnel PASS, 1 warning Clippy fixture
|
||||
pre.009 TODO moteur: bidi/backpressure/half-close/shutdown 15–20 min
|
||||
pre.010 TODO moteur: reconnect/replay/gap/duplicate 15–20 min
|
||||
pre.011 TODO Config V3 + protocol/provider + profils PublicNode 15–20 min
|
||||
@@ -834,32 +834,53 @@ Le proto 12.6.0 ajoute à la représentation de transaction le `Message.config`
|
||||
|
||||
## 25. Gate `pre.008` — Blocks + `block_meta` + `entry` candidate
|
||||
|
||||
| Surface / invariant | État candidate |
|
||||
|-------------------------------------------------------|----------------|
|
||||
| workspace version | `0.2.9-pre.8` |
|
||||
| Blocks `account_include[]` | SOURCE+TEST |
|
||||
| `include_transactions?` / `include_accounts?` | SOURCE+TEST |
|
||||
| `include_entries?` | SOURCE+TEST |
|
||||
| Cuckoo block account include | SOURCE+TEST |
|
||||
| `SubscribeUpdateBlock` | SOURCE+TEST |
|
||||
| rewards + `num_partitions?` | SOURCE+TEST |
|
||||
| block time / block height optionnels | SOURCE+TEST |
|
||||
| transactions réutilisent `YellowstoneTransactionInfo` | SOURCE+TEST |
|
||||
| accounts réutilisent `YellowstoneAccountInfo` | SOURCE+TEST |
|
||||
| compteurs serveur indépendants des payload vectors | SOURCE+TEST |
|
||||
| `SubscribeUpdateBlockMeta` | SOURCE+TEST |
|
||||
| `SubscribeUpdateEntry` + `starting_transaction_index` | SOURCE+TEST |
|
||||
| blockhash/parent blockhash Base58 -> 32 octets | SOURCE+TEST |
|
||||
| entry hash exactement 32 octets | SOURCE+TEST |
|
||||
| Debug sans hashes/sélecteurs/payloads imbriqués | SOURCE+TEST |
|
||||
| stream bidi / Ping-Pong / lifecycle | OUT pre.008 |
|
||||
| reconnect / replay | OUT pre.008 |
|
||||
| PublicNode / Config V3 | OUT pre.008 |
|
||||
| audit Rust workspace local | PASS / clean |
|
||||
| fmt/check/Clippy/tests | opérateur TODO |
|
||||
| Surface / invariant | État candidate |
|
||||
|-------------------------------------------------------|--------------------------|
|
||||
| workspace version | `0.2.9-pre.8` |
|
||||
| Blocks `account_include[]` | SOURCE+TEST |
|
||||
| `include_transactions?` / `include_accounts?` | SOURCE+TEST |
|
||||
| `include_entries?` | SOURCE+TEST |
|
||||
| Cuckoo block account include | SOURCE+TEST |
|
||||
| `SubscribeUpdateBlock` | SOURCE+TEST |
|
||||
| rewards + `num_partitions?` | SOURCE+TEST |
|
||||
| block time / block height optionnels | SOURCE+TEST |
|
||||
| transactions réutilisent `YellowstoneTransactionInfo` | SOURCE+TEST |
|
||||
| accounts réutilisent `YellowstoneAccountInfo` | SOURCE+TEST |
|
||||
| compteurs serveur indépendants des payload vectors | SOURCE+TEST |
|
||||
| `SubscribeUpdateBlockMeta` | SOURCE+TEST |
|
||||
| `SubscribeUpdateEntry` + `starting_transaction_index` | SOURCE+TEST |
|
||||
| blockhash/parent blockhash Base58 -> 32 octets | SOURCE+TEST |
|
||||
| entry hash exactement 32 octets | SOURCE+TEST |
|
||||
| Debug sans hashes/sélecteurs/payloads imbriqués | SOURCE+TEST |
|
||||
| stream bidi / Ping-Pong / lifecycle | OUT pre.008 |
|
||||
| reconnect / replay | OUT pre.008 |
|
||||
| PublicNode / Config V3 | OUT pre.008 |
|
||||
| audit Rust workspace local | PASS / clean |
|
||||
| fmt/audit/check/tests/workspace | PASS |
|
||||
| Clippy | PASS + 1 warning fixture |
|
||||
|
||||
Les `executed_transaction_count`, `updated_account_count` et `entries_count` sont conservés tels que fournis par le serveur ; ils ne sont pas forcés à égaler les tailles de `transactions[]`, `accounts[]` ou `entries[]`, car les trois flags `include_*` peuvent omettre ces payloads. Les messages imbriqués Transaction et Account réutilisent strictement les DTOs déjà introduits ; aucune seconde projection n’est créée.
|
||||
|
||||
Les helpers wire/decode restent test-only jusqu’au premier consommateur runtime en `pre.009`.
|
||||
|
||||
**Verdict `pre.008` : candidate source prête ; fermeture après gate Cargo opérateur.**
|
||||
**Verdict `pre.008` : contrat fonctionnel validé ; fix warning-only requis avant fermeture.**
|
||||
|
||||
## 26. Gate `pre.008-fix.001` — warning Clippy fixture
|
||||
|
||||
| Gate / observation | Résultat `pre.008` | Correctif `fix.001` |
|
||||
|------------------------------------------|--------------------------------------|---------------------------------------|
|
||||
| `cargo fmt --all` | PASS | à réexécuter |
|
||||
| audit Rust workspace | PASS / clean | PASS local / clean |
|
||||
| `cargo check --workspace` | PASS | inchangé |
|
||||
| `cargo clippy --workspace --all-targets` | PASS + `field_reassign_with_default` | initialiseur struct, warning supprimé |
|
||||
| Transport unit | 370/370 PASS | contrat inchangé |
|
||||
| Transport `public_api` | 47/47 PASS | contrat inchangé |
|
||||
| Transport `release_completeness` | 41/41 PASS | contrat inchangé |
|
||||
| Transport doctests | 4/4 PASS | contrat inchangé |
|
||||
| Core dependency canary | 3/3 PASS | dépendances inchangées |
|
||||
| `cargo test --workspace` | PASS | contrat inchangé |
|
||||
|
||||
Le warning provient uniquement de `minimal_transaction_info()` dans `unit_tests/grpc_subscribe.rs`. `fix.001` initialise `TransactionStatusMeta.fee` directement dans le literal struct et conserve `..Default::default()`. Aucun `allow`, aucun changement runtime, aucune dépendance et aucun élargissement vers le bidi.
|
||||
|
||||
**Verdict `fix.001` : candidate warning-only ; fermeture de `pre.008` après gate opérateur sans warning.**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user