This repository contains the artifact accompanying "Boost+: Equitable, Incentive-Compatible Block Building," accepted at the Network and Distributed System Security (NDSS) Symposium 2027.
The artifact provides a self-contained Docker Compose environment for the paper's block-building experiments. It runs a private proof-of-stake Ethereum chain -- Reth, Lighthouse, a local mev-boost-relay, mev-boost, and rbuilder (Boost+ fork, branch boost+) -- generates deterministic order flow, and replays the resulting blocks through rbuilder's block-building algorithms offline.
Use QUICKSTART.md if you do not have a local archive Reth node or historical order-flow dataset. It starts a self-contained private devnet and deterministic workload so the artifact can be validated end to end without external chain data. The workflow covers machine checks, bounded block generation, replay, algorithm comparison and cleanup, with expected output and time estimates.
The entry point for this self-contained path is:
make up STOP_AT_BLOCK=100On a fresh chain, it generates the reviewer dataset, stops block production at height 100, and keeps the replay services online. The Quick Start then selects a block reported by make candidates and backtests it with all four algorithms.
Evaluators with a real archive Reth can skip this repository's Reth, Lighthouse, relay and workload containers and run only the rbuilder image's historical tools. This mode compares Boost+ default with the three rbuilder baselines using real-world historical transactions from Mempool Dumpster rather than the synthetic workload used by the local devnet. This requires a matching Reth v2.2.0 datadir (or snapshot), the archive HTTP RPC, and historical order flow. An RPC URL by itself is not enough because backtest-build-block opens the Reth database directly.
Build only the image with docker compose build rbuilder. Then follow upstream rbuilder's historical backtest workflow: run backtest-fetch for the target block to populate the input store from Mempool Dumpster, then run backtest-build-block against the mounted archive datadir. docs/EXTERNAL-RETH.md provides the example TOML and exact one-shot Docker commands for both steps.
Do not use docker compose up rbuilder for this mode; that service is intentionally coupled to the local devnet.
make down # stop, keep the chain
make clean # DELETE the chain and all experiment data (asks first)make clean creates a new genesis next time, so block numbers and hashes will not match earlier runs and previously recorded experiments become unreplayable. Copy anything you care about out first:
docker compose cp experiment-recorder:/experiments ./experiments-backupThe default builder shipped with this artifact implements the paper's default algorithm, including the graph-based optimization discussed in Appendix D-B. For large conflict groups, it constructs an order-interaction graph, selects a deterministic seed set, decomposes the residual graph into independent connected components, and solves them recursively.
The relevant implementation path is:
DefaultBuilderconfiguration and dispatch- Boost+ backtest entry point
- Core recursive default algorithm
- Recursive decomposition and seed selection
make backtest BLOCK=N BUILDERS="default" exercises this implementation.
| Document | Contents |
|---|---|
docs/EXTERNAL-RETH.md |
Run only rbuilder against a matching archive Reth snapshot or same-host node; required state/order inputs, commands, and live-mode boundary |
docs/CUSTOM-ALGORITHM.md |
Optional: build a pinned rbuilder fork and compare a new algorithm on the same captured block |
docs/ARCHITECTURE.md |
Service topology, slot-by-slot block production, pinned versions and compatibility assumptions, service ports, repository layout |
docs/ORDERFLOW.md |
Submitting transactions and bundles, replaceable bundles and cancellations, what the mev_sendBundle adapter translates and rejects |
docs/REFERENCE.md |
Every test account, key and secret, and which component uses it |
QUICKSTART.md |
Reviewer walkthrough: preflight, build, verify, replay, clean up |
make help lists every target.
TEST-ONLY CREDENTIALS. Every private key, mnemonic, BLS secret, and JWT in this repository is public and well known. Never use them on a network that holds value.
If you use Boost+ in academic work, please cite:
@inproceedings{zhang2027boost+,
title={{Boost+: Equitable, Incentive-Compatible Block Building}},
author={Zhang, Mengqian and Yang, Sen and Nayak, Kartik and Zhang, Fan},
booktitle={Proceedings of the Network and Distributed System Security Symposium (NDSS)},
year={2027}
}The artifact is released under the MIT License © 2026 Decentralized Systems Group at Yale, except for third-party components. These components, including rbuilder, Reth, Lighthouse, mev-boost, mev-boost-relay, and the genesis generator, are fetched at pinned versions and remain under their respective licenses.
