github morph-l2/morph-reth v1.2.0

5 hours ago

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.gaslimit are 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's CalcGasLimit. The target is clamped to the protocol minimum gas limit, so a low value cannot ramp the header below what header validation accepts. Explicit payload gas_limit overrides 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 from release.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 maxTxPayloadBytesPerBlock in ValidateBody. 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

Don't miss a new morph-reth release

NewReleases is sending notifications on new releases.