Files
khadhroony-bot3/olddocs/archivekbot2/kb_materializer_lifecycle/README.md
2026-07-30 17:50:29 +02:00

37 lines
3.6 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: kb_materializer_lifecycle/README.md -->
<!-- version: 9 -->
# kb_materializer_lifecycle
Ce crate matérialise des mutations lifecycle natives stables dans des projections métier génériques et versionnées. Il ne se limite pas à la famille décodée `Lifecycle` : certaines mutations exactes sont classées `Admin` ou `Audit` par le décodeur, puis promues en sortie `Lifecycle` uniquement lorsque leur effet durable est explicite et que la transaction est réussie et commitée.
## Projections actives
- comptes System génériques : `system_account:<operation>:0` pour create/allocate ;
- Address Lookup Table : `address_lookup_table:<operation>:0` ;
- loaders natifs : `program_loader:<surface>:<operation>:0` ;
- Feature Gate : `feature_gate:revoke_pending_activation:0` ;
- durable nonce System : `durable_nonce_account:<operation>:0` pour initialize, advance, authorize, upgrade et withdraw ;
- contexte ZK ElGamal : `zk_proof_context:<operation>:0` pour linitialisation demandée par une vérification réussie et pour la fermeture ;
- rapport Slashing : `slashing_violation_report:<operation>:0` pour linitialisation après preuve acceptée et la fermeture après rétention minimale.
Le retrait dun nonce account est projeté comme une opération de retrait avec fermeture conditionnelle. Le runtime détruit le compte seulement lorsque la totalité du solde est retirée ; le matérialiseur ne prétend pas reconstruire létat final du compte à partir de linstruction seule et ne duplique pas les deltas SOL déjà présents dans core.
Une vérification ZK ElGamal sans compte de contexte reste en decode/audit. Lorsquun contexte est demandé, la projection conserve le compte de contexte, son autorité et le type de preuve, mais ne matérialise jamais la preuve cryptographique. Le rapport Slashing est un enregistrement de violation et non une pénalité appliquée par le programme ; la projection conserve explicitement `penaltyAppliedByProgram = false`. Lancien ZK Token Proof Program reste exclu : le runtime Agave actuel est un stub sans effet et les layouts historiques ne disposent pas dun corpus mainnet fiable.
## Règles locales
- Les commentaires de code restent en anglais.
- La documentation Markdown reste en français.
- Les exports publics sont contrôlés depuis `lib.rs` lorsque le crate expose une bibliothèque.
- Toute projection mutable applique `SuccessfulCommittedOnly`.
- Lapplicabilité est filtrée au niveau exact de la surface, de lentrée et, pour ZK ElGamal, de `contextStateRequested`.
- Le lifecycle ATA appartient exclusivement à `kb_materializer_token_accounts` et reste explicitement ignoré ici afin d'éviter toute duplication.
- Les écritures/copies de bytecode et changements dautorité Loader sont pris en charge par les matérialiseurs compliance audit et admin ; Compute Budget, les précompiles de signature et les preuves ZK sans contexte restent dans decode.
Depuis `0.4.1-pre.005`, lapplicabilité est déclarée au niveau exact de lobservation. `pre.006` ajoute les mutations loader stables, `pre.008` la révocation Feature Gate et `pre.017` les durable nonce accounts System ainsi que les comptes de contexte ZK ElGamal, puis `pre.018` les rapports Slashing. Toute transaction échouée ou observation non commitée reste refusée.
## Comptes System génériques
`pre.020` ajoute les sorties `system_account:<operation>:0` pour `create_account`, `create_account_with_seed`, `create_account_allow_prefund`, `allocate` et `allocate_with_seed`. La projection conserve la cible, l'owner, l'espace, la seed et le montant demandé, mais ne recopie pas les deltas SOL déjà présents dans le graphe core.