Files
khadhroony-solana-project/deltas/0.3.3/pre.010.md
2026-08-30 16:06:20 +02:00

3.3 KiB
Raw Blame History

Delta 0.3.3-pre.010 — hardening/completeness RawTransaction

1. Base acquise

Base opérateur :

0.3.3-pre.9.fix.6

Le gate standard est entièrement propre et la preuve opt-in postgres_raw_transaction_live passe sur PostgreSQL 17. pre.009, corrections incluses, est donc fermée.

2. Version

workspace.package.version = 0.3.3-pre.10

3. Nature de la tranche

pre.010 est une tranche de hardening uniquement. Aucun fichier de production, aucune ressource SQL et aucune migration ne sont modifiés.

Elle ajoute des canaris de complétude qui figent la vertical slice acquise avant le gate technique final.

4. Conformance des six capacités

Les tests exigent exactement une implémentation de chacun des traits suivants sur PostgresBackend puis sur Store :

RawTransactionRead
RawTransactionWrite
RawTransactionObservationRead
RawTransactionObservationWrite
RawTransactionRetentionRead
RawTransactionRetentionWrite

Le hardening refuse simultanément toute ouverture prématurée des quatre capacités RawAccountState/observation et toute ressource de migration ksp_raw_account*.

5. Hardening SQL privé

Le canari backend fige les propriétés physiques utiles à la vertical slice :

  • keyset ASC/DESC sur (slot, signature) ;
  • LIMIT physique sans OFFSET ;
  • FOR UPDATE pour les chemins concurrents ;
  • ON CONFLICT DO NOTHING pour lidempotence canonique ;
  • archive payload séparée ;
  • absence de SELECT *, ON CONFLICT DO UPDATE, processing_state, batch_size ou priority.

Ce scan ne crée aucune policy worker dans Store.

6. Mapping derreurs exhaustif

Les 18 variantes actuelles de PostgresBackendErrorKind sont toutes exercées :

  • dans ksp-store-postgres-lib, vers le contrat ksp-store-api ;
  • dans ksp-store-lib, vers les codes stables possédés par la façade.

Le canari backend vérifie en plus que le rendu de lerreur mappée ne contient ni URI PostgreSQL ni SQL.

7. Migrations

Inchangées :

V000 d29068b8c13b9dc0cc9ef6aaadd0fa12d41e0fe4c56541a1118c4bfc846a1450
V001 31488cda2f08f3f46c4cdbdbb6c18c243662fada02eac4487040c8735d72cc51

V001 reste à 40 ressources.

8. Fichiers modifiés

Cargo.toml
crates/ksp-store-postgres-lib/tests/hardening_completeness.rs
crates/ksp-store-postgres-lib/unit_tests/runtime.rs
crates/ksp-store-lib/tests/hardening_completeness.rs
crates/ksp-store-lib/unit_tests/store.rs
docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md
docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md
deltas/0.3.3/pre.010.md

Aucune suppression.

9. Gate opérateur attendu

cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.3
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-store-api
cargo test -p ksp-store-lib
cargo test -p ksp-store-postgres-lib
cargo test -p ksp-config-lib
cargo check -p ksp-store-lib --no-default-features

Aucun nouveau live PostgreSQL nest requis en pre.010, car le runtime et les migrations sont byte-identiques à la base live validée pre.009-fix.006.

10. Suite si le gate est vert

0.3.3-pre.011 — gate technique final