Rundler v0.8.0
Summary
Major Features
Remove mempool shards
- Removes mempool shards and replaces them with a builder-to-sender assigner.
- The assigner class is responsible for retrieving UOs from the pool, managing builder locks, and assigning UOs to builders.
- This is built to avoid two builders trying to bundle a UO for the same sender at the same time as this can cause onchain reverts.
Minor Features
- Global fee estimator with cache to reduce RPC calls
- More latency metrics for gas estimation
- Skip bundle simulation or only run the validation portion under certain conditions
- EIP-7623 handling
- Remove paymaster during call gas estimation
Bug Fixes
- Fix sender balance tracking
- Fix UO receipt extra logs
- Reset chain tracker after max retries
- Use max bundle gas for max call gas during estimation
- Fix underpriced bundle transaction handling
- Ensure multicall3 is deployed before sending value
BREAKING CHANGES
- Mempool shard support has been removed. This means that builder servers and mempool servers can only be deployed 1:1 as there is no way to share the assigner class across builder servers. If anyone has a use case for multiple builder servers they can look into building a distributed locking mechanism for the assigner.
Binaries
The binaries are signed with the PGP key: 85C5 DEF0 37D3 FDE4 FC17 94B1 475B 35EA 9352 EB2
System | Architecture | Binary | PGP Signature |
---|---|---|---|
x86_64 | rundler-v0.8.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | rundler-v0.8.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | rundler-v0.8.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | rundler-v0.8.0-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | v0.8.0 |
What's Changed
- chore(ci): update spec tests, add docker caching and log archive by @dancoombs in #1115
- feat: remove mempool shards and add builder sender assigner by @dancoombs in #1105
- fix(builder): fix sender balance tracking to capture funding events by @dancoombs in #1106
- feat: move fee estimator to providers and add global cache by @dancoombs in #1109
- feat: add more latency metrics by @dancoombs in #1110
- feat(builder): for v0.7+ only run the validation portion during bundle sim by @dancoombs in #1111
- fix(rpc): fix uo receipt log indexing by @dancoombs in #1113
- fix(pool): reset chain tracker after max retry attempts by @dancoombs in #1117
- fix(sim): use max bundle gas for max call gas during estimation by @dancoombs in #1118
- fix(builder): fix underpriced handling in transaction tracker by @dancoombs in #1119
- fix(builder): abandon tracker and release all when no ops by @dancoombs in #1120
- chore: remove spammy warn, default bundle interval to 1s by @dancoombs in #1121
- chore(builder): add logs about bundle gas limit reasons by @dancoombs in #1122
- fix(types): fix v0.7 required uo overhead calc by @dancoombs in #1123
- feat(cli): make signer count optional in admin cli by @dancoombs in #1124
- feat(pool): add a metric for block discovery delay time by @dancoombs in #1125
- fix(signer): ensure multicall3 is deployed before sending value by @dancoombs in #1127
- feat: add more metrics for chain sync times by @dancoombs in #1129
- feat: add handling for eip-7623 in builder and pvg calc by @dancoombs in #1126
- feat: remove paymaster during call gas estimation by @dancoombs in #1130
- fix(sim): fix sim fallback to only happen when there is an unknown error by @dancoombs in #1133
- fix(pool): fix check and error for verification gas limit eff by @dancoombs in #1131
- chore(ci): fix libxml2-utils install by @dancoombs in #1135
- chore(deps): bump ring from 0.17.8 to 0.17.14 by @dependabot in #1132
- chore: release v0.8 by @dancoombs in #1136
Full Changelog: v0.7.3...v0.8.0