{"full_name":"FuelLabs/fuel-core","owner":"FuelLabs","name":"fuel-core","url":"https://github.com/FuelLabs/fuel-core","description":"Rust full node implementation of the Fuel v2 protocol.","homepage":"","topics":[],"language":"Rust","license":"Apache-2.0","avatar":"https://avatars.githubusercontent.com/u/55993183?v=4","created_at":"2020-08-27T21:12:14Z","pushed_at":"2026-11-09T17:22:02Z","metrics":{"stars":56761,"forks":2874,"watchers":221,"issues":1168,"prs":2098,"releases":132,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":5},"growth":{"day":{"stars":-1,"forks":1,"base_day":"2026-11-09"},"week":{"stars":-13,"forks":5,"base_day":"2026-11-03"},"month":{"stars":-45,"forks":10,"base_day":"2026-10-11"}},"history":{"dates":["2026-09-06","2026-09-07","2026-09-08","2026-09-09","2026-09-10","2026-09-11","2026-09-12","2026-09-13","2026-09-14","2026-09-15","2026-09-16","2026-09-17","2026-09-18","2026-09-19","2026-09-20","2026-09-21","2026-09-22","2026-09-23","2026-09-24","2026-09-25","2026-09-26","2026-09-27","2026-09-28","2026-09-29","2026-09-30","2026-10-01","2026-10-02","2026-10-03","2026-10-04","2026-10-05","2026-10-06","2026-10-07","2026-10-08","2026-10-09","2026-10-10","2026-10-11","2026-10-12","2026-10-13","2026-10-14","2026-10-15","2026-10-16","2026-10-17","2026-10-18","2026-10-19","2026-10-20","2026-10-21","2026-10-22","2026-10-23","2026-10-24","2026-10-25","2026-10-26","2026-10-27","2026-10-28","2026-10-29","2026-10-30","2026-10-31","2026-11-01","2026-11-02","2026-11-03","2026-11-04","2026-11-09","2026-11-10"],"stars":[56863,56863,56862,56863,56859,56857,56856,56853,56849,56847,56845,56843,56842,56840,56839,56836,56836,56834,56831,56830,56828,56827,56825,56825,56824,56824,56821,56816,56815,56815,56810,56808,56807,56807,56807,56806,56805,56804,56803,56801,56800,56797,56796,56795,56792,56790,56786,56786,56785,56781,56781,56783,56783,56778,56775,56774,56774,56774,56774,56773,56762,56761],"forks":[2859,2859,2859,2859,2859,2859,2859,2860,2861,2861,2861,2861,2861,2861,2862,2862,2862,2862,2862,2862,2863,2862,2862,2862,2862,2862,2863,2862,2862,2863,2863,2863,2863,2863,2863,2864,2864,2865,2865,2865,2865,2865,2864,2864,2865,2865,2865,2865,2865,2865,2865,2866,2867,2867,2868,2868,2868,2868,2869,2869,2873,2874],"watchers":[225,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,221,221,221,221,221,221,221,221,221,221,221,221,221],"issues_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"prs_open":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"boards":{},"same_owner":[{"full_name":"FuelLabs/fuels-rs","name":"fuels-rs","boards":{}},{"full_name":"FuelLabs/fuels-ts","name":"fuels-ts","boards":{}},{"full_name":"FuelLabs/sway","name":"sway","boards":{}}],"issues":[{"number":943,"title":"Peer Reputation for syncing","comments":8,"created_at":"2023-01-26T17:30:18Z"},{"number":1354,"title":"Refactor `fuel-core` services to be abstracted and allow testing","comments":6,"created_at":"2023-09-06T22:30:26Z"},{"number":3160,"title":"Have parity between pre confirmation statuses and `Success` and `Failed` statuses","comments":5,"created_at":"2025-12-05T00:57:34Z"},{"number":2676,"title":"Make GraphQL server ignore unknown fields in queries","comments":5,"created_at":"2025-02-06T18:27:33Z"},{"number":2171,"title":"RUSTSEC-2024-0370: proc-macro-error is unmaintained","comments":5,"created_at":"2024-09-06T00:23:49Z"},{"number":1669,"title":"The example in the README is broken","comments":5,"created_at":"2024-02-14T13:45:36Z"},{"number":1662,"title":"Create users friendly logs","comments":5,"created_at":"2024-02-12T18:47:26Z"},{"number":1353,"title":"Feature: Stop Using `anyhow` in `fuel-core` libraries","comments":5,"created_at":"2023-09-06T21:44:35Z"}],"discussions":[{"number":3253,"title":"SuiBets — Decentralized Sports Betting Smart Contract on Sui","comments":0,"category":"Show and tell","created_at":"2026-04-03T01:47:48Z"},{"number":2658,"title":"Improve our Changelog management","comments":4,"category":"General","created_at":"2025-02-02T17:21:13Z"},{"number":1775,"title":"great","comments":0,"category":"General","created_at":"2024-03-25T10:42:55Z"},{"number":1681,"title":"Backup wallet interface.","comments":1,"category":"General","created_at":"2024-02-17T23:54:56Z"},{"number":1598,"title":"Testing my Contract generate error warning","comments":3,"category":"General","created_at":"2024-01-13T14:05:05Z"}],"latest_release":{"name":"v0.48.4","tag":"v0.48.4","published_at":"2026-11-06T23:54:55Z","body":"\n### Breaking\n- [3357](https://github.com/FuelLabs/fuel-core/pull/3357): Raise the minimum supported Rust version to 1.95 across the workspace, including the node, client, and types crates, alongside the patched Wasmtime 48 LTS runtime. Downstream SDKs, tooling, and other Rust consumers adopting this release must use Rust 1.95 or newer. The accepted Wasm feature set and STF version 34 are unchanged; no on-chain executor upgrade is required for this release.\n\n### Added\n- [3344](https://github.com/FuelLabs/fuel-core/pull/3344): Compress GraphQL HTTP responses with gzip when the client sends `Accept-Encoding: gzip`, and make `FuelClient` request and decode gzip responses. SSE subscription streams are not compressed.\n\n### Changed\n- [3328](https://github.com/FuelLabs/fuel-core/pull/3328): Updated vulnerable dependencies and the Rust toolchain to current patched versions.\n\n### Fixed\n- [3332](https://github.com/FuelLabs/fuel-core/pull/3332): Fixed an out-of-bounds panic in `cumulative_percentage_change`: the guard around the `PRECOMPUTED_EXP` lookup table used `>` where the table bounds needed `>=`, so `estimateGasPrice(blockHorizon: 25)` panicked on every node.\n- [3333](https://github.com/FuelLabs/fuel-core/pull/3333): `--gas-price-change-percent` is now honoured by the shared `UniversalGasPriceProvider`, which was constructed with the hardcoded `DEFAULT_GAS_PRICE_CHANGE_PERCENT` (10) regardless of configuration. **Behaviour change:** on a node with a non-default percentage, `estimateGasPrice` and `assembleTx` now return different values, and the tx pool's minimum-affordable-fee check moves by the same factor. Nodes on the default (10) are unaffected.\n- [3334](https://github.com/FuelLabs/fuel-core/pull/3334): Upgrade libp2p/Gossipsub and the active Yamux transport to remediate remote denial-of-service advisories involving PRUNE backoff and malformed Yamux frames.\n- [3337](https://github.com/FuelLabs/fuel-core/pull/3337): Start network sync only after importer consumers have completed startup recovery, preventing importer notification backpressure from repeatedly timing out during off-chain catch-up. Block production remains gated on node readiness.\n  \n  Update the locked `rustls` dependency to 0.23.45 to address RUSTSEC-2026-0285.\n- [3349](https://github.com/FuelLabs/fuel-core/pull/3349): PoA reconciliation no longer races P2P block import: each unreconciled height re-reads the DB tip, and when the importer guard is contended (or the tip has not advanced) the leader backs off instead of spinning Redis `leader_state` fan-out.\n- [3352](https://github.com/FuelLabs/fuel-core/pull/3352): Stop PoA before P2P during FuelService shutdown so a leader-lock node's final block is heartbeated before the network stops. Nodes without a leader lock do not wait.\n- [3353](https://github.com/FuelLabs/fuel-core/pull/3353): Do not block block production on GraphQL off-chain database catch-up. The off-chain worker reports started before it re-validates missing blocks, so a restarted authority can reach PoA while indexes catch up.\n- [3354](https://github.com/FuelLabs/fuel-core/pull/3354): Expire `poa_is_leader` from the last lease renewal plus TTL, and export last produced-block and lease-renewal timestamps.\n- [3355](https://github.com/FuelLabs/fuel-core/pull/3355): Combined PoA failover soak: stop UnreconciledBlocks racing P2P import, stop PoA before P2P on shutdown so the leader's final block propagates, start PoA without waiting on off-chain re-execution, expire `poa_is_leader` with the lease TTL (plus last produced-block / lease-renewal timestamp gauges), and reject stale/gapped PoA heights in the importer before execution so the commit guard is not held for a full block run (DEVOPS-1765).\n- [3357](https://github.com/FuelLabs/fuel-core/pull/3357): Update vulnerable dependencies, including Wasmtime, and document why the Thrift binary-reader advisory does not apply to snapshot readers. Temporarily accept the unresolved crypto-bigint timing advisory whil"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}