Commit Graph

3808 Commits

Author SHA1 Message Date
vbuterin 171b21301b
Added support for updates that point to finalized ancestors 2020-11-18 16:27:19 +08:00
vbuterin 830efa496a
Removed compact validators, make committee balance-based 2020-11-18 16:15:30 +08:00
Justin 5e717a456d
More polish and fixes 2020-11-17 15:30:09 +00:00
Justin 7ffc9c5bc0
More polish and fixes to the sync protocol 2020-11-17 14:18:58 +00:00
Justin 99219c874f
Revamp minimal light client (lots of polish and some bug fixes) 2020-11-17 12:42:09 +00:00
vbuterin 692a0aaaa5
Update specs/lightclient/sync-protocol.md
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-11-17 13:26:26 +08:00
vbuterin 5e5d03d56f
Update specs/lightclient/sync-protocol.md
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-11-17 13:26:18 +08:00
vbuterin 1c146b2c03
Update specs/lightclient/sync-protocol.md
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-11-17 13:26:08 +08:00
vbuterin a5e6d77165
Update specs/lightclient/sync-protocol.md
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-11-17 13:25:59 +08:00
vbuterin 117d31985f
Update specs/lightclient/sync-protocol.md
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-11-17 10:45:16 +08:00
vbuterin f9e9d7cabf
Update specs/lightclient/sync-protocol.md
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-11-17 10:45:02 +08:00
Hsiao-Wei Wang 4df3547edf
Make `lightclient` patch pass the linter (#2133)
* Make `lightclient` an executable patch fork

* fix conflicts

* Fix ToC

* Lightclient -> Light client

* Try protolambda/remerkleable#8

* Fix sync-protocol.md ToC

* Build lightclient/sync-protocol

* Fix typo

Co-authored-by: vbuterin <v@buterin.com>

Co-authored-by: vbuterin <v@buterin.com>
2020-11-17 10:41:26 +08:00
Justin cbb3856ab9
Fix ToC (cherry-picked from @hwwhww's PR) 2020-11-16 09:09:04 +00:00
vbuterin ca88dd6922
Removed extraneous data 2020-11-16 15:08:43 +08:00
vbuterin 97dc916c9e
Python syntax highlighted updates 2020-11-16 15:07:40 +08:00
vbuterin 1f210fd1f8
Added light client syncing protocol 2020-11-16 15:02:11 +08:00
Justin 114e388d12
Fix bugs—thanks @hwwhww 2020-11-15 17:23:44 +00:00
Justin e7d52d9056
Significant polishing and a few substantive fixes
See discussion for further details.
2020-11-15 10:56:24 +00:00
vbuterin 555e131e2c
Small changes to make Justin happy 2020-11-14 13:56:00 +08:00
vbuterin 620b812c2e
Reduce reward by SLOTS_PER_EPOCH 2020-11-13 10:21:30 +08:00
vbuterin 9e3690ad17
Update specs/lightclient/beacon-chain.md
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-11-13 10:19:37 +08:00
vbuterin 7c6ede5eac
Added standalone light client patch 2020-11-12 17:28:05 +08:00
Danny Ryan 7589af8e8d
remove wip notice on phase 0 specs 2020-11-04 09:30:29 -06:00
Danny Ryan cd7b1056b4
add mainnet deposit contract address and min genesis time 2020-11-04 09:11:52 -06:00
Danny Ryan 2aa827c07f
Merge pull request #2107 from bloxapp/honest_val_time_attack
added best practices section according to https://github.com/ethereum
2020-11-04 07:36:27 -06:00
Alon Muroch 6996a897b5
Apply suggestions from code review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-11-04 15:29:06 +02:00
Alon Muroch 5b95219d18
Apply suggestions from code review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-11-04 15:19:41 +02:00
Danny Ryan cfc91cdef7
Merge pull request #2121 from AgeManning/gossipsub-mesh
Increase gossipsub mesh degree
2020-11-04 06:59:59 -06:00
Age Manning 82cdbba703
Increase mesh degree 2020-11-04 11:27:35 +11:00
Danny Ryan c4ccdc90de
Merge branch 'dev' into v1.0-candidate 2020-11-03 17:09:48 -06:00
Danny Ryan 6b44f63751
Merge pull request #2104 from ethereum/state_transition_patch
Make `state_transition` not return post-state
2020-11-03 14:57:29 -06:00
Danny Ryan bfaef689e4
Merge pull request #2092 from ethereum/ralexstokes-patch-1
Simplify fork choice spec
2020-11-03 06:58:35 -07:00
Danny Ryan b356f52c5c
ensure aggregate attestation's slot and target are consistent 2020-10-28 17:54:46 -06:00
Alon Muroch 0835c78b56
Apply suggestions from Dankrad's code review
Co-authored-by: dankrad <mail@dankradfeist.de>
2020-10-27 08:38:54 +02:00
Alon Muroch fe5e2f6a8b table of content 2020-10-20 12:07:54 +03:00
Alon Muroch 73cd1a84fd added best practices section according to https://github.com/ethereum/eth2.0-specs/issues/2085 2020-10-20 12:00:40 +03:00
Hsiao-Wei Wang f1e4b3c88b
Refactor shard_state_transition 2020-10-15 16:14:01 +08:00
Hsiao-Wei Wang 7fb9226ec6
Make `state_transition` not return post state; the given pre state should have been mutated to post state. 2020-10-15 15:58:26 +08:00
Danny Ryan c17a95a175
add note about how slashings and exits can interact. add test 2020-10-14 17:33:14 -06:00
Danny Ryan 427c7bb236
fix minor typo in validator guide 2020-10-08 10:18:15 -06:00
Danny Ryan 91deacbf9c
double eth1data params 2020-10-07 18:52:47 -06:00
Alex Stokes 663af77737
Clean up unused variable for linter 2020-10-07 17:11:13 -07:00
Alex Stokes d0cf4e7bad
Simplify fork choice spec
This change should be non-substantive as any blocks in `blocks` should be descendants (inclusive) of the `store.justified_checkpoint` (refer `get_filtered_block_tree`) so that in `get_head` all blocks considered as potential heads will have `slot > justified_slot`. Considering this condition universally applies, adding the `and ...` arm to the conditional is unnecessary overhead.
2020-10-07 16:52:51 -07:00
Danny Ryan d3d9bbd479
add note about coming gs v1.1 params 2020-10-07 17:46:20 -06:00
Danny Ryan 45de8198ca
Merge branch 'dev' into v1.0-candidate 2020-10-07 13:42:23 -06:00
Danny Ryan 64b34b5ca6
Merge pull request #2089 from ethereum/fix-message-id
fix message-id issues
2020-10-07 12:40:51 -06:00
Danny Ryan 8cda237884
note v5.1 in discv5 p2p spec 2020-10-07 12:13:32 -06:00
Danny Ryan 6287875baf
use domain byte to isolate message-id domains 2020-10-07 11:59:39 -06:00
Danny Ryan a365fcb03b
fix message-id issues 2020-10-06 16:18:12 -06:00
Hsiao-Wei Wang d264ad8af7
Merge pull request #2080 from ethereum/bls_v4
Bump IETF BLS spec version draft 03 -> draft 04
2020-10-05 22:12:52 +08:00
Danny Ryan 5f9e6599e9
Merge pull request #2060 from protolambda/signing-policy
Use gossip signing policy in p2p spec, see libp2p/specs#294
2020-09-30 12:03:21 -06:00
Danny Ryan 157f7e8ef4
upgrade config to mainnet values 2020-09-28 12:56:08 -06:00
protolambda 62d596a910
update signature policy link 2020-09-25 17:59:09 +02:00
Hsiao-Wei Wang ad4ad2d8b4
Bump IETF BLS spec version draft 03 -> draft 04 2020-09-25 15:01:41 +08:00
protolambda 708827413f
cleanup phase1 TOC contents 2020-09-23 22:55:22 +02:00
Danny Ryan 8c9c943845
Merge pull request #2054 from ethereum/ralexstokes-patch-1
Typos in: p2p-interface.md
2020-09-22 17:32:10 -06:00
Danny Ryan a232efbeb7
revert incorrect type fix 2020-09-22 17:20:55 -06:00
ericsson 104b83aab3 use integer division (//) instead of non-integer (/) 2020-09-22 18:54:44 +03:00
Danny Ryan 177f88962e
Merge pull request #2073 from ethereum/weak-subjectivity-guide
Weak subjectivity guide
2020-09-17 12:07:19 -06:00
Danny Ryan 8bb05827ab
add weak-subjectivity.md to setup.py build and do final lint cleanups 2020-09-17 12:01:25 -06:00
Aditya Asgaonkar 58d225c9be Added WIP note, explanation for WS period calculation 2020-09-17 10:34:37 -07:00
Aditya Asgaonkar 6b33c766f2
Apply suggestions from Danny's code review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-09-17 10:26:49 -07:00
Aditya Asgaonkar 2023b24d72
Small change to CLI input description 2020-09-16 19:52:21 -07:00
Aditya Asgaonkar 3fd0eaa67a Fix in WS guide 2020-09-15 17:37:38 -07:00
Aditya Asgaonkar 2b81ec9337 Added TOC to WS guide 2020-09-15 17:33:01 -07:00
Aditya Asgaonkar dc841d4bf6 Cosmetic changes to WS guide 2020-09-15 17:21:38 -07:00
Aditya Asgaonkar d71bb856e7 Added weak subjectivity guide 2020-09-15 17:10:39 -07:00
Danny Ryan 33cfcc4eb3
Merge pull request #2067 from ethereum/bls_v3_patch
Remove outdated BLS standard note
2020-09-15 10:12:15 -06:00
Danny Ryan 7c685d490e
Merge pull request #2061 from ethereum/anchor_block_header_3
Pass `anchor_block` to `get_forkchoice_store`
2020-09-15 10:10:29 -06:00
Hsiao-Wei Wang 899927af30
Remove note 2020-09-15 23:43:07 +08:00
Hsiao-Wei Wang 1e29563242
Pass `anchor_block` to `get_forkchoice_store` 2020-09-15 12:51:11 +08:00
protolambda 8ad0865424
Use gossip signing policy in p2p spec, see libp2p/specs#294 2020-09-15 01:15:16 +02:00
Danny Ryan 59cb56b564
Merge pull request #2044 from blacktemplar/use-raw-sha-as-message-id
use raw SHA256 as message-id
2020-09-14 11:25:34 -06:00
Danny Ryan 5a9fe89089
remove extraneous parens 2020-09-14 10:58:48 -06:00
Danny Ryan 89be1f5bc8
favor pythonic notation for array slices 2020-09-14 10:57:35 -06:00
blacktemplar deb58fd21e only use first 8 bytes of hash as message id 2020-09-14 10:09:48 +02:00
Alex Stokes 3cb15806be
Update p2p-interface.md
Typo fixes
2020-09-11 17:08:37 -07:00
Hsiao-Wei Wang cfc69e47e6
Bump IETF BLS standard version to -03 2020-09-11 17:17:51 +08:00
blacktemplar 8f0b15f9f7 remove dot 2020-09-11 06:44:36 +02:00
Danny Ryan 8948f92def
Merge branch 'dev' into more_gossip_validations 2020-09-10 14:33:48 -06:00
Danny Ryan 42bf435c54
rearrange gossip conditions 2020-09-10 14:10:09 -06:00
Danny Ryan 54f1abc943
Merge pull request #2036 from ethereum/typing_clean
Non-substantive typing clean-up
2020-09-10 14:07:32 -06:00
blacktemplar 9cbc7c37f4 use raw SHA256 as message-id 2020-09-09 15:02:47 +02:00
Hsiao-Wei Wang 6e900f4fcc
Add more typings, no substantive change 2020-09-03 19:27:16 +08:00
Hsiao-Wei Wang eed2df37f4
Make linter happy 2020-09-03 17:27:20 +08:00
vbuterin b35f8fff74
Add a constant for slash penalty multiplier
Make the multipler on slashed penalties (if portion `p` of validators are slashed each one loses `k*p` an explicit constant).
2020-09-02 12:26:27 +08:00
lsankar4033 a156f3821f Add two more attestation gossip validations 2020-08-26 16:18:38 -07:00
lsankar4033 a4acd38981 fix typo 2020-08-26 16:11:42 -07:00
tintinweb c3ff87461f fix typo 2020-08-21 12:10:10 +02:00
Danny Ryan e56b7cb4c0
Merge pull request #2022 from ethereum/state-for-block
clarify what 'state' is for block proposals in validator guide
2020-08-20 17:39:57 -06:00
Danny Ryan e323260a4a
fix some confusing language in validtor guide 2020-08-20 17:03:49 -06:00
Danny Ryan 444cd0249a
minot typo fix
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
2020-08-20 16:53:09 -06:00
Danny Ryan 9742b3a157
clarify what 'state' is for block proposals in validator guide 2020-08-19 09:58:02 -06:00
Hsiao-Wei Wang adf8698778
Update the docs and remove unused code 2020-08-18 00:58:08 +08:00
Hsiao-Wei Wang 643611aa6d
Merge pull request #2010 from ethereum/fix-shard-count
Fix active shard count issues
2020-08-12 03:05:16 +08:00
Danny Ryan 2a41c516d3
Merge pull request #2001 from lsankar4033/attestation-epoch-consistency
Add self-consistency check to attestation gossip validation
2020-08-11 12:59:19 -06:00
vbuterin 1f767ca8b9
Remove AttestationCustodyBitWrapper
Seems like this class is extraneous ever since we added Dankrad's 0.001 bit custody game.
2020-08-11 12:35:31 +08:00
Danny Ryan 8b39d41145
PR feedback 2020-08-10 13:06:20 -06:00
terence tsao 77b933035c
Update apply_shard_transition comments 2020-08-10 07:15:54 -07:00
terence tsao d22e02f20a
Update specs/phase1/beacon-chain.md
Co-authored-by: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-08-10 06:26:52 -07:00
terence tsao 729e21cbcf
apply_shard_transition: copy shard state 2020-08-08 09:29:04 -07:00
Danny Ryan c3ae85387c
add larger validator set test for regression test for active_shard_count issue 2020-08-05 13:26:21 -06:00
Danny Ryan 56dbc17793
fix active shard count bugs 2020-08-05 12:44:31 -06:00
Danny Ryan bf6d5ce3b6
port #2005 and rearrange conditions 2020-08-03 09:42:52 -06:00
Hsiao-Wei Wang e3bbf3c702
Merge branch 'dev' into shard-fork-choice-fix 2020-07-29 23:55:30 +08:00
Hsiao-Wei Wang bd5346b624
Merge pull request #1989 from ethereum/enable-bls-citest
Enable Milagro BLS in CI
2020-07-29 23:54:53 +08:00
lsankar4033 3a0dd2b253 Add self-consistency check to attestation gossip validation 2020-07-28 17:51:32 -07:00
Hsiao-Wei Wang b58633ce5d
Quick fix the phase 1 configurations and tests (#1990)
* Quick fix the configurations

* Remove the unused `CUSTODY_RESPONSE_DEADLINE`
2020-07-29 02:06:25 +08:00
Danny Ryan f6da7323fe
Merge pull request #1999 from ethereum/genesis-comments
add clarifying comment for genesis skip conditions
2020-07-28 12:31:54 -04:00
Hsiao-Wei Wang f6fd151872
Merge branch 'dev' into shard-fork-choice-fix 2020-07-29 00:15:41 +08:00
Hsiao-Wei Wang b1eb157539
Merge branch 'dev' into hwwhww/phase-1-fork-slot 2020-07-28 23:59:19 +08:00
Danny Ryan b529d47a3b
pr feedback 2020-07-28 11:48:45 -04:00
Hsiao-Wei Wang a8370f7448
Apply refactoring suggestions from Danny 2020-07-28 21:51:00 +08:00
Danny Ryan 235fb7e2a5
add clarifying comment for genesis skip conditions 2020-07-28 06:48:16 -04:00
Danny Ryan 049e087da0
Merge pull request #1996 from status-im/epoch-check
process_attestation: Validate epoch before using it
2020-07-24 08:04:06 -06:00
Jacek Sieka 6f7652d330
process_attestation: Validate epoch before using it
`data.target.epoch` is used to count the active validator set.

Because `get_committee_count_per_slot` is extremely inefficient the way
the spec is written, clients cache it, or the underlying active
validator set.

Performing the checks in the given order leads to a (very unlikely)
security issue where the a cold and above all, distant value may get
used which may be costly - reordering the checks brings the value into a
more reasonable range before using it.
2020-07-24 07:26:37 +02:00
Danny Ryan 607041225f
split config vs constants in deposit-contract spec 2020-07-23 15:05:25 -06:00
Danny Ryan 4c3f866a0f
add links for network and chain id 2020-07-23 12:25:44 -06:00
Hsiao-Wei Wang e7f070d525
Use `hash_tree_root` to generate `ShardBlockHeader.body_root`
Include the mix-in length to the proof.
2020-07-24 02:09:25 +08:00
Danny Ryan 9193a23f8e
add chain id and netowrk id to config 2020-07-23 12:05:22 -06:00
Diederik Loerakker 247da83e62
Merge pull request #1985 from ethereum/non-viable-gossip
add that current block is in the same chain as finalized ancestor
2020-07-23 19:18:53 +02:00
Danny Ryan 3cf6832198
Apply suggestions from code review
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2020-07-23 10:46:31 -06:00
Danny Ryan b3e49ff0d3
add finalized ancestor checks to attestation gossip 2020-07-23 10:39:04 -06:00
Danny Ryan fb13f67cca
add that current block is in the same chain as finalized ancestor 2020-07-23 10:13:42 -06:00
Danny Ryan 289564aec0
pr feedback 2020-07-23 10:03:43 -06:00
Danny Ryan a64b8eba6e
remove 'ssz' format from req/resp. now only ssz_snappy 2020-07-23 09:37:16 -06:00
Hsiao-Wei Wang cd8bb3d85a
Update v-guide: Shard head root 2020-07-22 23:39:18 +08:00
Hsiao-Wei Wang 33e56b5742
Apply Terence's suggestion: refactor on_shard_block interface 2020-07-22 22:48:52 +08:00
Danny Ryan 435f70208b
Merge pull request #1958 from ethereum/gossip-params
Match gossip v1.1 D_low, extend gossip_history param, add FAQ section
2020-07-21 18:18:25 -06:00
Danny Ryan 50cd0b2b31
Update specs/phase0/p2p-interface.md
Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2020-07-21 17:49:39 -06:00
Danny Ryan edcce7bfef
format 2020-07-21 17:00:11 -06:00
Danny Ryan ec7be11c06
mod gossip params and rename to reflect spec names 2020-07-21 16:45:25 -06:00
Hsiao-Wei Wang c981fc4411
Apply mkalinin's suggestion 2020-07-20 16:47:21 +08:00
Hsiao-Wei Wang 74aa027e38
Apply suggestions from @mkalinin
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
2020-07-20 16:37:43 +08:00
Hsiao-Wei Wang 0b81c967fa
Add notes 2020-07-17 00:46:25 +08:00
Hsiao-Wei Wang cf42fd4828
Rename `PHASE_1_GENESIS_SLOT` to `PHASE_1_FORK_SLOT` and set it to `Slot(0)` for testing. 2020-07-16 23:58:47 +08:00
Hsiao-Wei Wang 8e82ca5d1a
Merge branch 'dev' into hwwhww/new_int_to_bytes_dev 2020-07-16 01:36:19 +08:00
Hsiao-Wei Wang 6e3a7ad8f2
Merge branch 'dev' into hwwhww/strict-uint64-2 2020-07-15 23:02:51 +08:00
Hsiao-Wei Wang f6b1fe6172
Refactor tests and avoiding passing `shart_store` to helper functions 2020-07-15 19:07:39 +08:00
Hsiao-Wei Wang 43ef9aa294
Make ShardLatestMessage per shard per validator
1. Add `ShardLatestMessage` dataclass
2. To make it compatible with phase 0 tests and APIs, add `Store.shard_stores: Dict[Shard, ShardStore]`
3. Update `get_forkchoice_store` and `update_latest_messages`
2020-07-14 17:44:01 +08:00
Danny Ryan 7b43a3d772
Merge pull request #1956 from ethereum/queue-att
add queueing possibility to p2p messages in gossip
2020-07-08 10:53:19 -06:00
Danny Ryan 22b72180f7
Merge pull request #1962 from mkalinin/patch-1
Fix epoch_boundary_block_root computation
2020-07-08 10:52:57 -06:00
Mikhail Kalinin b785c97051
Fix epoch_boundary_block_root computation 2020-07-08 21:58:20 +06:00
ericsson 3e9556202a change `get_custody_period_for_validator()` return type to `uint64` 2020-07-08 18:19:41 +03:00
protolambda 07274736b9
Match gossip v1.1 D_low, extend gossip_history param, add FAQ section 2020-07-08 01:42:09 +02:00
Danny Ryan 334947f523
rearrange queuing conditions 2020-07-07 16:20:31 -06:00
Danny Ryan 4c1fa7fa6f
add note about max queue sizes in gossip 2020-07-07 12:41:41 -06:00
Danny Ryan 953d106163
add queueing possibility to p2p messages in gossip 2020-07-07 12:34:39 -06:00
Danny Ryan 6195e027f1
working through new-lines 2020-07-03 09:19:15 -06:00
Danny Ryan 04a6c96cdf
break p2p topics into separate md headers for better linking 2020-07-03 07:50:30 -06:00