Skip to main content

BuilderNet v1.3

· 6 min read

BuilderNet v1.3 is the culmination of close collaboration with searchers, OFAs, and other orderflow providers to integrate BuilderNet directly with their production workflows. This release improves both the user experience for sending bundles to BuilderNet nodes, and the testing, observability, and deployment experience for operators to facilitate faster iteration in the future.

Improvements

Upgraded eth_sendBundle API

BuilderNet v1.3 provides an upgraded eth_sendBundle API, which includes new fields for backrun OFAs that are widely supported by other block builders. This allows backrun OFAs to submit directly to BuilderNet with better performance and customization. Specifically, these new (optional) fields were added:

FieldDescription
droppingTxHashesA list of transaction hashes contained in the bundle, that are allowed to be removed from the bundle (but not allowed to revert). This feature is typically used to allow the builder to merge multiple OFA backruns together.
refundPercentAn integer between 1-99, which indicates much of the total priority fee + coinbase payment to refund. A payout transaction transferring the refund amount will be appended immediately following the bundle in the same block. The cost of the payout transaction is deducted from the overall refund.
refundRecipientAn address that the funds from refundPercent will be transferred to in the payout transaction. If not specified, they will be sent to the from address of the first transaction.

BuilderNet now also supports bundle cancellations with eth_sendBundle. To cancel a bundle, send a new eth_sendBundle request with the same replacementUuid and an empty list of transactions. This matches the standard behavior supported by Beaverbuild and Titan.

info

See the BuilderNet API Reference for more information and details.

Improved cancellations

In addition to these API-level changes, BuilderNet v1.3 also makes several upgrades to the performance and reliability of bundle cancellations. To ensure cancellations are correctly processed, v1.3 adds support for block level cancellations on MEV-Boost relays and continues bidding even when the block value decreases. To reduce the latency for processing cancellations, BuilderNet nodes now submit only to regional relays (shaving off an estimated ~50ms in network latency). We have also introduced a time limit to prevent slower bundle merging strategies from arbitrarily delaying cancellations, and an initial set of spam prevention techniques to reduce the load on the builder. The latter drove a 2x decrease in p99 e2e latency.

e2e latency improvement

Together we expect these changes will make BuilderNet a much better venue for users that require fast updates to their bundles.

Additional end-to-end latency metrics

rbuilder now includes additional e2e latency Prometheus metrics.

Here’s an screenshot of p99 e2e latency over a couple of days:

e2e p99 metrics

Prometheus metrics can be sent to multiple endpoints

The v1.3 release supports multi-endpoint support for Prometheus metrics, allowing builder nodes to send monitoring data to multiple destinations simultaneously.

rbuilder on/off switch to simplify deployments

The rbuilder on/off switch feature introduces a new configuration option that allows operators to safely control the builder's participation in block building. This switch can be toggled without requiring a full restart, making it particularly useful during maintenance windows, upgrades, or when troubleshooting issues.

When turned off, the rbuilder gracefully stops accepting new bundles and participating in block building, while maintaining its connection to the network. This enables smooth transitions during deployments and provides an additional safety mechanism for operators.

Configurable merging algorithms

This release enables the dynamic configuration of merging algorithms, instead of requiring a new BuilderNet version release to change them.

Local devnet environment support

BuilderNet release images are now capable of running in a local devnet mode. This allows developers to test and develop locally without needing to deploy on the main BuilderNet network. Specifially noteworthy improvements include:

The local devnet is based on this Builder Playground PR: https://github.com/flashbots/builder-playground/pull/101

We are actively working on the local devnet and expect to have more news around this soon.


Versions

The reproducible build toolchain for BuilderNet v1.3 is based on [email protected] (commit 05638f3).

ProjectNew VersionCommit
rbuilder-operatorv1.0.1 (prev v0.1.5)43b7902
orderflow-proxyv0.3.3 (prev v0.2.6)7c84264
CVM Proxyv0.1.6 (prev: v0.1.0)8e5c9a1
Operator APIno change, still v0.7.0a8296e4
Rethno change, still v1.0.8
Lighthouseno change, still v5.3.0
HAProxyno change, still v3.0.6

Changes & Pull Requests

ProjectChanges
rbuilder / rbuilder-operatorv0.1.5...v1.0.1 (83 PRs)
orderflow-proxyv0.2.6...v0.3.3 (24 PRs)
cvm-reverse-proxyv0.1.0...v0.1.6 (13 PRs)

Services Configuration

ServiceConfiguration
Operator APImeta-confidential-compute@d8bcb39
HAProxymeta-evm@bd51f7e
Lighthousemeta-evm@bd51f7e
Orderflow Proxymeta-evm@bd51f7e
Rbuildermeta-evm@bd51f7e
Rethmeta-evm@bd51f7e

Artifacts

Signed artifacts are stored at https://builder-artifacts.flashbots.net/buildernet-images/.

The specific TDX VM image for the BuilderNet v1.3 release is buildernet-v1.3.0-azure-tdx-d17a02695c1acc0800aff80e86efbe0e5919843184e6562d8d572894ab43d149

Measurements

These are the new live measurements for BuilderNet v1.3.0:

{
"measurement_id": "buildernet-v1.3.0-azure-tdx-d17a02695c1acc0800aff80e86efbe0e5919843184e6562d8d572894ab43d149.wic.vhd",
"attestation_type": "azure-tdx",
"measurements": {
"4": {
"expected": "966f0aa4b6f6952e601712cfe78f71a6ae61467a425a92d0800c754e98933d78"
},
"9": {
"expected": "af03ec5b7f02f5b9779f04bc837b8cbbf85d5b0386d5f387d8b99e8f0d9a1fa4"
},
"11": {
"expected": "3aede0e78b33f4197175b73468be54f168a46719c063b7c4f27c10984e614b38"
}
}
}

Reproducible Builds

BuilderNet v1.3 supports fully reproducible TDX image builds. The image you build will produce the exact same TDX measurements as our reference builds.

The main entry point for the image builds is the flashbots/yocto-manifests repository, and for this release specifically the [email protected] (commit 05638f3).

To reproducibly build it, clone the repository, check out the tag and build it with Docker/Podman:

git clone https://github.com/flashbots/yocto-manifests.git
cd yocto-manifests
git checkout v1.3.0
make image-buildernet

You can confirm that the hash of your build matches the expected one:

make measurements-buildernet

Build host specs:

  • Ubuntu 22.04 x64 (Linux kernel 6.8.0-49-generic), fully updated system
  • Intel Xeon Gold 6312U, 48vCPUs, 512GB memory

Join the conversation on the BuilderNet forum and the BuilderNet Telegram group!