SIGN IN SIGN UP
FuelLabs / fuel-core UNCLAIMED

Rust full node implementation of the Fuel v2 protocol.

0 0 15 Rust

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