5.4 KiB
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 :
- System Program ;
- Vote Program ;
- Stake Program ;
- Config Program ;
- Compute Budget Program ;
- Address Lookup Table Program ;
- ZK ElGamal Proof Program ;
- Feature Program ;
- ancien ZK Token Proof Program ;
- Native Loader ;
- BPF Loader v1 ;
- BPF Loader v2 ;
- BPF Loader Upgradeable ;
- Loader v4 ;
- Ed25519 precompile ;
- secp256k1 precompile ;
- secp256r1 precompile ;
- 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 :
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 :
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.