v0.1.0-pre.064-065
This commit is contained in:
114
olddocs/archivekbot2/docs/CONFIGURATION.md
Normal file
114
olddocs/archivekbot2/docs/CONFIGURATION.md
Normal file
@@ -0,0 +1,114 @@
|
||||
<!-- file: docs/CONFIGURATION.md -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# 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
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```json
|
||||
{
|
||||
"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 :
|
||||
|
||||
```text
|
||||
https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}
|
||||
```
|
||||
|
||||
Aucune clé réelle ne doit être committée.
|
||||
|
||||
## Wallet
|
||||
|
||||
Le bloc `wallet` contient :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
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 ;
|
||||
- l’intervalle et le nombre de polls de confirmation sont strictement bornés ;
|
||||
- le plafond d’airdrop 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.
|
||||
Reference in New Issue
Block a user