Releases: flashbots/builder-playground
v0.3.2-alpha.7
Highlights
- Enabling env vars for host processes
- Bootnode discovery fix
- Buildernet recipe fixes
- Kubernetes manifest generation for recipes (experimental)
What's Changed
- feat: make buildernet vm data disk size configurable with env var by @fkondej in #392
- feat: set default BUILDERNET_IMAGE to url and add readyz.sh helper script by @fkondej in #393
- chore: update buildernet image to latest release by @fkondej in #394
- fix: apply default healthcheck intervals for readycheck sidecars by @dvush in #397
- Support predeploys from custom recipe by @canercidam in #400
- feat: enable envs for host process by @julio4 in #398
- fix: improve discovery via bootnode by @dvush in #395
- Remove post-hook feature and move post-hook to mkosi recipe by @canercidam in #402
- Generate k8s manifests for recipes by @canercidam in #404
- Run setup commands before image checks by @canercidam in #405
Full Changelog: v0.3.2-alpha.6...v0.3.2-alpha.7
v0.3.2-alpha.6
What's Changed
- fix: display extra data as text instead of hex in test output by @fkondej in #387
- Hiding custom recipes by @canercidam in #390
- Improve buildernet/mkosi readme by @fkondej in #388
- feat: re-add daemonize to start.sh and loop waiting for ./readyz by @fkondej in #391
Full Changelog: v0.3.2-alpha.5...v0.3.2-alpha.6
v0.3.2-alpha.5
Highlights
- BuilderNet recipe improvements
- New installation script
What's Changed
- lighthouse 8.0.0-rc2 -> 8.1.0 by @julio4 in #380
- feat: preserve dir structure for custom recipes by @fkondej in #383
- Add install.sh for easy installation and recommend in README.md by @canercidam in #384
- Fix installation explanation by @canercidam in #385
- feat: small improvements to BuilderNet recipe by @fkondej in #386
Full Changelog: v0.3.2-alpha.4...v0.3.2-alpha.5
v0.3.2-alpha.4
Highlights
testcommand improvements (retries, better timeout handling, insecure with TLS, FlowProxy support)- Stronger session isolation (ports, dirs, networks) and ability to run multiple playground sessions in parallel
- Improved E2E testing (thanks to above)
- Custom recipe improvements (
setupcommands, port override,host_pathresolution) - New bootnode component
What's Changed
- Add workflow to run the playground action with dispatch by @canercidam in #372
- Use always absolute output path by @ferranbt in #344
- Add bootnode component by @ferranbt in #327
- Tests for validating recipes by @canercidam in #373
- feat: add --insecure to test cmd by @fkondej in #375
- feat: add HAProxy and FlowProxy config to BuilderHub and forward HAProxy ports from buildernet VM by @fkondej in #376
- Stronger session isolation and faster E2E tests with parallelization by @canercidam in #374
- feat: add headers required by FlowProxy to test command by @fkondej in #378
- Improve custom recipe experience and testing by @canercidam in #379
Full Changelog: v0.3.2-alpha.3...v0.3.2-alpha.4
v0.3.2-alpha.3
Highlights
- Fixes for the
buildernet/mkosirecipe - Avoiding rbuilder failures with latest changes
- Mentioning the new GitHub action in the README
- Fixing version injection
What's Changed
- README: add info about CI / GitHub action by @metachris in #368
- Make rbuilder depend on beacon to avoid failures by @canercidam in #369
- Add attested-tls-proxy to buildernet/mkosi recipe by @canercidam in #367
- fix: instance name in builderhub config by @fkondej in #371
- Fix build version injection by @canercidam in #370
Full Changelog: v0.3.2-alpha.2...v0.3.2-alpha.3
v0.3.2-alpha.2
Highlights
- New recipe
buildernet/mkosifor running the complete stack locally (partially completed) - Custom recipe feature improvements
- New
lifecycle_hooksfeature (enables a new type of service) - Better flag configuration through custom recipes (base recipe flags, replacing service args)
- Recipe validation, adding CLI flags to custom recipes
- Three-interrupt forced shutdown
- Better log file handling
- New
- Stability and concurrency improvements in health checks and start-ups
What's Changed
- Add bootnode template, allow configuring base recipe flags through yaml. by @dvush in #347
- Add validate command for recipe pre-flight checks by @Ruteri in #352
- More forceful session stop on three interrupts by @Ruteri in #356
- CLI flags for custom recipes and graceful shutdown by @Ruteri in #353
- Improve YAML recipe parsing and host service support by @Ruteri in #350
- Add log file fallback for host services by @Ruteri in #351
- Wait for handle.Process to be set before attempting to kill on exits by @canercidam in #355
- Update CODEOWNERS by @canercidam in #361
- Use the directory hierarchy for including custom recipes in the CLI by @canercidam in #358
- Update rbuilder custom recipes by @canercidam in #359
- Start docker and host services concurrently by @canercidam in #364
- Flag replacement for custom recipes by @canercidam in #357
- Add mkosi flashbots-images VM to playground by @fkondej in #302
- Revert "Add mkosi flashbots-images VM to playground" by @canercidam in #365
- Add unified BuilderNet mkosi recipe by @canercidam in #366
New Contributors
Full Changelog: v0.3.2-alpha.1...v0.3.2-alpha.2
v0.3.2-alpha.1
builder-playground v0.3.2-alpha.1
Highlights
- Introducing Docker container based rbuilder component (works only on arm64 currently)
portsubcommand for querying service host ports
What's Changed
- Add port subcommand for querying service host ports by @dvush in #336
- Fix base-overlay entrypoint path: base-reth-node → base-client by @niran in #348
- CI: Restrict Claude Code triggers to users with write-access by @metachris in #349
- Integration tests for Rbuilder by @ferranbt in #335
Full Changelog: v0.3.1...v0.3.2-alpha.1
v0.3.1
builder-playground v0.3.1
Our biggest release yet — v0.3.1 brings faster startup times, new integrations across the Flashbots stack, improved observability, and an experimental recipe system that lets you customize your local environment without forking the repo. ⚡ 🤖
Highlights
- 🔌 New Integrations — Flashblocks RPC, mev-boost, contender, and bproxy support out of the box
- 🏗️ BuilderHub Support — Run the full BuilderNet stack locally (coming soon)
- ⚡ Faster Startup — Cached validator keys, preloaded BLS keystores, and improved restart handling
- 🔍 Better Observability — Custom health monitors for EL/CL, improved readiness checks, and structured logging with slog
- 🎮 Session Management — Friendly pet names for sessions, commands to browse services and tail logs
- 🤖 GitHub Claude Integration — AI-assisted development workflow
- 🧪 Custom Recipes (Experimental) — New YAML-based recipe overrides let you modify base recipes, change parameters, and add external components from a single definition file
🧪 Custom Recipes (Experimental)
This release introduces a new YAML-based recipe override system. Define your customizations in a single file and run any recipe with modified parameters or additional components:
builder-playground start my-custom-recipe.yamlCheck out the Custom Recipes documentation to get started.
Note: This feature is experimental. We're actively improving it based on feedback — please open an issue if you run into problems or have feature requests!
🔌 New Integrations
| Component | Description |
|---|---|
| Flashblocks RPC | Stream pre-confirmation blocks |
| mev-boost | PBS relay integration for local testing |
| contender | Load testing and benchmarking |
| bproxy | WebSocket proxy support |
⚡ Performance & Reliability
- Faster startup — Validator keys and BLS keystores are now cached and preloaded
- Improved restarts — Signal-aware context handling and cleaner Docker cleanup
- Better readiness — Custom health monitors for execution and beacon clients with timeout handling
- Graceful shutdown — Proper cleanup of Docker resources across all session types
🎮 Developer Experience
- Friendly session names — Sessions now get memorable pet names instead of UUIDs
- Service browsing —
builder-playground serviceslists running components - Log streaming —
builder-playground logs <service>tails logs for any component - Debug graphs —
--debuggenerates a dot graph of your recipe architecture - Detached mode — Run playground in the background with
--detached - Prefunded accounts — Configure additional prefunded accounts for testing
- Custom L2 contracts —
--use-predeploysflag for custom L2 genesis contracts
📚 Documentation
- Auto-generated documentation for all recipes
- Guide for running rbuilder with playground
- Improved README with telemetry info and contender instructions
- Better inline help — running
builder-playgroundwithout args now shows help
Breaking Changes
None — this release is backwards compatible with v0.2.x configurations.
Get Started
Install one of the binary distributions from the release or do:
# Clone the repo
git clone https://github.com/flashbots/builder-playground.git
# Build and install playground
cd builder-playground
go install .
# Run it
builder-playground helpThen
# See available recipes
builder-playground recipes
# Run a recipe e.g. L1
builder-playground start l1Make sure to check out the README for more details!
Full Changelog (90+ PRs)
What's Changed
- Create LICENSE by @ferranbt in #171
- Enable revert protection on op-rbuilder by @ferranbt in #178
- Add bootnode by @ferranbt in #147
- Add Flashblocks rpc by @ferranbt in #179
- Add flashblocks url to cli by @SozinM in #180
- add mev-boost support by @faheelsattar in #184
- run contender by @zeroXbrock in #185
- add docs related to flag by @faheelsattar in #190
- feat: enable ws on native reth by @diyahir in #187
- Add bproxy and websocket proxy by @SozinM in #193
- add --contender.arg flag by @zeroXbrock in #195
- variable contender targets by @zeroXbrock in #196
- add contender flag info to readme by @zeroXbrock in #197
- feat: update services, closes #203 by @gpevnev in #207
- Update the chain configuration to match the keys in use so safe head can advance by @niran in #201
- chore: update images / base overlay by @danyalprout in #208
- feat: add network readiness by @gpevnev in #210
- ignore .DS_Store by @zeroXbrock in #209
- Make el client listens on all interfaces for P2P (instead of
127.0.0.1) by @maoueh in #220 - fix(ci/cd): use
macos-latestfor osx artifacts by @julio4 in #226 - refactor: use maps.Copy for cleaner map handling by @jishudashu in #189
- Unify components and recipes by @ferranbt in #227
- Add detached mode by @ferranbt in #214
- Add BuilderHub logical unit component by @ferranbt in #233
- Use context cancel in complete ready by @ferranbt in #237
- CI: use faster warpbuild runners by @metachris in #240
- chore: codeowners by @metachris in #242
- Add a signal-aware main context by @canercidam in #248
- Pull images in playground itself instead of docker-compose to have visibility on pull actions by @ferranbt in #232
- Update readme with telemetry info by @ferranbt in #249
- 'playground version' command, and better Makefile by @metachris in #245
- Add unit test for BuilderHub component by @ferranbt in #238
- docs: improved readme introduction paragraph by @metachris in #241
- Add unit tests for the rest of recipes by @ferranbt in #239
- format code, 'make lint' works now, and is run in CI by @metachris in #250
- Use config directly on runtime by @ferranbt in #251
- Do not return docker-compose output on ctx cancelled by @ferranbt in #252
- feat: add
chain-monitorby @julio4 in #225 - Improve restarts by @canercidam in #247
- Clean the docker runtime by @ferranbt in #254
- Enable changing l1 recipe default block time by @maoueh in #222
- add contender instructions to readme by @zeroXbrock in #253
- docs/contender instructions 2 by @zeroXbrock in #255
- Use human friendly random pet names for session ID by @canercidam in #256
- Generate debug dot graph before the validation by @ferranbt in #212
- Added possibility to have a secondary el on the host by @maoueh in #219
- Cleaning all or specific playground sessions by @canercidam in #258
- Commands to list services and output logs by @canercidam in #257
- Add trace timer by @ferranbt in #261
- Adding possibility to add more prefunded accounts by @maoueh in #221
- Move logic to functions in artifact generation by @ferranbt in #262
- A...
v0.3.0
builder-playground v0.3.0
Our biggest release yet — v0.3.0 brings faster startup times, new integrations across the Flashbots stack, improved observability, and an experimental recipe system that lets you customize your local environment without forking the repo. ⚡ 🤖
Highlights
- 🔌 New Integrations — Flashblocks RPC, mev-boost, contender, and bproxy support out of the box
- 🏗️ BuilderHub Support — Run the full BuilderNet stack locally (coming soon)
- ⚡ Faster Startup — Cached validator keys, preloaded BLS keystores, and improved restart handling
- 🔍 Better Observability — Custom health monitors for EL/CL, improved readiness checks, and structured logging with slog
- 🎮 Session Management — Friendly pet names for sessions, commands to browse services and tail logs
- 🤖 GitHub Claude Integration — AI-assisted development workflow
- 🧪 Custom Recipes (Experimental) — New YAML-based recipe overrides let you modify base recipes, change parameters, and add external components from a single definition file
🧪 Custom Recipes (Experimental)
This release introduces a new YAML-based recipe override system. Define your customizations in a single file and run any recipe with modified parameters or additional components:
builder-playground start my-custom-recipe.yamlCheck out the Custom Recipes documentation to get started.
Note: This feature is experimental. We're actively improving it based on feedback — please open an issue if you run into problems or have feature requests!
🔌 New Integrations
| Component | Description |
|---|---|
| Flashblocks RPC | Stream pre-confirmation blocks |
| mev-boost | PBS relay integration for local testing |
| contender | Load testing and benchmarking |
| bproxy | WebSocket proxy support |
⚡ Performance & Reliability
- Faster startup — Validator keys and BLS keystores are now cached and preloaded
- Improved restarts — Signal-aware context handling and cleaner Docker cleanup
- Better readiness — Custom health monitors for execution and beacon clients with timeout handling
- Graceful shutdown — Proper cleanup of Docker resources across all session types
🎮 Developer Experience
- Friendly session names — Sessions now get memorable pet names instead of UUIDs
- Service browsing —
builder-playground serviceslists running components - Log streaming —
builder-playground logs <service>tails logs for any component - Debug graphs —
--debuggenerates a dot graph of your recipe architecture - Detached mode — Run playground in the background with
--detached - Prefunded accounts — Configure additional prefunded accounts for testing
- Custom L2 contracts —
--use-predeploysflag for custom L2 genesis contracts
📚 Documentation
- Auto-generated documentation for all recipes
- Guide for running rbuilder with playground
- Improved README with telemetry info and contender instructions
- Better inline help — running
builder-playgroundwithout args now shows help
Breaking Changes
None — this release is backwards compatible with v0.2.x configurations.
Get Started
Install one of the binary distributions from the release or do:
# Clone the repo
git clone https://github.com/flashbots/builder-playground.git
# Build and install playground
cd builder-playground
go install .
# Run it
builder-playground help
Then
# See available recipes
builder-playground recipes
# Run a recipe e.g. L1
builder-playground start l1Make sure to check out the README for more details!
Full Changelog (90+ PRs)
What's Changed
- Create LICENSE by @ferranbt in #171
- Enable revert protection on op-rbuilder by @ferranbt in #178
- Add bootnode by @ferranbt in #147
- Add Flashblocks rpc by @ferranbt in #179
- Add flashblocks url to cli by @SozinM in #180
- add mev-boost support by @faheelsattar in #184
- run contender by @zeroXbrock in #185
- add docs related to flag by @faheelsattar in #190
- feat: enable ws on native reth by @diyahir in #187
- Add bproxy and websocket proxy by @SozinM in #193
- add --contender.arg flag by @zeroXbrock in #195
- variable contender targets by @zeroXbrock in #196
- add contender flag info to readme by @zeroXbrock in #197
- feat: update services, closes #203 by @gpevnev in #207
- Update the chain configuration to match the keys in use so safe head can advance by @niran in #201
- chore: update images / base overlay by @danyalprout in #208
- feat: add network readiness by @gpevnev in #210
- ignore .DS_Store by @zeroXbrock in #209
- Make el client listens on all interfaces for P2P (instead of
127.0.0.1) by @maoueh in #220 - fix(ci/cd): use
macos-latestfor osx artifacts by @julio4 in #226 - refactor: use maps.Copy for cleaner map handling by @jishudashu in #189
- Unify components and recipes by @ferranbt in #227
- Add detached mode by @ferranbt in #214
- Add BuilderHub logical unit component by @ferranbt in #233
- Use context cancel in complete ready by @ferranbt in #237
- CI: use faster warpbuild runners by @metachris in #240
- chore: codeowners by @metachris in #242
- Add a signal-aware main context by @canercidam in #248
- Pull images in playground itself instead of docker-compose to have visibility on pull actions by @ferranbt in #232
- Update readme with telemetry info by @ferranbt in #249
- 'playground version' command, and better Makefile by @metachris in #245
- Add unit test for BuilderHub component by @ferranbt in #238
- docs: improved readme introduction paragraph by @metachris in #241
- Add unit tests for the rest of recipes by @ferranbt in #239
- format code, 'make lint' works now, and is run in CI by @metachris in #250
- Use config directly on runtime by @ferranbt in #251
- Do not return docker-compose output on ctx cancelled by @ferranbt in #252
- feat: add
chain-monitorby @julio4 in #225 - Improve restarts by @canercidam in #247
- Clean the docker runtime by @ferranbt in #254
- Enable changing l1 recipe default block time by @maoueh in #222
- add contender instructions to readme by @zeroXbrock in #253
- docs/contender instructions 2 by @zeroXbrock in #255
- Use human friendly random pet names for session ID by @canercidam in #256
- Generate debug dot graph before the validation by @ferranbt in #212
- Added possibility to have a secondary el on the host by @maoueh in #219
- Cleaning all or specific playground sessions by @canercidam in #258
- Commands to list services and output logs by @canercidam in #257
- Add trace timer by @ferranbt in #261
- Adding possibility to add more prefunded accounts by @maoueh in #221
- Move logic to functions in artifact generation by @ferranbt in #262
- Add i...
v0.1.3-reth-1.4.8
Full Changelog: v0.1.3...v0.1.3-reth-1.4.8