À propos du projet

Fuel Core est l'implémentation officielle du client Fuel, écrite en Rust sous forme de nœud complet pour le protocole Fuel v2. Le dépôt inclut le binaire du nœud, les crates de support et les outils pour construire, tester et exécuter un nœud Fuel. ## Versions du réseau Le README liste les versions actuellement utilisées dans différents réseaux Fuel : - Fuel Ignition : 0.48.1 - Testnet : 0.48.1 - Devnet : 0.48.1 Le dépôt fait également référence à un tag de checkout v0.45.1 pour exécuter un nœud Ignition depuis les sources, ce qui peut différer de la dernière version du tableau. ## Construction Les prérequis système incluent des outils de construction courants tels que cmake, pkg-config, clang, et Rust avec la cible `wasm32-unknown-unknown`. Des commandes de configuration spécifiques à la plateforme sont fournies pour macOS (Homebrew), Debian (apt) et Arch (pacman). Commandes de construction : - `make build` pour une construction du binaire du nœud en mode release - `cargo xtask build` pour les builds de développement, qui régénèrent également le schéma GraphQL ## Exécution d'un nœud Les liens de documentation pointent vers la documentation Fuel pour les opérateurs de nœuds afin d'exécuter des nœuds mainnet (Ignition) ou de réseau local. Un nœud peut également être lancé directement avec `fuel-core run` ; les exemples montrent l'utilisation de `--db-type in-memory` pour un état non persistant et `--poa-instant=false` pour désactiver la production automatique de blocs. La base de données par défaut est RocksDB, et l'état est persisté sauf si le mode in-memory est utilisé. ## Tests et contribution Le projet encourage les contributeurs à exécuter `source ci_checks.sh` avant de pousser des modifications ou d'ouvrir des pull requests. Ce script exécute toutes les vérifications CI, y compris les tests. Il existe également des notes de dépannage pour la publication de crates, les erreurs de base de données obsolètes (`rm -rf ~/.fuel/db`), les limites de descripteurs de fichiers sous macOS, et la configuration du niveau de log via `RUST_LOG` ou `HUMAN_LOGGING`. ## Service GraphQL La fonctionnalité du client est exposée via un point de terminaison de service GraphQL à `/v1/graphql`. Le schéma devient disponible à `crates/client/assets/schema.sdl` après la construction. Le service attend une mutation `submit` qui accepte une Transaction au format binaire encodé en hexadécimal, conformément aux spécifications Fuel. ## Docker et Kubernetes Les ressources de déploiement sont incluses sous `deployment/`, avec un Dockerfile et un manifeste Kubernetes. Les commandes montrent comment construire l'image Docker et créer/supprimer les ressources Kubernetes de volume, déploiement et service.