Important
This release contains breaking changes and requires action. Please refer to the migration guide for any details!
New Features
Firewall delegation
Firewall delegation allows proposers to set an external third party as their network entrypoint or firewall. It gets rid of the
requirement to expose an HTTP RPC endpoint for accepting inclusion requests (inbound), and instead subscribes to the configured firewall over a
websocket connection (outbound). The firewall will then stream valid, filtered inclusion requests over the websocket connection.
Some of the other duties of the firewall include:
- Spam and DoS prevention
- Pricing inclusion requests correctly (see more below)
- Communicating prices with consumers (wallets, users)
Currently, we operate a firewall RPC on Holesky at wss://rpc-holesky.bolt.chainbound.io/api/v1/firewall_stream
.
Read more about firewall delegation here.
New pricing model
This new release also comes with an upgraded, dynamic pricing model that's based on joint research by Nethermind and Chainbound.
The model is described in this post. In short,
it provides an estimate for the floor price an inclusion preconfirmation MUST have so that the proposer has a very minimal chance of
losing revenue by committing to it.
Our model varies slightly from the original description due to implementation details, which we'll cover in another document. Additionally,
the bolt-sidecar allows proposers to configure a minimum profit parameter that is added to the floor price in order to arrive at a total
priority fee.
Check out all release notes here.
What's Changed
- fix(sidecar): discard inclusion requests for past slots by @mempirate in #606
- fix: build bolt-boost with ssz compat version updated by @merklefruit in #619
- Faheelsattar/remove expiry flag by @faheelsattar in #620
- feat(bolt-sidecar): add config for retry function by @estensen in #630
- feat(builder-api): more descriptive logs by @mempirate in #631
- docs(holesky): add bn configurations for local blocks by @mempirate in #643
- feat(cli): add command to output a compressed pubkey hash by @merklefruit in #644
- feat(bolt-sidecar): use pricing model to validate priority fee by @estensen in #599
- feat(sidecar): firewall delegation by @thedevbirb in #552
- chore(sidecar): update reth to v1.1.5 by @merklefruit in #650
- feat(bolt-sidecar): add version to metadata endpoint by @estensen in #649
- chore(sidecar): bump version to v0.4.0-alpha.rc1 by @thedevbirb in #652
- chore(bolt-sidecar): remove BOLT_SIDECAR_MAX_COMMITMENTS_PER_SLOT by @estensen in #653
- chore: bump rust version everywhere by @thedevbirb in #654
- Feature flag to exclude high compute
test_keystore_signer
tests by @0ex-d in #655 - Tests run on public testnet for quicker CI/CD by @0ex-d in #661
- Chore: Bolt-CLI: Use library for confirmation logic by @0ex-d in #674
- Chore: Bolt-CLI: exhaustive err match on inquire Error by @0ex-d in #675
- fix(sidecar): JSON-RPC error codes by @thedevbirb in #658
- chore(sidecar): add TLS provider by @thedevbirb in #678
- chore(docker/holesky): cleanup docker compose files by @thedevbirb in #657
- fix(testnets/holesky): pbs bn startup by @mempirate in #679
- chore(bolt-sidecar): log unexpected websocket messages by @estensen in #680
- chore(bolt-sidecar): add params in err message by @faheelsattar in #660
- fix(sidecar): ping messages were not sent by @thedevbirb in #683
- chore(sidecar, holesky): update example environment variables files by @thedevbirb in #685
- feat(contracts):
BoltManagerV3
by @merklefruit in #551 - docs(holesky): add v0.4.0-alpha migration guide by @mempirate in #686
- feat(cli): bump to v0.1.2 by @mempirate in #690
- chore(bolt-boost): bump commit-boost-client to v0.5.0 by @estensen in #682
- ci: docker build cmd wip by @mempirate in #694
- ci: docker build cmd wip by @mempirate in #695
- fix(holesky): cb config + bump images for release by @thedevbirb in #691
- fix(sidecar): flaky head tracker test by @mempirate in #699
- chore(deps): bump tracing from 0.1.40 to 0.1.41 in /bolt-boost by @dependabot in #609
- chore(deps): bump serde_json from 1.0.133 to 1.0.134 in /bolt-boost by @dependabot in #611
- chore(deps): bump serde_json from 1.0.133 to 1.0.134 in /bolt-sidecar by @dependabot in #615
- chore(deps): bump tree_hash from 0.8.0 to 0.9.0 in /bolt-sidecar by @dependabot in #616
- chore(deps): bump alloy from 0.8.0 to 0.8.3 in /bolt-boost by @dependabot in #607
- chore(deps): bump alloy from 0.8.0 to 0.8.3 in /bolt-sidecar by @dependabot in #614
- chore(repo): use custom taplo configs to format TOML by @merklefruit in #617
- chore(deps): bump alloy from 0.7.3 to 0.8.3 in /bolt-cli by @dependabot in #612
- chore(deps): bump types from v5.3.0 to v6.0.1 in /bolt-boost by @dependabot in #608
- chore(deps): bump serde_json from 1.0.133 to 1.0.134 in /bolt-cli by @dependabot in #613
- chore(deps): bump serde from 1.0.216 to 1.0.217 in /bolt-sidecar by @dependabot in #627
- chore(deps): bump serde from 1.0.216 to 1.0.217 in /bolt-boost by @dependabot in #623
- chore(deps): bump thiserror from 2.0.7 to 2.0.9 in /bolt-boost by @dependabot in #621
- chore(deps): bump thiserror from 2.0.7 to 2.0.9 in /bolt-sidecar by @dependabot in #629
- chore(deps): bump alloy-node-bindings from 0.8.0 to 0.8.3 in /bolt-sidecar by @dependabot in #628
- chore(deps): bump tracing-subscriber from 0.3.18 to 0.3.19 in /bolt-boost by @dependabot in #622
- chore(deps): bump thiserror from 2.0.7 to 2.0.9 in /bolt-cli by @dependabot in #626
- chore(deps): bump serde from 1.0.216 to 1.0.217 in /bolt-cli by @dependabot in #624
- fix: add symbiotic opt in scripts by @merklefruit in #558
- chore(deps): bump alloy-node-bindings from 0.7.2 to 0.8.3 in /bolt-cli by @dependabot in #625
- chore(deps): bump async-trait from 0.1.83 to 0.1.84 in /bolt-boost by @dependabot in #633
- chore(deps): bump rustls from 0.23.19 to 0.23.20 in /bolt-cli by @dependabot in #637
- chore(deps): bump async-trait from 0.1.83 to 0.1.84 in /bolt-sidecar by @dependabot in #639
- chore(deps): bump prost from 0.13.3 to 0.13.4 in /bolt-cli by @dependabot in #636
- chore(deps): bump axum-extra from 0.9.6 to 0.10.0 in /bolt-boost by @dependabot in #635
- chore(deps): bump alloy from 0.8.3 to 0.9.2 in /bolt-cli by @dependabot in #638
- chore(deps): bump alloy from 0.8.3 to 0.9.2 in /bolt-sidecar by @dependabot in #640
- chore(deps): bump axum-extra from 0.9.6 to 0.10.0 in /bolt-sidecar by @dependabot in #641
- chore(deps): bump tokio from 1.42.0 to 1.43.0 in /bolt-sidecar by @dependabot in #672
- chore(deps): bump serde_json from 1.0.134 to 1.0.135 in /bolt-cli by @dependabot in #668
- chore(deps): bump async-trait from 0.1.84 to 0.1.85 in /bolt-boost by @dependabot in #662
- chore(deps): bump ethereum_ssz from 0.8.1 to 0.8.2 in /bolt-sidecar by @dependabot in #669
- chore(deps): bump ethereum_ssz from 0.8.1 to 0.8.2 in /bolt-boost by @dependabot in #664
- chore(deps): bump tokio from 1.42.0 to 1.43.0 in /bolt-cli by @dependabot in #667
- chore(deps): bump serde_json from 1.0.134 to 1.0.135 in /bolt-boost by @dependabot in #665
- chore(deps): bump async-trait from 0.1.84 to 0.1.85 in /bolt-sidecar by @dependabot in #670
- chore(deps): bump tokio from 1.42.0 to 1.43.0 in /bolt-boost by @dependabot in #663
- chore(deps): bump serde_json from 1.0.134 to 1.0.135 in /bolt-sidecar by @dependabot in #671
New Contributors
- @faheelsattar made their first contribution in #620
- @0ex-d made their first contribution in #655
Full Changelog: v0.3.1-alpha...v0.4.0-alpha