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.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# Validation `0.2.9` — moteur Yellowstone + standard Solana + PublicNode
|
||||
|
||||
> **Statut : `0.2.9-pre.005-fix.001` est fermé 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. `pre.006` est une tranche structurelle de namespace privé : `client/executor/pool/resilience/settings` deviennent `http_*` avec leurs tests miroirs, sans changement d’API publique. Les `rpc_*`, `json_rpc`, `constants` et `error` restent volontairement non préfixés lorsqu’ils sont partagés ou déjà groupés. Le forecast fonctionnel est décalé d’un numéro : Transactions `pre.007`, Blocks `pre.008`, bidi `pre.009`, reconnect `pre.010`, Config V3 `pre.011`, PublicNode final `pre.012`.**
|
||||
> **Statut : `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 Transactions + `transaction_status` : filtre current complet, signature Base58 -> 64 octets, Cuckoo/token expansion, updates transaction/status et projection typée complète du `solana-storage.proto` courant incluant Transaction V1 `TransactionConfig`. Blocks restent `pre.008`; bidi reste `pre.009`.**
|
||||
|
||||
## 1. Autorités du gate
|
||||
|
||||
@@ -167,6 +167,7 @@ Transaction
|
||||
Message
|
||||
MessageHeader
|
||||
MessageAddressTableLookup
|
||||
TransactionConfig
|
||||
TransactionStatusMeta
|
||||
TransactionError
|
||||
InnerInstructions / InnerInstruction
|
||||
@@ -407,8 +408,8 @@ pre.002 DONE moteur: deps/settings/errors/channel 15
|
||||
pre.003 DONE TLS/metadata + fixture + 7 unary standard 15–20 min ; gate final fix.001 PASS
|
||||
pre.004 DONE standard: Subscribe common/from_slot/bounds 15–20 min ; gate final fix.001 PASS
|
||||
pre.005 DONE standard: accounts + slots 15–20 min ; gate final fix.001 PASS
|
||||
pre.006 CANDIDATE structure: namespace privé HTTP `http_*` 15–20 min
|
||||
pre.007 TODO standard: transactions + transaction_status 15–20 min
|
||||
pre.006 DONE structure: namespace privé HTTP `http_*` 15–20 min ; gate PASS
|
||||
pre.007 CANDIDATE standard: transactions + transaction_status 15–20 min
|
||||
pre.008 TODO standard: blocks + block_meta + entry 15–20 min
|
||||
pre.009 TODO moteur: bidi/backpressure/half-close/shutdown 15–20 min
|
||||
pre.010 TODO moteur: reconnect/replay/gap/duplicate 15–20 min
|
||||
@@ -760,3 +761,55 @@ Le renommage est limité aux cinq modules dont l'ownership HTTP est sans ambigu
|
||||
|
||||
**Verdict `pre.006` : candidate structurelle prête ; fermeture après suppressions opérateur et gate Cargo complet.**
|
||||
|
||||
|
||||
## 22. Gate final `pre.006`
|
||||
|
||||
| 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 |
|
||||
|
||||
**Verdict : `pre.006` fermée.**
|
||||
|
||||
## 23. Gate `pre.007` — Transactions + `transaction_status` candidate
|
||||
|
||||
| Surface | État candidate |
|
||||
|--------------------------------------------------------------------|----------------|
|
||||
| workspace version | `0.2.9-pre.7` |
|
||||
| `vote?` / `failed?` | SOURCE+TEST |
|
||||
| signature Base58 décodée exactement 64 octets | SOURCE+TEST |
|
||||
| include/exclude/required ordonnés et bornés | SOURCE+TEST |
|
||||
| Cuckoo transaction include | SOURCE+TEST |
|
||||
| token expansion ALL/BALANCE_CHANGED | SOURCE+TEST |
|
||||
| `SubscribeUpdateTransaction` | SOURCE+TEST |
|
||||
| `SubscribeUpdateTransactionStatus` | SOURCE+TEST |
|
||||
| Transaction/Message/Header | SOURCE+TEST |
|
||||
| compiled instructions / ALT lookups | SOURCE+TEST |
|
||||
| Transaction V1 `TransactionConfig` | SOURCE+TEST |
|
||||
| TransactionStatusMeta complet | SOURCE+TEST |
|
||||
| inner instructions + legacy none marker | SOURCE+TEST |
|
||||
| logs + legacy none marker | SOURCE+TEST |
|
||||
| token balances / UiTokenAmount | SOURCE+TEST |
|
||||
| loaded addresses | SOURCE+TEST |
|
||||
| ReturnData + legacy none marker | SOURCE+TEST |
|
||||
| rewards | SOURCE+TEST |
|
||||
| compute_units_consumed / cost_units | SOURCE+TEST |
|
||||
| opaque TransactionError borné | SOURCE+TEST |
|
||||
| Debug sans signatures/token-balance text/payloads/logs/error bytes | SOURCE+TEST |
|
||||
| Blocks / block_meta / entry | OUT pre.007 |
|
||||
| stream bidi / lifecycle | OUT pre.007 |
|
||||
| PublicNode / Config V3 | OUT pre.007 |
|
||||
| audit Rust workspace local | PASS / clean |
|
||||
| fmt/check/Clippy/tests | opérateur TODO |
|
||||
|
||||
Le proto 12.6.0 ajoute à la représentation de transaction le `Message.config` optionnel pour Transaction V1 / SIMD-0385 ; la candidate le conserve explicitement. Les marqueurs legacy `inner_instructions_none`, `log_messages_none` et `return_data_none` ne sont pas fusionnés avec leurs collections/messages.
|
||||
|
||||
**Verdict `pre.007` : candidate source prête ; fermeture après gate Cargo opérateur.**
|
||||
|
||||
Reference in New Issue
Block a user