0.1.0
This commit is contained in:
113
docs/NATIVE_SOLANA_CLOSURE_AUDIT.md
Normal file
113
docs/NATIVE_SOLANA_CLOSURE_AUDIT.md
Normal file
@@ -0,0 +1,113 @@
|
||||
<!-- file: docs/NATIVE_SOLANA_CLOSURE_AUDIT.md -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Audit de clôture Solana natif `0.4.1`
|
||||
|
||||
## Objet
|
||||
|
||||
Ce document fixe l’état final du jalon `0.4.1` : couverture native, preuves synthétiques, corpus mainnet observés et limites assumées.
|
||||
|
||||
L’absence de transaction mainnet n’autorise ni à supprimer une surface officielle, ni à prétendre qu’elle a été observée. Elle impose une validation synthétique documentée et une tentative de découverte bornée lorsque la surface est officiellement déclarée.
|
||||
|
||||
## Surfaces couvertes
|
||||
|
||||
`kb_decoder_solana_core` couvre 18 surfaces exécutables natives ou assimilées :
|
||||
|
||||
1. System Program ;
|
||||
2. Vote Program ;
|
||||
3. Stake Program ;
|
||||
4. Config Program ;
|
||||
5. Compute Budget Program ;
|
||||
6. Address Lookup Table Program ;
|
||||
7. ZK ElGamal Proof Program ;
|
||||
8. Feature Program ;
|
||||
9. ancien ZK Token Proof Program ;
|
||||
10. Native Loader ;
|
||||
11. BPF Loader v1 ;
|
||||
12. BPF Loader v2 ;
|
||||
13. BPF Loader Upgradeable ;
|
||||
14. Loader v4 ;
|
||||
15. Ed25519 precompile ;
|
||||
16. secp256k1 precompile ;
|
||||
17. secp256r1 precompile ;
|
||||
18. Slashing Program.
|
||||
|
||||
`StakeConfig11111111111111111111111111111111` est volontairement classé comme compte natif historique non exécutable.
|
||||
|
||||
## Divergence Slashing corrigée
|
||||
|
||||
Agave `v4.1.1` déclare le programme stateless Slashing sous :
|
||||
|
||||
```text
|
||||
S1ashing11111111111111111111111111111111111
|
||||
```
|
||||
|
||||
La surface a été ajoutée dans `pre.018` : deux instructions exactes, dispatch sans fallback, couverture déclarée et projection de rapport. Aucun corpus public observable n’a été trouvé ; la validation repose donc sur les sources officielles et les fixtures synthétiques.
|
||||
|
||||
## Invariants automatiques
|
||||
|
||||
Les tests garantissent que :
|
||||
|
||||
- chaque entrée de `kb_program_ids::native_program_ids()` possède exactement une surface de décodeur ;
|
||||
- chaque surface possède au moins une déclaration de couverture ;
|
||||
- aucune déclaration n’utilise le fallback `unclassified_native_instruction` ;
|
||||
- chaque déclaration référence une surface réellement déclarée ;
|
||||
- les identités programme/surface/entrée sont uniques ;
|
||||
- le Slashing Program est dispatché vers son parseur exact ;
|
||||
- ZK Token Proof historique passe par le fallback actuel no-op sans prétendre vérifier une preuve.
|
||||
|
||||
## Corpus et replays validés
|
||||
|
||||
| Programme | Résultat de clôture |
|
||||
|---------------------------|------------------------------------------------------------------------------|
|
||||
| System | 817 inputs décodés, 258 sorties, 52 refus attendus sur transactions échouées |
|
||||
| Config | 96 inputs décodés, 96 sorties admin |
|
||||
| Stake | 448 inputs décodés, 447 sorties, 1 refus attendu |
|
||||
| Vote | 600 inputs décodés, 600 sorties |
|
||||
| Compute Budget | 2 746 inputs décodés, 1 603 profils transactionnels |
|
||||
| Address Lookup Table | 104 inputs décodés, 104 sorties lifecycle |
|
||||
| ZK ElGamal | 151 inputs décodés, 139 sorties de contexte |
|
||||
| Slashing | zéro corpus public observable, validation synthétique |
|
||||
| Feature | zéro corpus observable dans les campagnes adressées, validation synthétique |
|
||||
| Loaders rares | zéro corpus observable pour certaines générations, validation synthétique |
|
||||
| ZK Token Proof historique | zéro corpus public observable, runtime actuel no-op, validation synthétique |
|
||||
|
||||
Les campagnes de clôture rapportées ont `unmatched = 0`, `failedInputs = 0`, `unsupported = 0` et ne produisent pas d’erreurs opérationnelles dans les journaux fournis.
|
||||
|
||||
## Backfills
|
||||
|
||||
Aucun backfill supplémentaire n’est requis pour clôturer `0.4.1`.
|
||||
|
||||
Le mode `program_latest` ajouté dans `pre.019` reste disponible pour de futures recherches sans signature d’ancrage. Il ne doit pas être utilisé pour inventer un corpus absent sur des surfaces feature-gated ou historiquement rares.
|
||||
|
||||
## Matérialisations
|
||||
|
||||
La clôture instructionnelle est documentée dans `docs/NATIVE_SOLANA_MATERIALIZATION_AUDIT.md`.
|
||||
|
||||
Aucune projection native stable immédiatement dérivable du graphe core actuel n’est identifiée comme manquante. Les snapshots finaux de comptes et métriques runtime restent différés.
|
||||
|
||||
## Validations finales
|
||||
|
||||
Validations utilisateur finales rapportées pour la clôture :
|
||||
|
||||
```text
|
||||
kb_program_ids 5 tests
|
||||
kb_decoder_solana_core 114 tests
|
||||
kb_materializer_lifecycle 16 tests
|
||||
kb_materializer_admin 7 tests
|
||||
kb_materializer_compliance_audit 7 tests
|
||||
kb_materializer_staking 8 tests
|
||||
kb_config 36 tests
|
||||
kb_pipeline 45 tests
|
||||
kb_store_pg 45 tests avec PostgreSQL réel
|
||||
kb_app_demo 78 tests
|
||||
cargo clippy --all-targets propre
|
||||
```
|
||||
|
||||
Le démarrage Tauri validé après `pre.021-fix.001` confirme les 53 routes de logging et l’initialisation PostgreSQL. `pre.022` ne modifie pas la configuration Tauri.
|
||||
|
||||
## Décision
|
||||
|
||||
`0.4.1` est clôturée.
|
||||
|
||||
La prochaine session doit utiliser `prompts/022_v0_4_2_executor_solana_core.md` et démarrer `0.4.2` sur l’infrastructure d’exécution et `kb_executor_solana_core`.
|
||||
Reference in New Issue
Block a user