Files
2026-08-24 12:31:19 +02:00

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