Summary
morph-reth v1.2.0 brings sequencer gas-limit ramping, a reworked per-block DA packing bound, and hardened block assembly around L1 messages, together with Docker runtime and dependency-security fixes.
Highlights
- Sequencer gasLimit ramping (#163) — reth's
--builder.gaslimit/--miner.gaslimitare now wired into Morph block assembly. Each new block moves toward the configured target by at most ~1/1024 of the parent gas limit, matching Ethereum'sCalcGasLimit. The target is clamped to the protocol minimum gas limit, so a low value cannot ramp the header below what header validation accepts. Explicit payloadgas_limitoverrides are unchanged, so derivation still imports headers as given. - Per-block DA packing cap reworked to 720 KiB (#160) — the leftover zkEVM packing knobs (per-block payload-size and tx-count caps read from genesis, plus their CLI flags) were removed, and a single 720 KiB per-block DA packing cap was kept in their place. The builder is otherwise bounded only by header gasLimit and the time budget.
- L1 message packing no longer fails assembly (#162) — matching morph-geth, assembly now includes the L1 messages that fit, stops packing the rest, and still returns a block. A single message larger than the whole block gas limit is deferred to a later height instead of failing assemble.
Notable Fixes
- Published Docker images run on Ubuntu 24.04 to match the cross-compiled glibc (#161).
- The Docker build context retains git metadata (#164).
- EC2 binaries are built without
x86-64-v3(#154). - Dependency advisories patched (
quinn-proto,serde_with), and release-workflow cache-poisoning alerts closed by dropping the build cache fromrelease.yml(#166).
Testing
Node E2E coverage was deepened to exercise failure recovery, reorg consistency, and independent block limits through real node boundaries (#171).
Breaking Changes & Upgrade Notes
- Removed CLI flags: the per-block payload-size and tx-count packing flags no longer exist. Remove them from your launch configuration before upgrading, or the node will reject the unknown arguments.
- Rollout order constraint: morph-geth still enforces
maxTxPayloadBytesPerBlockinValidateBody. Until that enforcement is removed on the geth side, the 720 KiB cap must remain compatible with it — coordinate the rollout across clients accordingly. - Sequencer operators: if you set
--builder.gaslimit, the header gas limit now ramps toward it gradually instead of jumping. Verify the resulting gas-limit trajectory on a testnet before production. - No intentional RPC or transaction-format breaking changes are included in this release.
All Changes
- chore: prepare v1.2.0 release (#173)
- test(node): deepen protocol behavior coverage (#171)
- chore(ci): bump taiki-e/install-action in the actions-weekly group (#172)
- chore(security): patch dependency advisories and close cache-poisoning alerts (#166)
- fix(docker): keep git metadata in build context (#164)
- fix(docker): run published images on Ubuntu 24.04 to match cross glibc (#161)
- fix: seal assemble when an L1 message exceeds remaining gas (#162)
- feat: ramp sequencer header gasLimit toward --builder.gaslimit (#163)
- refactor: raise per-block DA packing cap to 720 KiB (#160)
- chore(ci): bump taiki-e/install-action in the actions-weekly group (#165)
- fix(build): disable x86-64-v3 for EC2 binaries (#154)
- chore(ci): bump the actions-weekly group with 2 updates (#153)
Binaries
| System | Architecture | Binary |
|---|---|---|
| x86_64 | morph-reth-1.2.0-x86_64-linux.tar.gz | |
| aarch64 | morph-reth-1.2.0-aarch64-linux.tar.gz | |
| Docker | ghcr.io/morph-l2/morph-reth:v1.2.0 |