Files
khadhroony-solana-project/deltas/0.2.9/pre.008.md
2026-08-24 16:16:48 +02:00

74 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- 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 louverture 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 nest imposée quand les flags `include_*` demandent lomission dun 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 dentré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à louverture 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 nest modifiée ; aucun `cargo tree` supplémentaire nest requis.