3.4 KiB
Delta 0.2.9-pre.005 — Yellowstone standard Accounts + Slots
Base et signal de version
Base autoritaire :
0.2.9-pre.4.fix.1
Signal technique de cette tranche :
workspace.package.version = 0.2.9-pre.5
commit attendu = v0.2.9-pre.005
aucun tag prerelease
Le gate opérateur de pre.004-fix.001 est vert sans les warnings dead_code précédents ; pre.004 est donc fermée.
Périmètre réalisé
Cette tranche complète uniquement Accounts + Slots du contrat Yellowstone Subscribe standard actuel.
Accounts request :
account[]
owner[]
filters[] :
memcmp bytes/base58/base64
datasize
token_account_state
lamports eq/ne/lt/gt
nonempty_txn_signature?
cuckoo_accounts_filter?
Slots request :
filter_by_commitment?
interslot_updates?
Updates KSP :
Account : filters/created_at + account info + slot + is_startup
Slot : filters/created_at + slot + parent? + status + dead_error?
Les sept statuts Slot actuels sont couverts : processed, confirmed, finalized, first-shred-received, completed, created-bank et dead.
Cuckoo standard
Le Cuckoo account filter est traité comme capacité du standard Yellowstone courant, pas comme extension provider. KSP expose son propre DTO avec données, dimensions, fingerprint bits, seed et algorithme ; l'algorithme courant matérialisé est SipHash. Aucun type upstream n'est réexporté.
Validation et sécurité
Bornes KSP provider-neutral ajoutées sur :
account/owner selectors
account predicates
memcmp binary/text
Cuckoo payload/dimensions/fingerprint
account-data update
update filter names/count
timestamp nanos
transaction signature fixe 64 octets
dead_error
Les pubkeys/owners de wire doivent faire exactement 32 octets et les signatures 64 octets. Un enum Slot inconnu, un oneof ou champ obligatoire absent et les payloads hors bornes deviennent des erreurs KSP déterministes ; aucun payload provider arbitraire n'est recopié dans les diagnostics. Les Debug KSP n'exposent pas les sélecteurs, données memcmp/Cuckoo/account-data ni le texte dead_error.
Frontière runtime
Le stream bidi reste hors tranche. Les conversions protobuf request et les décodeurs Account/Slot restent donc compilés seulement pour les tests jusqu'à pre.008, où ils acquerront leur premier consommateur runtime. Cela évite les warnings dead_code sans dupliquer l'implémentation.
Explicitement hors pre.005
Transactions + transaction_status
Blocks + block_meta + entry
Ping/Pong lifecycle et mutation bidi
backpressure/shutdown stream
reconnect/resubscribe/replay
Config V3
PublicNode provider integration
SubscribeDeshred
Dépendances
Aucune dépendance ni feature Cargo n'est ajoutée ou modifiée. Les graphes inspectés en pre.003 restent applicables.
Validation attendue
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
Aucun cargo tree supplémentaire n'est requis pour cette tranche si le manifest reste inchangé.
Suite
pre.006 Transactions + transaction_status
pre.007 Blocks + block_meta + entry
pre.008 stream bidi + mutation + Ping/Pong + half-close + backpressure + shutdown