Skip to main content

Operating system, services and reproducible builds

The software for nodes in the network is distributed as self-contained TEE VM images.

These images contain a minimal operating system based on Yocto with a verifiable boot chain, and all the required services. The operating system and all components support fully reproducible builds.


Key Services

These are the main services running inside an instance:

RepositoryDescription
github.com/flashbots/rbuilderThe block building software
github.com/sigp/lighthouseCL client
github.com/paradigmxyz/reth/EL client
github.com/flashbots/system-apiInterface between operators and services inside the TDX instance
github.com/flashbots/cvm-reverse-proxyFor verifying TDX measurements using attestations
github.com/flashbots/tdx-orderflow-proxyReceiving and multiplexing orderflow

Additional software that runs inside the TDX instance includes cron, time synchronization, utilities for mounting the encrypted disk and a Reth database downloader (for fast chain syncs).

note

Testnet as well as initial boostrap nodes will have additional software, such as Prometheus and Fluentbit to export logs and metrics, as well as SSH for direct debug access.


Boot sequence

This diagram shows the builder node boot sequence, services and data flows:


Orderflow Proxy

Orderflow Proxy is a key service running inside TDX (and also in the Flashbots infra). It's main responsibilities are:

  1. Receiving orderflow from peers and Flashbots.
  2. Receiving orderflow directly (from users, wallets, operators, etc).
    1. Multiplexing it to all other builder nodes.
    2. Sending it to the Redistribution Archive.
  3. Forwarding orderflow to the builder service.

TLS certificate and signing key

On startup, it creates a local TLS certificate and ECDSA key, and registers them at BuilderHub.

This allows builder nodes to know the certificates of all other builder nodes, and send orderflow only if the TLS private key matches the certificate (maintaining end-to-end confidentiality).


Block Builder Software

Currently, all block building nodes are based on Flashbots rbuilder software, a highly performant Ethereum L1 and L2 block building software based on Rust and Reth.

This rbuilder instance makes use of a local bidding service which uses confidential logic. This bidding service is downloaded and run as a private binary, pinned to a particular version. The private bidding code is necessary to avoid other builders outbidding BuilderNet if they'd have full visibility of the bidding logic.


Reproducible Builds

BuilderNet node TDX VM images can be fully reproducibly built. The overall build process is based on Yocto: https://www.yoctoproject.org

The Yocto Project (YP) is an open source collaboration project that helps developers create custom Linux-based systems regardless of the hardware architecture.

The main build process is defined in these manifests: https://github.com/flashbots/yocto-manifests.

To get started, follow the “Getting Started” instructions in the yocto-manifests README.