Block Aggregator Protobuf API (#3100)
## Linked Issues/PRs <!-- List of related issues/PRs --> https://github.com/FuelLabs/fuel-core/issues/3089 ## Description <!-- List of detailed changes --> ## Checklist - [ ] Breaking changes are clearly marked as such in the PR description and changelog - [ ] New behavior is reflected in tests - [ ] [The specification](https://github.com/FuelLabs/fuel-specs/) matches the implemented behavior (link update PR if changes are needed) ### Before requesting review - [ ] I have reviewed the code myself - [ ] I have created follow-up issues caused by this PR and linked them here ### After merging, notify other teams [Add or remove entries as needed] - [ ] [Rust SDK](https://github.com/FuelLabs/fuels-rs/) - [ ] [Sway compiler](https://github.com/FuelLabs/sway/) - [ ] [Platform documentation](https://github.com/FuelLabs/devrel-requests/issues/new?assignees=&labels=new+request&projects=&template=NEW-REQUEST.yml&title=%5BRequest%5D%3A+) (for out-of-organization contributors, the person merging the PR will do this) - [ ] Someone else? <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Introduces a gRPC Protobuf Block Aggregator API with storage and serialization, integrates it into Fuel Core as an RPC service with CLI config, and adds tests and build support. > > - **RPC/API**: > - Add new `crates/services/block_aggregator_api` with Protobuf definitions (`proto/api.proto`), tonic server, and adapters (`ProtobufAPI`). > - Implement block serialization/deserialization to/from Protobuf (full coverage of block/tx variants). > - **Node Integration**: > - Wire Block Aggregator service into `fuel-core` sub-services; add CLI args `--rpc_ip`/`--rpc_port` and `rpc` feature. > - Extend `Config` with `rpc_config`; start service alongside GraphQL/others. > - **Storage**: > - Add `block_aggregation` DB to `CombinedDatabase`; define `BlockAggregatorDatabase` and storage tables for Protobuf `Block`s. > - Implement `BlockAggregatorDB` with range streaming and height tracking. > - **Serialization/Types**: > - Use Protobuf types instead of opaque bytes; add serializer adapter and header helpers in `fuel-core-types`. > - **Tests**: > - Add RPC integration tests and proptests for (de)serialization; extend test helpers. > - **Build/CI**: > - Install `protoc` in CI; add `prost`/`tonic` deps; ignore `RUSTSEC-2025-0118`; update `.gitignore`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 0da85566a6010eb9508d3d3c8a11d6d1777c96ef. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Aaryamann Challani <43716372+rymnc@users.noreply.github.com> Co-authored-by: Green Baneling <XgreenX9999@gmail.com>
M
Mitchell Turner committed
cc5bbc1573961b4ec56d3d9f241ecc65a26141bc
Parent: 6889ed1
Committed by GitHub <noreply@github.com>
on 1/21/2026, 2:16:06 PM