Files
khadhroony-bot3/docs/CONFIGURATION.md
2026-07-23 16:37:12 +02:00

3.6 KiB
Raw Blame History

Configuration

La configuration sert de contrat commun entre les applications Tauri, les workers, les tests locaux, les stores, le RPC, le wallet et les exécuteurs.

Fichier principal

config/example.config.json

Ce fichier ne contient pas de commentaires, car JSON ne le permet pas.

Profils

La configuration racine contient plusieurs profils et un seul profil actif :

{
  "active_profile": "local_devnet",
  "profiles": []
}

Les profils fournis sont local_devnet, mainnet_research et mainnet.

Logging

Chaque sortie définit son nom, activation, sink, niveau, chemin, rotation, format, ANSI et liste de targets. Toute crate opérationnelle disposant d'un target tracing canonique doit recevoir ses fichiers debug.log, info.log et error.jsonl dédiés dans chaque profil.

kb_wallet devient une crate opérationnelle en 0.4.2-pre.003; ses logs ne contiennent jamais de secret ou d'octets de keypair.

Endpoints HTTP et WS

Le modèle principal conserve les endpoints HTTP JSON-RPC et WebSocket Solana standards. Les rôles permettent de sélectionner un endpoint selon le type de requête et d'appliquer débit, burst, concurrence, subscriptions et pause 429.

Les transports gRPC, Helius enrichi et LaserStream restent planifiés dans leurs jalons dédiés.

URL et clés API

Une clé API doit rester sous forme de placeholder dans l'URL :

https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}

Aucune clé réelle ne doit être committée.

Wallet

Le bloc wallet contient :

wallet_dir
temporary_wallet_enabled
temporary_wallet_alias
temporary_wallet_persist
cluster
localnet_send_enabled
devnet_send_enabled
testnet_send_enabled
mainnet_send_enabled

Le profil local devnet persiste le wallet sous :

wallets/temporary/local_devnet/local-devnet-operator.json

Cette persistance est nécessaire pour conserver la même adresse entre plusieurs sessions, recevoir un airdrop et signer une séquence de tests. Le fichier contient un keypair Solana standard non chiffré : il est exclu du dépôt, protégé par permissions privées sur Unix et réservé au laboratoire local/devnet.

La validation refuse :

  • un alias vide, trop long ou contenant un séparateur de chemin ;
  • temporary_wallet_persist = true lorsque le wallet temporaire est désactivé ;
  • un wallet temporaire actif sur mainnet-beta.

Exécution

Le bloc execution contient :

dry_run_default
require_simulation
require_operator_confirmation
localnet_max_spend_lamports
devnet_max_spend_lamports
testnet_max_spend_lamports
mainnet_max_spend_lamports
max_fee_lamports
max_compute_unit_price_micro_lamports
recent_blockhash_max_age_slots
send_max_retries
confirmation_poll_interval_ms
confirmation_max_attempts
devnet_airdrop_max_lamports

Règles :

  • toute dépense configurée exige la simulation ;
  • tout envoi activé exige un plafond de dépense positif pour le cluster correspondant ;
  • mainnet exige la confirmation opérateur ;
  • le plafond de frais et l'âge maximal du blockhash doivent être strictement positifs ;
  • lintervalle et le nombre de polls de confirmation sont strictement bornés ;
  • le plafond dairdrop Devnet doit rester nul dans les profils non Devnet ;
  • dry_run_default reste actif dans tous les profils fournis.

Règle de sécurité

Aucun secret ne doit être écrit dans le dépôt, les logs, PostgreSQL ou un payload Tauri. Les futurs backends chiffrés ou hardware wallet resteront confinés dans kb_wallet et exposeront uniquement une interface de signature.