v0.2.9-pre.008
This commit is contained in:
73
deltas/0.2.9/pre.008.md
Normal file
73
deltas/0.2.9/pre.008.md
Normal file
@@ -0,0 +1,73 @@
|
||||
<!-- file: deltas/0.2.9/pre.008.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.2.9-pre.008` — Yellowstone Blocks + block_meta + entry
|
||||
|
||||
## 1. Base et signal technique
|
||||
|
||||
Base : `0.2.9-pre.007`, fermée sur gate opérateur intégralement vert.
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.2.9-pre.8
|
||||
```
|
||||
|
||||
## 2. Scope
|
||||
|
||||
La tranche complète uniquement la dernière famille de filtres/updates standard avant l’ouverture bidi : Blocks, `block_meta` et `entry`.
|
||||
|
||||
| Surface | Matérialisation |
|
||||
|----------------------------|-----------------|
|
||||
| filtre Blocks | complet |
|
||||
| `blocks_meta` | marker inchangé |
|
||||
| `entry` | marker inchangé |
|
||||
| `SubscribeUpdateBlock` | DTO + decode |
|
||||
| `SubscribeUpdateBlockMeta` | DTO + decode |
|
||||
| `SubscribeUpdateEntry` | DTO + decode |
|
||||
| stream bidi / lifecycle | OUT |
|
||||
| reconnect / replay | OUT |
|
||||
| PublicNode / Config V3 | OUT |
|
||||
| `SubscribeDeshred` | OUT `0.2.9` |
|
||||
|
||||
## 3. Filtre Blocks
|
||||
|
||||
`YellowstoneSubscribeBlockFilter` matérialise exactement le wire courant : `account_include[]`, `include_transactions?`, `include_accounts?`, `include_entries?` et `cuckoo_account_include?`. Les account selectors utilisent `ksp_core_lib::Pubkey`, restent ordonnés et bornés ; `Debug` ne rend aucune adresse.
|
||||
|
||||
## 4. Updates Blocks
|
||||
|
||||
`YellowstoneBlockUpdate` conserve la metadata de bloc, rewards, temps/hauteur optionnels, parent, compteurs et payloads optionnels. Les transactions réutilisent `YellowstoneTransactionInfo`, les comptes réutilisent `YellowstoneAccountInfo`, et les entries utilisent `YellowstoneEntryInfo`.
|
||||
|
||||
`YellowstoneBlockMetaUpdate` conserve la variante metadata-only. `YellowstoneEntryUpdate` enveloppe la même `YellowstoneEntryInfo` réutilisée dans les blocs. `starting_transaction_index` reste explicite, y compris sa valeur legacy `0`.
|
||||
|
||||
Les compteurs serveur sont indépendants des tailles de vecteurs : aucune égalité artificielle n’est imposée quand les flags `include_*` demandent l’omission d’un payload.
|
||||
|
||||
## 5. Validation et sécurité
|
||||
|
||||
Les blockhash textuels sont bornés, trim-exacts et Base58-décodés vers exactement 32 octets ; les hash d’entrée sont exactement 32 octets. Les collections Block/Rewards sont bornées. `Debug` ne copie aucun blockhash, parent blockhash, reward pubkey, account selector, données account, transaction, instruction ou entry hash.
|
||||
|
||||
Les conversions protobuf et décodeurs restent sous `#[cfg(test)]` jusqu’à l’ouverture du stream runtime en `pre.009`.
|
||||
|
||||
## 6. Tests/canaries ajoutés
|
||||
|
||||
```text
|
||||
block filter exact wire + redaction
|
||||
block update complet avec Transaction/Account/Entry réutilisés
|
||||
server counts distincts des payload-vector lengths
|
||||
block-meta optional states
|
||||
entry starting_transaction_index + malformed hash
|
||||
public API canary pre.008
|
||||
release completeness canary pre.008
|
||||
```
|
||||
|
||||
## 7. Gate opérateur
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-onchain-transport-lib
|
||||
cargo test -p ksp-core-lib --test workspace_dependencies
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
Aucune dépendance ni feature Cargo n’est modifiée ; aucun `cargo tree` supplémentaire n’est requis.
|
||||
Reference in New Issue
Block a user