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

3.2 KiB
Raw Blame History

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.

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

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

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.