v0.2.9-pre.007
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
# Plan `0.2.9` — moteur Yellowstone gRPC + standard Solana + PublicNode
|
||||
|
||||
> **Statut : `0.2.9-pre.005-fix.001` est fermée sur gate opérateur intégralement vert et sans warning : fmt/audit/check/Clippy/workspace PASS, Transport 364 unit + 45 public API + 38 completeness + 4 doctests. `0.2.9-pre.006` est une tranche structurelle dédiée au nommage des modules privés : les cinq modules sans ambiguïté HTTP (`client`, `executor`, `pool`, `resilience`, `settings`) deviennent `http_*`, avec leurs unit tests miroirs. Les modules `rpc_*`, `json_rpc`, `constants` et `error` ne sont pas préfixés artificiellement car ils décrivent une couche/protocole partagé ou portent déjà des DTOs utilisés par WS/gRPC. Cette insertion décale l’ancien forecast fonctionnel `pre.006–011` vers `pre.007–012` sans changer son contenu. Aucun contrat public ni comportement runtime ne change.**
|
||||
> **Statut : `0.2.9-pre.006` est fermée sur gate opérateur intégralement vert : fmt/audit/check/Clippy/workspace PASS, Transport 364 unit + 45 public API + 39 completeness + 4 doctests. `0.2.9-pre.007` est candidate et matérialise uniquement Transactions + `transaction_status` du `Subscribe` standard : filtres complets, signature Base58 décodée exactement sur 64 octets, Cuckoo/token-account expansion, DTOs transaction/meta complets et Transaction V1 `TransactionConfig`. Blocks restent `pre.008`; aucun stream bidi n’est encore ouvert.**
|
||||
|
||||
## 1. Objet, base et état d'ouverture
|
||||
|
||||
@@ -925,11 +925,11 @@ pre.004 DONE — standard Solana : Subscribe foundation + maps/commitment/ping/
|
||||
pre.005 DONE — standard Solana : Accounts + Slots filters/updates
|
||||
budget : 15–20 min ; gate final fix.001 : fmt/audit/check/Clippy/workspace PASS sans warning + Transport 364/45/38/4
|
||||
|
||||
pre.006 CANDIDATE — structure Transport : namespace privé HTTP explicite
|
||||
budget : 15–20 min ; preuve : 5 modules + 5 unit tests renommés `http_*`, API publique inchangée, canari d'absence des anciens modules
|
||||
pre.006 DONE — structure Transport : namespace privé HTTP explicite
|
||||
budget : 15–20 min ; gate opérateur final PASS 364/45/39/4 + workspace
|
||||
|
||||
pre.007 standard Solana : Transactions + transaction_status
|
||||
budget : 15–20 min ; preuve : include/exclude/required/Cuckoo/token expansion + tx/meta
|
||||
pre.007 CANDIDATE — standard Solana : Transactions + transaction_status
|
||||
budget : 15–20 min ; preuve : include/exclude/required/Cuckoo/token expansion + tx/meta + TransactionConfig V1
|
||||
|
||||
pre.008 standard Solana : Blocks + block_meta + entry
|
||||
budget : 15–20 min ; preuve : counts/arrays/optional/oneof/payload bounds
|
||||
@@ -1216,3 +1216,60 @@ Cette tranche est volontairement séparée de Transactions afin de respecter le
|
||||
|
||||
**Gate candidat :** audit Rust clean, public API inchangée, cinq anciens modules absents après suppression opérateur, cinq nouveaux modules `http_*` compilés, release-completeness canary dédié, workspace complet vert.
|
||||
|
||||
|
||||
## 21. Gate final `pre.006` — namespace privé HTTP
|
||||
|
||||
Preuve opérateur du `2026-08-24` :
|
||||
|
||||
| Gate | Résultat final |
|
||||
|------------------------------------------|----------------|
|
||||
| `cargo fmt --all` | PASS |
|
||||
| audit Rust workspace | PASS / clean |
|
||||
| `cargo check --workspace` | PASS |
|
||||
| `cargo clippy --workspace --all-targets` | PASS |
|
||||
| Transport unit | 364/364 PASS |
|
||||
| Transport `public_api` | 45/45 PASS |
|
||||
| Transport `release_completeness` | 39/39 PASS |
|
||||
| Transport doctests | 4/4 PASS |
|
||||
| Core dependency canary | 3/3 PASS |
|
||||
| `cargo test --workspace` | PASS |
|
||||
|
||||
Les cinq modules privés HTTP et leurs unit tests miroirs sont désormais effectivement nommés `http_*`. Le canari `release_v0_2_9_pre_006_namespaces_unambiguously_http_owned_private_modules` passe et les modules partagés `rpc_*`/`json_rpc` restent volontairement non préfixés.
|
||||
|
||||
**Verdict : `pre.006` fermée.**
|
||||
|
||||
## 22. `pre.007` — Transactions + `transaction_status` candidate
|
||||
|
||||
Le proto `yellowstone-grpc-proto 12.6.0` est réaudité avant implémentation. `SubscribeRequestFilterTransactions` contient exactement `vote?`, `failed?`, `signature?`, `account_include[]`, `account_exclude[]`, `account_required[]`, `cuckoo_account_include?` et `token_accounts?`. La même structure filtre `transactions` et `transactions_status`.
|
||||
|
||||
La candidate matérialise :
|
||||
|
||||
```text
|
||||
request filters
|
||||
vote? / failed?
|
||||
signature? : Base58 validé et décodé exactement sur 64 octets
|
||||
account_include[] / account_exclude[] / account_required[]
|
||||
cuckoo_account_include?
|
||||
token_accounts? = ALL | BALANCE_CHANGED
|
||||
|
||||
updates
|
||||
transaction : filters + created_at + slot + signature/is_vote/index + transaction + meta
|
||||
transaction_status : filters + created_at + slot + signature/is_vote/index + error?
|
||||
|
||||
solana-storage typed
|
||||
Transaction / Message / MessageHeader
|
||||
CompiledInstruction / MessageAddressTableLookup
|
||||
TransactionConfig V1 (priority_fee/compute_unit_limit/loaded_accounts_data_size_limit/heap_size)
|
||||
TransactionStatusMeta + TransactionError
|
||||
InnerInstructions / InnerInstruction
|
||||
TokenBalance / UiTokenAmount
|
||||
ReturnData / Reward
|
||||
loaded writable/readonly addresses
|
||||
compute_units_consumed? / cost_units?
|
||||
```
|
||||
|
||||
Les marqueurs `inner_instructions_none`, `log_messages_none` et `return_data_none` sont conservés séparément de leurs payloads. Les erreurs transaction sont des bytes opaques bornés : aucun décodage Program/runtime arbitraire n'est introduit. Les types protobuf upstream restent internes. Les conversions request et les décodeurs update restent `#[cfg(test)]` jusqu'à l'ouverture du stream runtime en `pre.009`.
|
||||
|
||||
OUT de `pre.007` : Blocks/block_meta/entry, stream bidi/Ping-Pong, reconnect/replay, Config V3, PublicNode et `SubscribeDeshred`.
|
||||
|
||||
**Gate candidat :** audit statique clean ; compilation/Clippy/tests opérateur requis avant fermeture.
|
||||
|
||||
Reference in New Issue
Block a user