프로젝트 소개

Fuel Core는 Fuel v2 프로토콜을 위한 풀 노드로서 Rust로 작성된 공식 Fuel 클라이언트 구현체입니다. 이 저장소에는 노드 바이너리, 지원 크레이트, 그리고 Fuel 노드를 빌드, 테스트, 실행하기 위한 도구들이 포함되어 있습니다. ## 네트워크 버전 README에는 현재 여러 Fuel 네트워크에서 사용되는 버전이 나열되어 있습니다: - Fuel Ignition: 0.48.1 - Testnet: 0.48.1 - Devnet: 0.48.1 저장소는 또한 소스에서 Ignition 노드를 실행하기 위한 체크아웃 태그 v0.45.1을 참조하는데, 이는 최신 표 버전과 다를 수 있습니다. ## 빌드 시스템 요구 사항에는 cmake, pkg-config, clang과 같은 일반적인 빌드 도구와 `wasm32-unknown-unknown` 타겟이 있는 Rust가 포함됩니다. macOS(Homebrew), Debian(apt), Arch(pacman)에 대한 플랫폼별 설정 명령이 제공됩니다. 빌드 명령: - 릴리스 스타일 노드 바이너리 빌드를 위한 `make build` - 개발 빌드를 위한 `cargo xtask build` (GraphQL 스키마도 다시 생성함) ## 노드 실행 문서 링크는 노드 운영자가 메인넷(Ignition) 또는 로컬 네트워크 노드를 실행할 수 있도록 Fuel 문서를 가리킵니다. 노드는 `fuel-core run`으로 직접 실행할 수도 있으며, 예제에서는 비영구 상태를 위한 `--db-type in-memory` 사용과 자동 블록 생성을 비활성화하기 위한 `--poa-instant=false`를 보여줍니다. 기본 데이터베이스는 RocksDB이며, 인메모리 모드를 사용하지 않는 한 상태는 영구 저장됩니다. ## 테스트 및 기여 프로젝트는 기여자들이 변경 사항을 푸시하거나 풀 리퀘스트를 열기 전에 `source ci_checks.sh`를 실행할 것을 권장합니다. 이 스크립트는 테스트를 포함한 모든 CI 검사를 실행합니다. 또한 크레이트 게시, 오래된 데이터베이스 오류(`rm -rf ~/.fuel/db`), macOS 파일 디스크립터 제한, `RUST_LOG` 또는 `HUMAN_LOGGING`을 통한 로그 레벨 구성에 대한 문제 해결 노트도 있습니다. ## GraphQL 서비스 클라이언트 기능은 `/v1/graphql`의 GraphQL 서비스 엔드포인트를 통해 노출됩니다. 스키마는 빌드 후 `crates/client/assets/schema.sdl`에서 사용할 수 있게 됩니다. 이 서비스는 Fuel 사양에 따라 16진수로 인코딩된 바이너리 형식의 Transaction을 받는 `submit` 뮤테이션을 기대합니다. ## Docker 및 Kubernetes 배포 자산은 `deployment/` 아래에 포함되어 있으며, Dockerfile과 Kubernetes 매니페스트가 있습니다. 명령은 Docker 이미지를 빌드하고 Kubernetes 볼륨, 디플로이먼트, 서비스 리소스를 생성/삭제하는 방법을 보여줍니다.