freecoding.school100% FREE · NO SIGNUP
The EVM CoreISSUE #12 of 48

history expiry · eip-4444 · the purge

SoliaVSThe Reentrancy Reaper
Solia saysEIP-4444 lets execution clients drop historical blocks older than ~1 year — old data lives on the portal network — keeping the node footprint flat as the chain grows.

Ethereum history grows endlessly: every block ever produced sits on every full node by default. EIP-4444 proposes that execution clients expire history older than one year, dropping those blocks from disk. State and recent history stay; ancient blocks are served by archival nodes and the decentralized portal network.

The result is a runnable node footprint that stays roughly flat instead of growing ~80 GB per year. Anyone who needs old data can fetch it from peers that opt in to serving it. The demo projects disk usage with and without history expiry over a decade.

Power-ups you unlock

The Reentrancy Reaper attacks — common mistakes

Boss battleProject disk usage over 10 years with and without EIP-4444 history expiry, given ~80 GB/year growth.

Example code

<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre id="o"></pre>
<script>
const GB_PER_YEAR = 80;
const YEARS = 10;
const rows = [];
for(let y = 1; y <= YEARS; y++){
  const noExpiry = GB_PER_YEAR * y;
  const withExpiry = Math.min(GB_PER_YEAR, GB_PER_YEAR * y);
  rows.push('  year ' + String(y).padStart(2) + '  no expiry: ' + String(noExpiry).padStart(3) + ' GB   with EIP-4444: ' + String(withExpiry).padStart(3) + ' GB');
}
const noExp = GB_PER_YEAR * YEARS;
const expSaving = noExp - GB_PER_YEAR;
document.getElementById('o').textContent = [
  'chain history grows ~' + GB_PER_YEAR + ' GB / year',
  '',
  ...rows,
  '',
  'savings after ' + YEARS + ' years: ' + expSaving + ' GB → light, runnable nodes',
  'old blocks remain available via portal network / archive nodes'
].join('\n');
</script></body></html>
▶ Open the interactive comic issue
‹ Statelessness · The Verkle TransitionEvm Internals · Stack · Memory · Storage · Calldata ›