Sobre el proyecto

Fuel Core es la implementación oficial del cliente Fuel, escrita en Rust como un nodo completo para el protocolo Fuel v2. El repositorio incluye el binario del nodo, crates de soporte y herramientas para compilar, probar y ejecutar un nodo Fuel. ## Versiones de red El README enumera las versiones usadas actualmente en diferentes redes Fuel: - Fuel Ignition: 0.48.1 - Testnet: 0.48.1 - Devnet: 0.48.1 El repositorio también hace referencia a una etiqueta de checkout v0.45.1 para ejecutar un nodo Ignition desde el código fuente, que puede diferir de la versión más reciente de la tabla. ## Compilación Los requisitos del sistema incluyen herramientas de compilación comunes como cmake, pkg-config, clang y Rust con el target `wasm32-unknown-unknown`. Se proporcionan comandos de configuración específicos por plataforma para macOS (Homebrew), Debian (apt) y Arch (pacman). Comandos de compilación: - `make build` para una compilación del binario del nodo en modo release - `cargo xtask build` para compilaciones de desarrollo, que también regenera el esquema GraphQL ## Ejecución de un nodo Los enlaces de documentación apuntan a los documentos de Fuel para que los operadores de nodos ejecuten nodos de mainnet (Ignition) o de red local. Un nodo también puede lanzarse directamente con `fuel-core run`; los ejemplos muestran el uso de `--db-type in-memory` para estado no persistente y `--poa-instant=false` para deshabilitar la producción automática de bloques. La base de datos predeterminada es RocksDB, y el estado se persiste a menos que se use el modo en memoria. ## Pruebas y contribución El proyecto anima a los contribuyentes a ejecutar `source ci_checks.sh` antes de subir cambios o abrir pull requests. Este script ejecuta todas las comprobaciones de CI, incluidas las pruebas. También hay notas de solución de problemas para publicar crates, errores de base de datos obsoleta (`rm -rf ~/.fuel/db`), límites de descriptores de archivos en macOS y configuración del nivel de logs mediante `RUST_LOG` o `HUMAN_LOGGING`. ## Servicio GraphQL La funcionalidad del cliente se expone a través de un endpoint de servicio GraphQL en `/v1/graphql`. El esquema queda disponible en `crates/client/assets/schema.sdl` después de la compilación. El servicio espera una mutación `submit` que acepta una Transaction en formato binario codificado en hexadecimal, según las especificaciones de Fuel. ## Docker y Kubernetes Los recursos de despliegue se incluyen en `deployment/`, con un Dockerfile y un manifiesto de Kubernetes. Los comandos muestran cómo compilar la imagen Docker y crear/eliminar recursos de volumen, deployment y service de Kubernetes.