Espresso's validators successfully upgraded mainnet yesterday, July 21. We're calling this the Epoch Rewards upgrade, since the major protocol change in this release is a revision of how rewards get distributed. It also strengthens network resilience and security and lowers the cost of running an Espresso node.
Here's a full breakdown:
Reward distribution moves from per-block to per-epoch cadence.
Removes reward computation and reward merkle tree updates from the per-block validation path, previously a throughput bottleneck when hitting a few thousand delegators.
Higher sustainable throughput; opens the door to further resource reductions in later releases. Reduces compute requirements for nodes.
The Espresso light client, which verifies Espresso’s consensus protocol, can now serve as a catchup provider. The light client verifies consensus certificates itself, so nodes can fetch historical data by block height without already knowing its hash.
The stake table contract now rejects invalid BLS and x25519 keys, and nodes tolerate invalid on-chain keys, hardening Espresso's stake table contracts.
Nodes now advertise their network identity and correctly drop peers from other networks. Peer discovery is more reliable and cross-network gossip bandwidth is eliminated.
Built-in telemetry reporting with process memory gauges. Simplifies configuration and maintenance burden for node operators, reducing cost.
Removal of historical data from the database no longer negatively affects consensus or query performance.
Repeated hashes, which uniquely identify transactions, blocks, and more, are stored once and referenced by id, shrinking the query node database, alongside broader query performance improvements that reduce compute costs.
Additional query performance improvements, reducing database compute requirements (cost) for query nodes.
Database reliability: automatic retry on transient Postgres errors, migration queries no longer stall busy nodes.
Memory soak testing to catch memory leaks before release.
Log hygiene: no raw merkle proofs or trees in logs, actionable network diagnostics, less noise. Reduces maintenance burden and cost for logs processing for operators, which can be substantial.
Binary upgrade tests to catch incompatibilities between version earlier. Reduces risk and maintenance burden when deploying software upgrades.
The code behind this upgrade is public. Review the GitHub repo, or check out the specific release branch.

