# Pre-merge execution data archival
Post-merge, archived ethereum data is available from the beacon chain via era files, since the execution payload is included in the consensus block.
Pre-merge, execution data is currently available only from the p2p network, in commonly consumable format. This proposal creates an encoding similar to
## Underlying spec
The framing in this proposal is based on the same framing as era files:
https://github.com/status-im/nimbus-eth2/blob/unstable/docs/e2store.md
## CompressedExecutionBlock
type: [0x03, 0x00]
data: snappyFramed(RlpExecutionBlock)
CompressedExecuionBlock contains the snappy-compressed Execution block, as encoded in the devp2p specification for syncing an Ethereum client.
TODO investigate headers vs bodies situation in p2p spec, potentially split into 2 types
## CompressedReceipts
type: [0x04, 0x00]
data: snappyFramed(RlpReceipts)
## Accumulator
type: [0x05, 0x00]
data: Digest
The SSZ root of the block hashes of each block in the file, see https://github.com/ethereum/portal-network-specs/blob/master/history-network.md#the-header-accumulator
> TODO total difficulty, why is it in the accumulator
## BlockIndex
Same as slot index but no zero values - see era spec
# Dump files
`dump` files are special instances of e2s files that contain chunks of the pre-merge history of Ethereum.
Each dump is identified by when it ends. Thus, the genesis dump is dump 0, followed by dump 1 which ends when slot 8192 has been processed.
# Structure
An .era file is structured in the following way:
```
era := group+
group := Version | block_tuple* | other-entries* | Accumulator | block-index(block)
block_tuple := CompressedExecutionBlock | CompressedReceipts
```
The block entries of a group include all blocks leading up to the era transition in slot order. For example, the group representing era 1 contains blocks from slot 0 up to and including ...