or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
EraE specification
Specification
The format can be summarized with the following expression:
Each basic element is its own e2store entry:
A few notes on individual elements:
CompressedReceipts
is optional and a different format than the consensus EIP-2718 format to optimize internal use in clients.Proof
is optional but if included, provides the coresponding proof for eachCompressedHeader
in the file corresponding to the Portal Network proofs specification[1]. It's possible to have multiple proof types in the same file at fork boundaries.TotalDifficulty
is optional and little-endian encoded.AccumulatorRoot
is optional and only defined for epochs with pre-merge data.HeaderRecord
is defined in the Portal Network specification[2].other-entries
is a placeholder for other potential objects to be added to EraE.BlockIndex
stores relative offsets to the components of each block entry. This allowsO(1)
access to all components of a block. The format is:Where
indexes
represents the index of each block component:The value
component-count
is the number of indexes stored byindexes
. It should be in the range of 3-5, depending on whetherTotalyDifficulty
andProofs
are presentAll values in the block index are little-endian
uint64
.starting-number
is the first block number in the archive. Every index is a defined relative to index's location in the file. The total number of block entries in the file is recorded in count.Due to the accumulator size limit of 8192, the maximum number of blocks in an Era batch is also 8192. This is also the value of
SLOTS_PER_HISTORICAL_ROOT
[3] on the Beacon chain, so it is nice to align on the value.Merge transition
There are some small differences between pre-merge and post-merge
eraE
files:TotalDifficulty
should only be encoded foreraE
files pre-merge. For the epoch where the merge occurs, fill all remaining post-merge blocks with the final total difficulty of the chain.AccumulatorRoot
should only be encoded foreraE
files pre-merge. For the epoch where the merge occurs, compute the root for an incomplete epoch where only pre-merge blocks are recorded in the accumulator.https://github.com/ethereum/portal-network-specs/blob/master/history/history-network.md#block-header ↩︎
https://github.com/ethereum/portal-network-specs/blob/master/history/history-network.md#the-historical-hashes-accumulator ↩︎
https://github.com/ethereum/consensus-specs/blob/44ae6e661d9beac383f4a1f33be74259bae93c85/presets/mainnet/phase0.yaml#L42 ↩︎