Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.9.0 #1453

Merged
merged 317 commits into from
Oct 28, 2019
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
317 commits
Select commit Hold shift + click to select a range
fe9fe8a
[WIP] add receipt processing to phase 1 beacon chain
vbuterin Jul 30, 2019
caadc0d
Update 1_beacon_chain_misc.md
vbuterin Jul 30, 2019
3f20aca
Added comments and ToC
vbuterin Jul 30, 2019
5dad213
Fixed up ToC
vbuterin Jul 30, 2019
fab37e7
Fixed position of Classes
vbuterin Jul 30, 2019
b9fddfe
Made code work with #1186
vbuterin Aug 1, 2019
a273d9e
minor rename of beacon chain misc to conform to other files
djrtwo Aug 1, 2019
2ae7323
use codeblock syntax for misc beacon updates
djrtwo Aug 1, 2019
6560bc4
Apply suggestions from code review
djrtwo Aug 1, 2019
0fa4491
lint
djrtwo Aug 1, 2019
7132778
Added compact committee class
vbuterin Aug 6, 2019
36a2283
Shard receipts cannot penalize withdrawn validators
vbuterin Aug 7, 2019
c5acddc
Enable it in CI
hwwhww Aug 11, 2019
4df372d
Merge branch 'dev' into vbuterin-patch-17
hwwhww Aug 11, 2019
01d58eb
Merge branch 'dev' into v082_backport
hwwhww Aug 11, 2019
13f6f18
Merge pull request #1326 from ethereum/vbuterin-patch-17
hwwhww Aug 11, 2019
a0b8e9b
Merge branch 'dev' into vbuterin-patch-13
hwwhww Aug 11, 2019
e4e6c4d
Fix the order of build spec
hwwhww Aug 11, 2019
40fbcd3
Merge branch 'dev' into v082_backport
hwwhww Aug 11, 2019
b345dc0
Legendre custody construction (#1305)
dankrad Aug 11, 2019
8ac5ea2
Merge pull request #1353 from mcdee/dev
hwwhww Aug 11, 2019
d84c902
Merge branch 'dev' into v082_backport
hwwhww Aug 11, 2019
469f3d8
Merge pull request #1355 from ethereum/v082_backport
djrtwo Aug 12, 2019
e23b378
Update specs/networking/p2p-interface.md
AgeManning Aug 12, 2019
c224af9
MAX_PERSISTENT_COMMITTEE_SIZE -> TARGET_PERSISTENT_COMMITTEE_SIZE
djrtwo Aug 13, 2019
8cf4544
Merge latest dev
AgeManning Aug 13, 2019
cb3e0f2
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 13, 2019
f9849ca
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 13, 2019
63564f1
Merge pull request #1358 from ethereum/phase1-var
djrtwo Aug 13, 2019
931c51c
Merge pull request #1350 from AgeManning/network-spec-corrections
djrtwo Aug 13, 2019
84558e0
Add summaries and expansions to simple-serialize.md
JustinDrake Aug 14, 2019
5d8c31c
Update specs/simple-serialize.md
djrtwo Aug 14, 2019
107c1b4
Merge pull request #1360 from ethereum/JustinDrake-patch-23
djrtwo Aug 14, 2019
0cf4545
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 14, 2019
4f92e7f
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 14, 2019
49a008d
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 14, 2019
d424863
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 14, 2019
fd24308
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 14, 2019
8255091
ShardReceipt -> ShardReceiptProof
vbuterin Aug 14, 2019
c7af249
Update specs/light_client/merkle_proofs.md
vbuterin Aug 14, 2019
72103e9
Update specs/light_client/merkle_proofs.md
vbuterin Aug 14, 2019
f9d703c
Merge pull request #1186 from ethereum/vbuterin-patch-3
protolambda Aug 14, 2019
722a694
Add `light_client/merkle_proofs.md` to executable stack. Errors revea…
hwwhww Aug 15, 2019
dc93391
Make flake8 check pass
hwwhww Aug 15, 2019
d88a83d
Fix most mypy errors
hwwhww Aug 15, 2019
0f52d46
Use the `get_previous_power_of_2` function in ethereum/eth2.0-specs#1323
hwwhww Aug 15, 2019
2741a5f
Minor fixes
hwwhww Aug 15, 2019
e4a18f6
Made persistent committee roots a vector
vbuterin Aug 15, 2019
8e1333a
Add `SSZVariableName` custom type
hwwhww Aug 15, 2019
bb0b5b0
Use `SSZVariableName` instead of `str`, and fix some mypy errors
hwwhww Aug 15, 2019
24e583d
add discord and add some external resources
djrtwo Aug 16, 2019
83566af
remove APIs and add links to outside spec/stnards repos
djrtwo Aug 16, 2019
35d89e2
merkle_proofs, simple-serialize, test_gen/README: update ToC
MrChico Aug 19, 2019
62d3759
Correct various typos
MrChico Aug 19, 2019
6722608
Add codespell whitelist
MrChico Aug 19, 2019
a843e9a
specs/ fix links
MrChico Aug 19, 2019
545b1fe
Merge pull request #1364 from ethereum/discord-readme
djrtwo Aug 19, 2019
75f5638
Update README.md
djrtwo Aug 19, 2019
c6d206e
Merge pull request #1368 from MrChico/housekeeping
djrtwo Aug 19, 2019
df6e531
Improve beacon proposer selection logic
JustinDrake Aug 20, 2019
663d43d
PR feedback, fix type hinting, add missing `Container.get_field_names…
hwwhww Aug 20, 2019
b22caeb
Add basic merkle proofs tests
hwwhww Aug 20, 2019
6577f15
Merge branch 'dev' into executable_merkle_proofs
hwwhww Aug 20, 2019
d6bbd9b
Add `BaseBytes` to cover `Bytes` and `BytesN`
hwwhww Aug 20, 2019
5fcfcac
Updated light client sync for newer committees (#1316)
vbuterin Aug 20, 2019
7409b5a
Add basic `test_verify_merkle_proof` and `test_verify_merkle_multipro…
hwwhww Aug 20, 2019
c1f2e92
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 23, 2019
bbaa238
Fix the definition of `GeneralizedIndex`
hwwhww Aug 23, 2019
5d2f34f
Merge pull request #1363 from ethereum/executable_merkle_proofs
protolambda Aug 23, 2019
1392c93
add GeneralizedIndex to custom types
djrtwo Aug 23, 2019
56954ec
fix adding fields to phase 1 ssz objects
djrtwo Aug 23, 2019
72b9781
Merge branch 'dev' into vbuterin-patch-13
hwwhww Aug 23, 2019
bcdbf7d
Fix some flake8 errors
hwwhww Aug 23, 2019
1704389
Fix some mypy errors
hwwhww Aug 23, 2019
f8d9b0d
Merge branch 'dev' into roots-removal
hwwhww Aug 23, 2019
7c9f1aa
`test_compact_committees_root` will be moved to phase 1
hwwhww Aug 23, 2019
c727c47
Merge pull request #1329 from ethereum/roots-removal
djrtwo Aug 23, 2019
a4f86a8
Merge branch 'dev' into vbuterin-patch-13
djrtwo Aug 23, 2019
6923bdc
remove Optional None from get_generalized_index. instead throw
djrtwo Aug 23, 2019
b6d854d
Fix ToC
vbuterin Aug 24, 2019
fb59160
Persistent -> period, process_shard_receipt: add _proofs
vbuterin Aug 24, 2019
7175ac5
Update specs/core/0_beacon-chain.md
vbuterin Aug 24, 2019
a509c68
Update specs/core/0_beacon-chain.md
vbuterin Aug 24, 2019
178dd23
`MINOR_REWARD_QUOTIENT` for rewarding the proposer for including shar…
hwwhww Aug 24, 2019
01af8e6
Use `get_previous_power_of_two` from merkle proofs spec
hwwhww Aug 25, 2019
9b3cb30
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 26, 2019
f1caa85
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 26, 2019
2abb81d
Merge pull request #1366 from ethereum/remove-val-api
djrtwo Aug 26, 2019
ffdc369
lint
djrtwo Aug 26, 2019
79e34a0
Update sync_protocol.md
terencechain Aug 27, 2019
4768ec8
SSZ clarifications on deserialization
dankrad Aug 27, 2019
ab4820c
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 27, 2019
0b38ff0
Update specs/core/1_beacon-chain-misc.md
vbuterin Aug 27, 2019
0f2e814
Shard slot -> slot for PHASE_1_FORK_SLOT
vbuterin Aug 27, 2019
17702e6
Shard slot -> slot for PHASE_1_FORK_SLOT part2
hwwhww Aug 27, 2019
979fa38
fix linter error
hwwhww Aug 27, 2019
334d6c6
Revamp 1_shard-data-chains.md
JustinDrake Aug 27, 2019
d0b4dc2
remove bad length checks from process attestation; ensure committee c…
djrtwo Aug 27, 2019
82faaf1
fix tests
djrtwo Aug 27, 2019
78a0e15
explicitly cast to bool
djrtwo Aug 27, 2019
07bbbf0
Merge pull request #1380 from terencechain/patch-84
djrtwo Aug 27, 2019
c8c47e3
Abstract away compute_proposer_index for phase 1
JustinDrake Aug 28, 2019
5f1cdc4
Merge pull request #1384 from ethereum/length-check-fix
dankrad Aug 28, 2019
d7e628e
WIP!
JustinDrake Aug 28, 2019
66c3c39
Update 1_shard-data-chains.md
JustinDrake Aug 29, 2019
9a712ea
Update merkle_proofs.md
terencechain Sep 1, 2019
84965be
Update merkle_proofs.md
terencechain Sep 1, 2019
b9390f0
import `byte`
hwwhww Sep 2, 2019
1449697
Merge pull request #1323 from ethereum/vbuterin-patch-13
djrtwo Sep 2, 2019
ab2fac6
Added misc beacon chain updates to ToC
vbuterin Sep 3, 2019
9320a00
Merge pull request #1393 from ethereum/vbuterin-patch-7
hwwhww Sep 3, 2019
834edc2
Removed shard from genesis shard block
vbuterin Sep 3, 2019
3ef2487
Changes as per today's discussion
JustinDrake Sep 3, 2019
d1fe8f1
Deposit contract fixes (#1362)
JustinDrake Sep 3, 2019
c4297ae
Update 1_shard-data-chains.md
JustinDrake Sep 3, 2019
a0bbc94
Update 1_shard-data-chains.md
JustinDrake Sep 3, 2019
225c740
Apply suggestions from code review
JustinDrake Sep 3, 2019
40dc062
Update 1_shard-data-chains.md
JustinDrake Sep 3, 2019
2eda4c5
Update 1_shard-data-chains.md
JustinDrake Sep 3, 2019
91e73c1
Deduplicate indices
JustinDrake Sep 3, 2019
2b60c9c
Update 1_shard-data-chains.md
JustinDrake Sep 3, 2019
c01d036
Update 1_shard-data-chains.md
JustinDrake Sep 3, 2019
dbcce17
Update sync_protocol.md
terencechain Sep 4, 2019
f1065fa
Update sync_protocol.md
terencechain Sep 5, 2019
1e74cf5
Update sync_protocol.md
terencechain Sep 5, 2019
2a4957c
Update 1_shard-data-chains.md
JustinDrake Sep 5, 2019
c06ffc4
Update README.md
terencechain Sep 6, 2019
1d71ae9
Update README.md
terencechain Sep 7, 2019
ea6a3b2
add explicit comments for int_to_bytes and bytes_to_int
djrtwo Sep 7, 2019
b0f44ef
Merge pull request #1399 from terencechain/patch-88
hwwhww Sep 8, 2019
66eaab7
Merge branch 'master' into dev-083
djrtwo Sep 8, 2019
4bd64d1
Merge pull request #1403 from ethereum/dev-083
protolambda Sep 8, 2019
1f3a5b1
Merge pull request #1397 from terencechain/patch-87
djrtwo Sep 8, 2019
d66e6ca
Update 1_custody-game.md
GregTheGreek Sep 15, 2019
6d9dd04
Update 1_custody-game.md
GregTheGreek Sep 16, 2019
970ae2f
update validator doc with modified beacon proposer selection
djrtwo Sep 16, 2019
97b3ffc
Merge pull request #1391 from terencechain/patch-85
djrtwo Sep 16, 2019
9582814
clarify endianness
djrtwo Sep 16, 2019
794a240
Update specs/core/1_custody-game.md
GregTheGreek Sep 16, 2019
834b811
fix custody_subchunkify return type
djrtwo Sep 16, 2019
7a5cdc2
Merge pull request #1407 from GregTheGreek/patch-1
djrtwo Sep 16, 2019
51a0d80
sync protocol: clarify committee type
wemeetagain Sep 20, 2019
50209ea
Refactor Merkle proof verification
vbuterin Sep 22, 2019
2e53899
typo
JustinDrake Sep 20, 2019
2ec363d
typo
djrtwo Sep 23, 2019
114ffe3
Merge pull request #1413 from ethereum/proposer-fix
djrtwo Sep 23, 2019
47a818c
Add domain_type to get_seed
JustinDrake Sep 22, 2019
a183125
cleanups to get_seed
JustinDrake Sep 22, 2019
e7db58c
Rename ACTIVATION_EXIT_DELAY to MAX_SEED_LOOKAHEAD for phase 1
JustinDrake Sep 23, 2019
25efbe7
Rename seed to epoch_seed as per Danny
JustinDrake Sep 23, 2019
61f2a06
Merge pull request #1415 from ethereum/seed-domains
djrtwo Sep 23, 2019
44bdf01
Merge branch 'dev' into JustinDrake-patch-23
djrtwo Sep 25, 2019
fd759a2
Remove flat containers and revert back to uint64
JustinDrake Sep 25, 2019
d4f4811
Rename ShardCheckpoint, double header size, verify proposer not slashed
JustinDrake Sep 26, 2019
9ce7a8e
working through lint and format on shard chains
djrtwo Sep 27, 2019
131bf28
Merge branch 'JustinDrake-patch-23' into shard-chain-test
djrtwo Sep 27, 2019
86ed393
fix a couple of minor shard chain bugs
djrtwo Sep 27, 2019
b892d46
working through shard chain tests
djrtwo Sep 27, 2019
3bc05df
remove outdated beacon attestation test
djrtwo Sep 27, 2019
77faa02
minor fix to tests
djrtwo Sep 27, 2019
e2230d1
Fix array formatting
mcdee Sep 28, 2019
81b2566
Update validator doc to match recent changes
mcdee Sep 28, 2019
b050531
Revert to bytes32
mcdee Sep 28, 2019
b259d35
move assert to get_beacon_proposer_index
djrtwo Sep 30, 2019
4ecabf3
Merge pull request #1417 from ethereum/shard-chain-ci
djrtwo Sep 30, 2019
75fd619
Merge branch 'JustinDrake-patch-23' into shard-chain-test
djrtwo Sep 30, 2019
49a2919
add more shard block sanity tests
djrtwo Sep 30, 2019
a5fb940
make beacon state for shard sate transition from current shard epoch
djrtwo Sep 30, 2019
2af39ad
fix shard period sanity test
djrtwo Sep 30, 2019
56fd91b
merkle proofs: Fix get_helper_indices
wemeetagain Oct 1, 2019
dc48693
remove explicitly handling empty attestation
djrtwo Oct 4, 2019
3c3ae9a
enforce beacon state at epoch boundary slot
djrtwo Oct 4, 2019
e1c1cc4
Merge pull request #1418 from ethereum/shard-chain-test
djrtwo Oct 9, 2019
fffdb24
Merge pull request #1383 from ethereum/JustinDrake-patch-23
djrtwo Oct 9, 2019
dfdf3ab
initial removal and cleanup of shard/crosslink from phase 0
djrtwo Oct 12, 2019
b3b9b43
working through phase 0 tests after crosslink/shard removal
djrtwo Oct 12, 2019
d98cabf
fix get crosslink committee and finalitytests
djrtwo Oct 12, 2019
667bf67
temporarily disable phase 1 tests
djrtwo Oct 12, 2019
b3a0a03
remove some legacy code
djrtwo Oct 12, 2019
5ccac7c
remove get_committee_count
djrtwo Oct 12, 2019
1fbf7f8
fix config files
djrtwo Oct 12, 2019
c392db3
fix max epochs var
djrtwo Oct 12, 2019
d8431f8
add start index back in
djrtwo Oct 13, 2019
6208e74
get crosslink committees by slot
djrtwo Oct 13, 2019
bd1c71b
simplify index
djrtwo Oct 16, 2019
219084a
add CommitteeIndex type
djrtwo Oct 16, 2019
c239ce0
crosslink committee -> beacon committee
djrtwo Oct 17, 2019
7af2c23
remove refs to crosslinks
djrtwo Oct 17, 2019
283a8cb
remove refs to crosslinks
djrtwo Oct 17, 2019
8de3b83
Fix delay-based attestation inclusion reward
vbuterin Oct 17, 2019
437a65d
cleanup wrt Justin's comments
djrtwo Oct 17, 2019
fbcc2a4
fix comment re: proto
djrtwo Oct 18, 2019
58c2834
proto pr feedback
djrtwo Oct 18, 2019
d5a2535
minor comments resolved from hww
djrtwo Oct 18, 2019
a9961d4
Simplify get_helper_indices
wemeetagain Oct 18, 2019
f533b70
Merge pull request #1434 from ethereum/vbuterin-patch-2-1
djrtwo Oct 20, 2019
a11b012
update constants for phase 0 simplification
djrtwo Oct 20, 2019
e86ff1e
minor fix to mainnet config comments
djrtwo Oct 20, 2019
bc8ff33
working through attestation aggregation
djrtwo Oct 22, 2019
f809b21
minor pr review
djrtwo Oct 23, 2019
934008e
Merge branch 'phase0-simplify' of github.com:ethereum/eth2.0-specs in…
djrtwo Oct 23, 2019
f63c122
Merge branch 'phase0-simplify' into naive-aggregation
djrtwo Oct 23, 2019
13c3d9c
Update ToCs
hwwhww Oct 23, 2019
a9c2112
add bulk of naive aggregation strategy
djrtwo Oct 23, 2019
7fcb607
lint
djrtwo Oct 23, 2019
cf1d855
lint
djrtwo Oct 23, 2019
d8bf5c2
Merge pull request #1423 from wemeetagain/patch-4
protolambda Oct 23, 2019
ce1ceee
Fix argument names, PR suggestion from @wemeetagain
protolambda Oct 23, 2019
e5f7faf
Merge pull request #1412 from ethereum/vbuterin-patch-1
protolambda Oct 23, 2019
2be850c
Add details for an SSZ project I have just published a first version …
sgryphon Oct 23, 2019
9fbd700
Merge pull request #1441 from sgryphon/dev
protolambda Oct 23, 2019
1cda8c8
aggregation cleanups
djrtwo Oct 24, 2019
7804f94
explain why aggregate_and_proof for aggregate gossip in p2p faq
djrtwo Oct 24, 2019
69730cc
remove transfers entirely from phase 0
djrtwo Oct 24, 2019
c9c4a6c
Merge pull request #1421 from mcdee/deposit
hwwhww Oct 24, 2019
70c2063
PR feedback
djrtwo Oct 24, 2019
c2cebef
Update specs/validator/0_beacon-chain-validator.md
djrtwo Oct 25, 2019
e984d10
fix typo, and fix bitlist end-bit description
protolambda Oct 25, 2019
f1bf0bf
Merge pull request #1381 from ethereum/dankrad-patch-11
protolambda Oct 25, 2019
2186c45
implement (unpolished) solution for #1446, based on suggested use of …
protolambda Oct 25, 2019
2cc643d
update test_eth1_data_votes_no_consensus to not hardcode pre hash
protolambda Oct 25, 2019
db83476
add validation condition to aggregate gossip to prevent forwarding du…
djrtwo Oct 27, 2019
e005bb0
add unaggregated attestation validations
djrtwo Oct 27, 2019
a700e7a
fmt
djrtwo Oct 27, 2019
6a62cfd
gossip cleanup
djrtwo Oct 27, 2019
d6563bc
minor edits to p2p faq
djrtwo Oct 27, 2019
e6e203c
randaomixes init now with eth1 hash repeat
protolambda Oct 27, 2019
09339f2
Update 0_beacon-chain.md
JustinDrake Oct 27, 2019
2d59ca6
Update ToC
hwwhww Oct 28, 2019
364781b
Merge pull request #1428 from ethereum/phase0-simplify
djrtwo Oct 28, 2019
810266f
Merge pull request #1443 from ethereum/remove-transfers
djrtwo Oct 28, 2019
c547c52
Merge pull request #1447 from ethereum/early-committee-bias
djrtwo Oct 28, 2019
6570340
Merge branch 'master' into master-to-dev
djrtwo Oct 28, 2019
51eeebe
Merge pull request #1451 from ethereum/master-to-dev
protolambda Oct 28, 2019
795105a
Merge branch 'dev' into naive-aggregation
djrtwo Oct 28, 2019
e8fc84e
Update specs/networking/p2p-interface.md
djrtwo Oct 28, 2019
6fc1fea
rearrange some of the gossip info in response to hwwhww review
djrtwo Oct 28, 2019
913a231
Merge pull request #1410 from wemeetagain/patch-3
djrtwo Oct 28, 2019
257fcd9
typo
protolambda Oct 28, 2019
a6cecaf
Merge pull request #1401 from ethereum/conversion-comments
protolambda Oct 28, 2019
bb5a721
Update 0_fork-choice.md
terencechain Jul 24, 2019
34ba645
Update specs/core/0_fork-choice.md
terencechain Jul 25, 2019
43132a3
[reopen] Eth2 shorthand standardized (#1452)
djrtwo Oct 28, 2019
96d4516
fix forkchoice tests: fix test decorators, fix block state roots, cle…
protolambda Oct 28, 2019
3bb6aec
Clarify committee_index subnets by defining and using "subnet" var
djrtwo Oct 28, 2019
04c20ae
add expicit ranges for valid attesation propogation range
djrtwo Oct 28, 2019
09de595
Merge pull request #1454 from ethereum/forkchoice-tests-fixed
djrtwo Oct 28, 2019
60a469b
Merge pull request #1440 from ethereum/naive-aggregation
djrtwo Oct 28, 2019
3d17c10
fix ruemel.yaml dependency issue
djrtwo Oct 28, 2019
bae659b
Merge pull request #1455 from ethereum/quick-dep-fix
protolambda Oct 28, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .codespell-whitelist
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
uint
byteorder
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ $(PY_SPEC_PHASE_0_TARGETS): $(PY_SPEC_PHASE_0_DEPS)
python3 $(SCRIPT_DIR)/build_spec.py -p0 $(SPEC_DIR)/core/0_beacon-chain.md $(SPEC_DIR)/core/0_fork-choice.md $(SPEC_DIR)/validator/0_beacon-chain-validator.md $@

$(PY_SPEC_DIR)/eth2spec/phase1/spec.py: $(PY_SPEC_PHASE_1_DEPS)
python3 $(SCRIPT_DIR)/build_spec.py -p1 $(SPEC_DIR)/core/0_beacon-chain.md $(SPEC_DIR)/core/1_custody-game.md $(SPEC_DIR)/core/1_shard-data-chains.md $(SPEC_DIR)/core/0_fork-choice.md $@
python3 $(SCRIPT_DIR)/build_spec.py -p1 $(SPEC_DIR)/core/0_beacon-chain.md $(SPEC_DIR)/core/0_fork-choice.md $(SPEC_DIR)/light_client/merkle_proofs.md $(SPEC_DIR)/core/1_custody-game.md $(SPEC_DIR)/core/1_shard-data-chains.md $(SPEC_DIR)/core/1_beacon-chain-misc.md $@

CURRENT_DIR = ${CURDIR}

Expand Down
24 changes: 19 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Ethereum 2.0 Specifications

[![Join the chat at https://gitter.im/ethereum/sharding](https://badges.gitter.im/ethereum/sharding.svg)](https://gitter.im/ethereum/sharding?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Join the chat at https://discord.gg/hpFs23p](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://discord.gg/hpFs23p) [![Join the chat at https://gitter.im/ethereum/sharding](https://badges.gitter.im/ethereum/sharding.svg)](https://gitter.im/ethereum/sharding?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

To learn more about sharding and Ethereum 2.0 (Serenity), see the [sharding FAQ](https://github.com/ethereum/wiki/wiki/Sharding-FAQ) and the [research compendium](https://notes.ethereum.org/s/H1PGqDhpm).

This repository hosts the current Eth 2.0 specifications. Discussions about design rationale and proposed changes can be brought up and discussed as issues. Solidified, agreed-upon changes to the spec can be made through pull requests.
This repository hosts the current Eth2 specifications. Discussions about design rationale and proposed changes can be brought up and discussed as issues. Solidified, agreed-upon changes to the spec can be made through pull requests.


## Specs

Core specifications for Eth 2.0 client validation can be found in [specs/core](specs/core). These are divided into phases. Each subsequent phase depends upon the prior. The current phases specified are:
Core specifications for Eth2 client validation can be found in [specs/core](specs/core). These are divided into phases. Each subsequent phase depends upon the prior. The current phases specified are:

### Phase 0
* [The Beacon Chain](specs/core/0_beacon-chain.md)
Expand All @@ -20,12 +20,13 @@ Core specifications for Eth 2.0 client validation can be found in [specs/core](s
### Phase 1
* [Custody Game](specs/core/1_custody-game.md)
* [Shard Data Chains](specs/core/1_shard-data-chains.md)
* [Misc beacon chain updates](specs/core/1_beacon-chain-misc.md)

### Phase 2

Phase 2 is still actively in R&D and does not yet have any formal specifications.

See the [Eth 2.0 Phase 2 Wiki](https://hackmd.io/UzysWse1Th240HELswKqVA?view) for current progress, discussions, and definitions regarding this work.
See the [Eth2 Phase 2 Wiki](https://hackmd.io/UzysWse1Th240HELswKqVA?view) for current progress, discussions, and definitions regarding this work.

### Accompanying documents can be found in [specs](specs) and include:

Expand All @@ -34,8 +35,14 @@ See the [Eth 2.0 Phase 2 Wiki](https://hackmd.io/UzysWse1Th240HELswKqVA?view) fo
* [General test format](specs/test_formats/README.md)
* [Merkle proof formats](specs/light_client/merkle_proofs.md)
* [Light client syncing protocol](specs/light_client/sync_protocol.md)
* [Beacon node API for validator](specs/validator/0_beacon-node-validator-api.md)

## Additional specifications for client implementers

Additional specifications and standards outside of requisite client functionality can be found in the following repos:

* [Eth2 APIs](https://github.com/ethereum/eth2.0-apis)
* [Eth2 Metrics](https://github.com/ethereum/eth2.0-metrics/)
* [Interop Standards in Eth2 PM](https://github.com/ethereum/eth2.0-pm/tree/master/interop)

## Design goals

Expand All @@ -47,8 +54,15 @@ The following are the broad design goals for Ethereum 2.0:
* to allow for a typical consumer laptop with `O(C)` resources to process/validate `O(1)` shards (including any system level validation such as the beacon chain)


## Useful external resources

* [Design Rationale](https://notes.ethereum.org/s/rkhCgQteN#)
* [Phase 0 Onboarding Document](https://notes.ethereum.org/s/Bkn3zpwxB)


## For spec contributors


Documentation on the different components used during spec writing can be found here:
* [YAML Test Generators](test_generators/README.md)
* [Executable Python Spec, with Py-tests](test_libs/pyspec/README.md)
Expand Down
7 changes: 3 additions & 4 deletions configs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This directory contains a set of constants presets used for testing, testnets, and mainnet.

A preset file contains all the constants known for its target.
Later-fork constants can be ignored, e.g. ignore phase1 constants as a client that only supports phase 0 currently.
Later-fork constants can be ignored, e.g. ignore Phase 1 constants as a client that only supports Phase 0 currently.


## Forking
Expand All @@ -14,9 +14,8 @@ Instead, for forks that introduce changes in a constant, the constant name is pr
Over time, the need to sync an older state may be deprecated.
In this case, the prefix on the new constant may be removed, and the old constant will keep a special name before completely being removed.

A previous iteration of forking made use of "timelines", but this collides with the definitions used in the spec (constants for special forking slots etc.),
and was not integrated sufficiently in any of the spec tools or implementations.
Instead, the config essentially doubles as fork definition now, changing the value for e.g. `PHASE_1_GENESIS_SLOT` changes the fork.
A previous iteration of forking made use of "timelines", but this collides with the definitions used in the spec (constants for special forking slots, etc.), and was not integrated sufficiently in any of the spec tools or implementations.
Instead, the config essentially doubles as fork definition now, e.g. changing the value for `PHASE_1_GENESIS_SLOT` changes the fork.

Another reason to prefer forking through constants is the ability to program a forking moment based on context, instead of being limited to a static slot number.

Expand Down
25 changes: 11 additions & 14 deletions configs/mainnet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

# Misc
# ---------------------------------------------------------------
# 2**10 (= 1,024)
SHARD_COUNT: 1024
# 2**6 (= 64)
MAX_COMMITTEES_PER_SLOT: 64
# 2**7 (= 128)
TARGET_COMMITTEE_SIZE: 128
# 2**12 (= 4,096)
MAX_VALIDATORS_PER_COMMITTEE: 4096
# 2**11 (= 2,048)
MAX_VALIDATORS_PER_COMMITTEE: 2048
# 2**2 (= 4)
MIN_PER_EPOCH_CHURN_LIMIT: 4
# 2**16 (= 65,536)
Expand Down Expand Up @@ -51,16 +51,16 @@ BLS_WITHDRAWAL_PREFIX: 0x00

# Time parameters
# ---------------------------------------------------------------
# 6 seconds 6 seconds
SECONDS_PER_SLOT: 6
# 12 seconds
SECONDS_PER_SLOT: 12
# 2**0 (= 1) slots 6 seconds
MIN_ATTESTATION_INCLUSION_DELAY: 1
# 2**6 (= 64) slots 6.4 minutes
SLOTS_PER_EPOCH: 64
# 2**5 (= 32) slots 6.4 minutes
SLOTS_PER_EPOCH: 32
# 2**0 (= 1) epochs 6.4 minutes
MIN_SEED_LOOKAHEAD: 1
# 2**2 (= 4) epochs 25.6 minutes
ACTIVATION_EXIT_DELAY: 4
MAX_SEED_LOOKAHEAD: 4
# 2**10 (= 1,024) slots ~1.7 hours
SLOTS_PER_ETH1_VOTING_PERIOD: 1024
# 2**13 (= 8,192) slots ~13 hours
Expand Down Expand Up @@ -116,18 +116,15 @@ MAX_ATTESTATIONS: 128
MAX_DEPOSITS: 16
# 2**4 (= 16)
MAX_VOLUNTARY_EXITS: 16
# Originally 2**4 (= 16), disabled for now.
MAX_TRANSFERS: 0


# Signature domains
# ---------------------------------------------------------------
DOMAIN_BEACON_PROPOSER: 0x00000000
DOMAIN_RANDAO: 0x01000000
DOMAIN_ATTESTATION: 0x02000000
DOMAIN_BEACON_ATTESTER: 0x01000000
DOMAIN_RANDAO: 0x02000000
DOMAIN_DEPOSIT: 0x03000000
DOMAIN_VOLUNTARY_EXIT: 0x04000000
DOMAIN_TRANSFER: 0x05000000
DOMAIN_CUSTODY_BIT_CHALLENGE: 0x06000000
DOMAIN_SHARD_PROPOSER: 0x80000000
DOMAIN_SHARD_ATTESTER: 0x81000000
33 changes: 22 additions & 11 deletions configs/minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
# Misc
# ---------------------------------------------------------------

# [customized] Just 8 shards for testing purposes
SHARD_COUNT: 8
# [customized] Just 4 committees for slot for testing purposes
MAX_COMMITTEES_PER_SLOT: 4
# [customized] unsecure, but fast
TARGET_COMMITTEE_SIZE: 4
# 2**12 (= 4,096)
MAX_VALIDATORS_PER_COMMITTEE: 4096
# 2**11 (= 2,048)
MAX_VALIDATORS_PER_COMMITTEE: 2048
# 2**2 (= 4)
MIN_PER_EPOCH_CHURN_LIMIT: 4
# 2**16 (= 65,536)
Expand Down Expand Up @@ -50,7 +50,7 @@ BLS_WITHDRAWAL_PREFIX: 0x00

# Time parameters
# ---------------------------------------------------------------
# 6 seconds 6 seconds
# [customized] Faster for testing purposes
SECONDS_PER_SLOT: 6
# 2**0 (= 1) slots 6 seconds
MIN_ATTESTATION_INCLUSION_DELAY: 1
Expand All @@ -59,7 +59,7 @@ SLOTS_PER_EPOCH: 8
# 2**0 (= 1) epochs
MIN_SEED_LOOKAHEAD: 1
# 2**2 (= 4) epochs
ACTIVATION_EXIT_DELAY: 4
MAX_SEED_LOOKAHEAD: 4
# [customized] higher frequency new deposits from eth1 for testing
SLOTS_PER_ETH1_VOTING_PERIOD: 16
# [customized] smaller state
Expand All @@ -74,6 +74,10 @@ MAX_EPOCHS_PER_CROSSLINK: 4
MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4
# [customized] 2**12 (= 4,096) epochs
EARLY_DERIVED_SECRET_PENALTY_MAX_FUTURE_EPOCHS: 4096
# 2**2 (= 4) epochs
EPOCHS_PER_CUSTODY_PERIOD: 4
# 2**2 (= 4) epochs
CUSTODY_PERIOD_TO_RANDAO_PADDING: 4


# State vector lengths
Expand Down Expand Up @@ -114,18 +118,25 @@ MAX_ATTESTATIONS: 128
MAX_DEPOSITS: 16
# 2**4 (= 16)
MAX_VOLUNTARY_EXITS: 16
# Originally 2**4 (= 16), disabled for now.
MAX_TRANSFERS: 0


# Signature domains
# ---------------------------------------------------------------
DOMAIN_BEACON_PROPOSER: 0x00000000
DOMAIN_RANDAO: 0x01000000
DOMAIN_ATTESTATION: 0x02000000
DOMAIN_BEACON_ATTESTER: 0x01000000
DOMAIN_RANDAO: 0x02000000
DOMAIN_DEPOSIT: 0x03000000
DOMAIN_VOLUNTARY_EXIT: 0x04000000
DOMAIN_TRANSFER: 0x05000000
DOMAIN_CUSTODY_BIT_CHALLENGE: 0x06000000
DOMAIN_SHARD_PROPOSER: 0x80000000
DOMAIN_SHARD_ATTESTER: 0x81000000


# Phase 1
# ---------------------------------------------------------------
SHARD_SLOTS_PER_BEACON_SLOT: 2
EPOCHS_PER_SHARD_PERIOD: 4
# PHASE_1_FORK_EPOCH >= EPOCHS_PER_SHARD_PERIOD * 2
PHASE_1_FORK_EPOCH: 8
# PHASE_1_FORK_SLOT = PHASE_1_FORK_EPOCH * SLOTS_PER_EPOCH
PHASE_1_FORK_SLOT: 64
Loading