Aller au contenu principal

Référence de Configuration

Tous les fichiers de configuration se trouvent dans le répertoire config/. Format TOML.

Réseau

[network]
name = "devnet" # "devnet", "testnet", "mainnet"
port = 8333 # Port d'écoute P2P
rpc_port = 8545 # Port JSON-RPC
ws_port = 8546 # Port WebSocket
bootstrap_nodes = [] # Pairs initiaux pour la découverte
max_peers = 50 # Nombre maximal de connexions entre pairs
connection_timeout = 30 # Délai d'expiration en secondes
ParamètreDevProdDescription
max_peers1050Connexions P2P maximales
connection_timeout10s30sDélai de connexion entre pairs

Stockage

[storage]
data_dir = "./data" # Répertoire de la base de données
cache_size_mb = 1024 # Cache de blocs RocksDB
write_buffer_size_mb = 64 # Tampon d'écriture par CF
max_open_files = 1000 # Descripteurs de fichiers maximaux
sync_interval = 30 # Intervalle de synchronisation WAL (secondes)
compression = true # Activer la compression LZ4
ParamètreDevProdDescription
cache_size_mb2561024Taille du cache de blocs
write_buffer_size_mb1664Tampon d'écriture
compressionfalsetrueCompression du stockage

Preuve d'Unité (PoU)

[pou]
scoring_update_interval = 300 # Mise à jour des scores (secondes)
group_formation_interval = 600 # Rééquilibrage des groupes (secondes)
consensus_sync_interval = 30 # Intervalle de synchronisation (secondes)
min_eligibility_score = 1000 # Score minimal (points de base, 0-10000)
min_stake_amount = 150 # Mise minimale pour participer
min_uptime_requirement = 0.8 # Disponibilité minimale (0.0-1.0)

[pou.weights]
availability = 0.25 # Poids de la disponibilité
latency = 0.20 # Poids du temps de réponse
integrity = 0.20 # Poids de la correction
reputation = 0.20 # Poids historique
participation = 0.15 # Poids de l'activité

[pou.groups]
group_size = 7 # Lightnodes par groupe
num_groups = 10 # Nombre de groupes
algorithm = "TopScore" # Algorithme de formation des groupes
ParamètreDevProdDescription
scoring_update_interval30s300sFréquence de mise à jour des scores PoU
group_formation_interval60s600sFréquence de rééquilibrage des groupes
min_eligibility_score1001000Score minimal pour participer
group_size37Lightnodes par groupe

Performance

[performance]
max_scoring_time_ms = 1000 # Temps maximal de calcul des scores
max_group_formation_time_ms = 3000
max_consensus_sync_time_ms = 500
target_tps = 1000 # Débit cible en transactions par seconde
max_block_size = 2097152 # Taille maximale d'un bloc (octets)
block_time_ms = 5000 # Temps cible entre blocs
ParamètreDevProdDescription
target_tps1001000Débit cible
block_time_ms20005000Intervalle entre blocs

Latence Adaptative

[adaptive_latency]
enabled = true
base_latency_ms = 100 # Latence de référence
max_latency_ms = 2000 # Latence maximale acceptable
adjustment_factor = 0.05 # Facteur de lissage
epoch_window = 100 # Époques pour la moyenne
network_averaging = true # Moyenne sur le réseau

Consensus

[consensus]
timeout = 10 # Délai d'expiration du tour (secondes)
max_rounds = 10 # Nombre maximal de tours de vote
quorum_threshold = 0.67 # Quorum BFT (2f+1)
enable_bft_optimizations = true # Chemin rapide pour les votes unanimes

Pénalités (Slashing)

[slashing]
enabled = true # Activer les pénalités (prod uniquement)
double_vote_slash = 0.50 # 50% de pénalité pour double vote
downtime_slash = 0.10 # 10% de pénalité pour indisponibilité
invalid_proposal_slash = 0.25 # 25% de pénalité pour blocs invalides
downtime_threshold = 0.2 # 20% de blocs manqués déclenche une pénalité
grace_period = 3600 # 1 heure de grâce avant pénalité d'indisponibilité

Surveillance

[monitoring]
enabled = true
host = "127.0.0.1"
port = 9090
update_interval_secs = 5
log_level = "info" # "debug", "info", "warn", "error"

[monitoring.thresholds]
block_stall_timeout_secs = 300
high_block_time_secs = 15
low_peer_count = 3
high_memory_usage = 0.9

Cache des Scores

[cache]
max_entries = 10000 # Taille du cache LRU
ttl_seconds = 300 # Durée de vie des entrées du cache
cleanup_interval = 60 # Fréquence de nettoyage (secondes)

Configurations des Masternodes

Configurations par masternode dans exucutables/configs/masternode/mn-*.toml :

[node]
listen_port = 5021
group_node_timeout_secs = 600 # Délai d'inactivité des pairs

[storage]
db_path = "data/mn1"

Variables d'Environnement

VariableDescription
RUST_LOGFiltre de journalisation (ex. : info,libp2p_gossipsub::behaviour=error)
CARGO_TARGET_DIRRépertoire de sortie de compilation
RUSTFLAGSOptions du compilateur (ex. : -C link-arg=/STACK:8388608)