Commit Graph

1596 Commits

Author SHA1 Message Date
vbuterin 73f9ad0512
Added missing colon 2019-03-03 05:54:58 -06:00
vbuterin d0fc455a1f
Assimilated #649 2019-03-03 05:04:28 -06:00
vbuterin dcb0205adc
Merge branch 'dev' into vbuterin-patch-7 2019-03-03 04:30:51 -06:00
vbuterin 46b1d4eef5
Assimilated #697 2019-03-03 04:28:13 -06:00
Hsiao-Wei Wang 868359a674
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 04:00:09 -06:00
Hsiao-Wei Wang cd7c7228c9
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 03:59:12 -06:00
Hsiao-Wei Wang 72c28bc59a
Refactor `process_slashings` 2019-03-03 17:58:45 +08:00
Hsiao-Wei Wang 19924f3148
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 03:58:18 -06:00
Hsiao-Wei Wang 07599b3a45
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 03:57:48 -06:00
Hsiao-Wei Wang 1103fd1ee8
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 03:57:27 -06:00
Hsiao-Wei Wang fa613b401f
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 03:56:54 -06:00
Hsiao-Wei Wang 2d6697eb62
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 03:56:12 -06:00
Hsiao-Wei Wang c42cab87a7
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 03:55:20 -06:00
Hsiao-Wei Wang c9a6215ab8
Merge pull request #713 from protolambda/protolambda-fix-randao-mixes
fix randao mixes type, bytes32 like in function and state spec
2019-03-03 13:50:34 +08:00
vbuterin cefe9e995b
Proof of custody game, take 2 (#682)
* Proof of custody game, take 2

Unfortunately not simpler than before, but moves challenges outside of the validator records and so keeps validator records constant-size.

* Removed unneeded challenge codes

* Formatting fixes
2019-03-02 20:36:04 -06:00
vbuterin fde66a7105
Update to make CC happy 2019-03-02 20:11:33 -06:00
protolambda f137f1ce90
fix randao mixes type, bytes32 like in function and state spec 2019-03-02 18:02:50 +01:00
vbuterin ce5599db2f
Made crosslink processing a function 2019-03-02 00:42:20 -06:00
vbuterin 0134e56010
Fixed table of contents 2019-03-02 00:40:43 -06:00
Hsiao-Wei Wang fa327a18ea
Add docstring 2019-03-02 13:51:48 +08:00
Hsiao-Wei Wang 00804da13e
Fix type hinting 2019-03-02 13:48:46 +08:00
vbuterin 4ad3529e4e
Finished epoch transition 2019-03-01 19:49:28 -06:00
vbuterin 2d4c8af489
Split up big function into two smaller functions 2019-03-01 19:34:26 -06:00
vbuterin 7c6232a602
Update 0_beacon-chain.md 2019-03-01 19:22:24 -06:00
vbuterin 4cc738dc53
Apply suggestions from code review
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 19:17:07 -06:00
Hsiao-Wei Wang e0b8eea7d6
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 19:12:31 -06:00
Hsiao-Wei Wang 46269310ee
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 19:12:21 -06:00
Hsiao-Wei Wang 6c1abbc2fc
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 19:12:11 -06:00
vbuterin b8d1003c2c
Updates to make HW and Danny happy 2019-03-01 19:11:13 -06:00
Hsiao-Wei Wang ec20edb80e
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 19:05:02 -06:00
Hsiao-Wei Wang 3d8e0f1920
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 19:04:55 -06:00
Hsiao-Wei Wang ff88d22f9a
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 19:04:49 -06:00
vbuterin 26179ede5f
branch -> proof 2019-03-01 19:01:40 -06:00
Hsiao-Wei Wang 0c24ca9bb0
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 18:59:55 -06:00
vbuterin 5ceec70dd3
Pythonize epoch transitions (in progress) 2019-03-01 07:59:52 -06:00
Justin 25ef2553c7
Update simple-serialize.md 2019-03-01 12:02:29 +01:00
vbuterin 236298a8e4
Hard assert that the Merkle branch is valid 2019-03-01 03:58:18 -06:00
Danny Ryan 19665e4ca5
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 00:16:05 -06:00
Danny Ryan 0fb4cae2d6
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 00:15:49 -06:00
Danny Ryan 5ed0f276f6
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 00:13:59 -06:00
Danny Ryan a9be1018d3
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 00:13:32 -06:00
Danny Ryan 19c3189c1c
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 00:13:22 -06:00
Danny Ryan 087576a7bb
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-01 00:12:45 -06:00
vbuterin 80ac62606c
Unified deposit processing between genesis and transaction 2019-02-28 21:07:10 -06:00
vbuterin d5900836aa
Convert transaction descriptions from English to python code
Only a change of presentation, does not make any substantive changes.

Does NOT handle Deposit transactions because that is a special case for which I recommend a deeper change (will do this in another PR soon).
2019-02-28 20:54:59 -06:00
Danny Ryan 8df7de150e
Merge pull request #703 from Nashatyrev/strict-active-validator
Make 'Any active validator' statements stricter.
2019-02-28 17:24:30 -07:00
Hsiao-Wei Wang bcb0b8bf87
Refactor `exit_validator` 2019-03-01 00:49:51 +08:00
Hsiao-Wei Wang bdd6868736
Fix ToC 2019-03-01 00:49:51 +08:00
Hsiao-Wei Wang b836b30bff
Fix "is_ready_to_exit" condition 2019-03-01 00:49:45 +08:00
Anton Nashatyrev f38dc048e4 Make 'Any active validator' statement more strict. 2019-02-28 17:17:00 +03:00
Hsiao-Wei Wang dbbfb93873
Order by `committees_per_epoch`, `seed`, `shuffling_epoch`, and
`shuffling_start_shard`
2019-02-28 19:07:37 +08:00
Justin 67793edc8d
Update simple-serialize.md 2019-02-28 11:34:24 +01:00
Justin 7ab7abe2ca
Update simple-serialize.md 2019-02-28 11:32:54 +01:00
Hsiao-Wei Wang 34091d70ec
Fix typo 2019-02-28 16:30:46 +08:00
Danny Ryan bb44d25665
Merge pull request #688 from decanus/patch-21
Use `slashed` bool more Pythonicly
2019-02-27 15:02:33 -07:00
Danny Ryan 5692b3483d
Update 0_beacon-chain.md 2019-02-27 15:02:11 -07:00
Danny Ryan 769afa704e
Merge pull request #684 from ethereum/vbuterin-patch-5
Developer notice
2019-02-27 14:58:29 -07:00
Justin 3e6934b602
Update simple-serialize.md 2019-02-27 22:44:20 +01:00
Justin 74349eacd2
Update simple-serialize.md 2019-02-27 22:33:36 +01:00
Danny Ryan 8176cc4cf0
Apply suggestions from code review
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2019-02-27 22:23:42 +01:00
Danny Ryan c9ac8170f0
ensure that next committee assignemtns is stable when need to be 2019-02-27 11:37:54 -07:00
Danny Ryan e2f4e32332
fix committee start shard bug 2019-02-27 11:27:23 -07:00
Justin bac352e70f
Update simple-serialize.md 2019-02-27 18:02:53 +01:00
Justin 99074d09ec
Update simple-serialize.md 2019-02-27 18:00:49 +01:00
Justin e766193588
Update simple-serialize.md 2019-02-27 17:59:49 +01:00
Justin 54a81a8ebf
Update simple-serialize.md 2019-02-27 17:56:51 +01:00
Justin aa676354a0
Update simple-serialize.md 2019-02-27 17:54:19 +01:00
Justin 95fa9d56b8
Update simple-serialize.md 2019-02-27 17:35:26 +01:00
jannikluhn 828146cbf8
Apply suggestions from code review
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2019-02-27 17:15:46 +01:00
Justin 0df8f8b3c6
Update simple-serialize.md 2019-02-27 13:04:36 +01:00
Justin e698d7e29b
Update simple-serialize.md 2019-02-27 12:57:06 +01:00
Justin 07922a63fb
Update simple-serialize.md 2019-02-27 12:54:56 +01:00
Justin 28cf5860ea
Update simple-serialize.md 2019-02-27 12:53:24 +01:00
Justin 5116645dfa
Update simple-serialize.md 2019-02-27 12:40:08 +01:00
Justin 313fe46a94
Update simple-serialize.md 2019-02-27 12:06:06 +01:00
Justin df50ac1adc
Update simple-serialize.md 2019-02-27 12:03:27 +01:00
Justin 5c5f15c82c
Rewrite SSZ spec
* Implement tuples and a chunk-size reduction to 32 bytes (see #665 and #679)
* Simplify presentation where appropriate. For example, deserialisation is implicit from serialisation (similar to `bls_sign` being implicit from `bls_verify`) and is left as an implementation exercise.
* Dramatically reduce spec size and hopefully improve readability.
2019-02-27 11:54:23 +01:00
vbuterin e9c3af5428
Update 1_shard-data-chains.md 2019-02-26 18:00:20 -06:00
Danny Ryan b2c53045fc
make get_beacon_proposer_index safe for next epoch 2019-02-26 15:55:27 -07:00
Alex Stokes e7d908f1f1
formatting nitpick
drop some parens in the spirit of consistency and parsimony
2019-02-26 14:45:25 -08:00
Dean Eigenmann 8b14a2bef5
Update 0_beacon-chain.md 2019-02-26 17:15:26 +01:00
Danny Ryan daa8275318 minor bug in validator doc `get_committee_assignment` (#689) 2019-02-26 12:19:28 +08:00
vbuterin 05f6f68028
Made developer notice less committal 2019-02-25 16:45:57 -06:00
Dean Eigenmann c9f1dfcbb3
Update 0_beacon-chain.md 2019-02-25 21:39:23 +01:00
Danny Ryan b2a3ee4bbc
skip bad proof of possession deposits 2019-02-25 09:36:52 -07:00
Danny Ryan fbb70e91eb
remove todo 2019-02-25 07:58:23 -07:00
Danny Ryan b2ed80250a
Merge pull request #678 from ethereum/JustinDrake-patch-6
Allow transfers from non-activated validators
2019-02-25 07:54:57 -07:00
vbuterin 6a92407702
Developer notice 2019-02-25 04:16:18 -06:00
Justin 6b5769a861
Update 0_beacon-chain.md 2019-02-25 10:30:03 +01:00
Danny Ryan 8c666e8930
Merge pull request #676 from ethereum/JustinDrake-patch-4
Specify lexicographic ordering of crosslink_data_root
2019-02-24 18:43:26 -07:00
Danny Ryan 8dbb7326ee
Merge pull request #673 from ethereum/genesis_committee_assign
make getting assignments more generic
2019-02-24 17:50:42 -07:00
Justin da6b5466d5
Allow transfers from non-activated validators
See item 6 in https://github.com/ethereum/eth2.0-specs/issues/675. This makes transfers more generic.
2019-02-23 20:25:55 +01:00
Justin 1d757aec74
Specify lexicographic ordering of crosslink_data_root
Fix #542.
2019-02-22 21:02:03 +01:00
Danny Ryan 060e3c36c5 fix up previous epoch logic around genesis (#672) 2019-02-22 20:51:09 +01:00
Hsiao-Wei Wang c96f709505
Update 0_beacon-chain-validator.md 2019-02-23 00:31:27 +08:00
Danny Ryan 06e6496bca
Merge pull request #662 from ethereum/vbuterin-patch-5
Rename shard_block_root -> crosslink_data_root
2019-02-22 08:51:01 -07:00
Danny Ryan b89cd234f0
change shard_block_root to crosslink_data_root throughout 2019-02-22 08:50:03 -07:00
Danny Ryan a683416537 Fix slot range for attestation inclusion (#669)
* Fix slot range for attestation inclusion

* Update specs/core/0_beacon-chain.md

Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-02-22 23:36:36 +08:00
Danny Ryan d0d2fa10d9
Merge pull request #671 from ethereum/v-guide-bugs
validator guide bug fixes
2019-02-22 08:34:34 -07:00
Danny Ryan d27132cb0a
Merge pull request #658 from ethereum/vbuterin-patch-3
Turned slashed and initiated_exit into booleans
2019-02-22 08:34:17 -07:00
terence tsao 68b5fe5b9f
small typo
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-02-22 08:15:40 -07:00
Dean Eigenmann e1fc8a5765
Update 0_beacon-chain.md 2019-02-22 13:00:29 +01:00
Dean Eigenmann a8c3c45faf
Update 0_beacon-chain.md 2019-02-22 12:58:59 +01:00
Hsiao-Wei Wang e8d41fd889
Fix missing `get_epoch_start_slot()` 2019-02-22 14:30:07 +08:00
vbuterin f77b9e2414
Changed name to crosslink data commitment 2019-02-22 00:21:56 -06:00
Danny Ryan 8169229f5a
clean up 2019-02-21 16:58:58 -07:00
Danny Ryan f28af3f72b
Add spacing 2019-02-21 16:56:43 -07:00
Danny Ryan 2bd6057c12
make getting assignments more generic 2019-02-21 16:53:52 -07:00
Danny Ryan d31aeacd3c
fix minor errors per #628 2019-02-21 15:18:41 -07:00
Danny Ryan 0f222171ca
fix epoch boundary root per #652 2019-02-21 15:14:59 -07:00
Danny Ryan 830ae3be9a
Merge pull request #655 from ethereum/JustinDrake-patch-4
Reduce GENESIS_SLOT to 2**32
2019-02-21 14:51:12 -07:00
Justin 5f59aad00d
Clarify use of `FAR_FUTURE_EPOCH` as a flag 2019-02-21 22:34:11 +01:00
Hsiao-Wei Wang 26908d5579 Fix constant name `MIN_VALIDATOR_WITHDRAWABILITY_DELAY` -> `MIN_VALIDATOR_WITHDRAWABILITY_DELAY` (#661) 2019-02-20 15:58:25 +00:00
Hsiao-Wei Wang a79fa398f1 Minor fix: `messages` -> `message_hashes` (#664) 2019-02-20 11:42:53 +00:00
Justin e25e87f003
Update 0_beacon-chain.md 2019-02-20 07:45:19 +00:00
Justin 9ac61e57c0
Update 0_beacon-chain.md 2019-02-20 07:18:12 +00:00
vbuterin 461cd8b599
Rename shard_block_root -> shard_data_commitment 2019-02-20 00:46:28 -06:00
vbuterin 09e8448763
Turned slashed and initiated_exit into booleans
Cuts validator record size from 120 to 106 bytes, and arguably is a simplification
2019-02-19 20:00:46 -06:00
Alex Stokes 8262ce1cc0
Fix typo from earlier renaming in #534. 2019-02-19 15:09:11 -07:00
Justin 9b7b35bc9d
Reduce GENESIS_SLOT to 2**32
* Address the slot/epoch underflow problem, even for Java implementers! 🎉
* Squash a bug with `get_previous_epoch`
* Fix #642
* Address #626 (Vitalik, Danny, myself agree that avoiding signed integers is probably best)
2019-02-19 21:08:10 +00:00
terence tsao a3d85c8405 Update 0_beacon-chain.md (#654) 2019-02-19 17:49:37 +00:00
sigmoid 00aa553fee updated SSZ implementation list (#653)
* updated SSZ implementation list

Signed-off-by: sigmoid <alphabet@hotmail.co.kr>

* Update specs/simple-serialize.md

Co-Authored-By: NAKsir-melody <alphabet@hotmail.co.kr>
2019-02-20 00:47:15 +08:00
vbuterin 2540f55c13
Updated phase 1: branch and early subkey reveal challenges (#587)
* Updated phase 1: branch challenges

* Removed unnecessary line

* Added early subkey reveal slashing

* Revealing during the active period is still revealing early

* Added....

* Machinery for publishing old subkeys
* Inability to withdraw until you published all subkeys
* After a validator exits the queue there's still a minimum 1-day delay before they can withdraw (in the future this delay will be used as an opportunity to start a PoC challenge game)

* Update 1_shard-data-chains.md

* formatting

* minor edits

* Added masking scheme for reveals

Secure under the aggregate extraction infeasibility assumption described on pages 11-12 of https://crypto.stanford.edu/~dabo/pubs/papers/aggreg.pdf

* Added rewards going to challengers

* Add ToC and reorg the constant tables

* Remove tags

* fix constant formatting

* normalize domain constants in phase 1

* Update 1_shard-data-chains.md

* Update 1_shard-data-chains.md

* Update 1_shard-data-chains.md

* Added transition logic

* Fix ToC

* Fix ToC

* Adjusted for #615

* Added more helpers

* epoch -> slot

* fix some type hints

* clean up `get_attestation_merkle_depth`
2019-02-19 05:26:35 -06:00
terence tsao f0b562054f Update 0_beacon-chain-validator.md (#650) 2019-02-19 16:19:31 +08:00
Danny Ryan 0bc3998c89
Merge pull request #641 from paulhauner/patch-11
Fix out-of-bounds in `get_shuffling`
2019-02-18 10:22:57 -07:00
Danny Ryan 75e649cc15
Merge pull request #634 from paulhauner/patch-10
Add explicit assert to get_permutated_index
2019-02-18 10:14:07 -07:00
Danny Ryan 9eb3be5471
Merge branch 'dev' into JustinDrake-patch-1 2019-02-17 21:16:45 -07:00
Cayman 5fbbb4f181 Clarify merkle_root documentation (#646)
This function is used to get the merkle root of some block roots which are themselves hashes, so the leaves do not need to be rehashed.
Unfortunately, it's easy to assume that a merkle_root function would hash its leaves, so it should be clarified.
2019-02-18 12:11:01 +08:00
Cayman eea413bcc5 Fix typos (#648) 2019-02-17 22:53:59 +00:00
vbuterin 59ade930d6 Signature hashing proposal (#625)
If this is accepted, then we can replace all uses of signing in the protocol, which are currently done in a relatively inconsistent way (see proposer signatures, attester signatures, shard proposer signatures, exit message signatures.....) could be unified.
2019-02-16 21:44:27 +00:00
Justin 4baa13050e
Update 0_beacon-chain.md 2019-02-16 21:13:46 +00:00
Justin 1d95c1482c
Update 0_beacon-chain.md 2019-02-16 21:11:48 +00:00
d-yokoi f2e547e629 docs: fix typo in 0_beacon-chain.md 2019-02-16 23:12:00 +09:00
d-yokoi 464947dbd4 docs: fix typo in 0_beacon-chain.md (#640) 2019-02-16 09:11:29 +00:00
Paul Hauner b92cd9be03
Add fix to `get_shuffling`
Ensures it does not try to shuffle out of range of the `active_validator_indices` list.
2019-02-16 17:55:27 +11:00
Paul Hauner 2e6bf87bdf
Fix max list size for get_permutated_index 2019-02-16 17:27:47 +11:00
Danny Ryan f932534763
Merge pull request #637 from ethereum/hwwhww-patch-2
Fix `slash_validator`
2019-02-15 09:40:24 -07:00
Jonny Rhea e074bc2c34 Update 0_beacon-chain.md (#635)
replace vote_data with slashable_attestation in verify_slashable_attestation()
2019-02-15 14:48:09 +00:00
Hsiao-Wei Wang 984eb79f68 Fix unix time condition of an acceptable block (#636) 2019-02-15 13:46:47 +00:00
Justin 2207fd17f5
Update 0_beacon-chain.md 2019-02-15 13:37:36 +00:00
Hsiao-Wei Wang 6f856ba009
Comparing in slot 2019-02-15 18:33:22 +08:00
Hsiao-Wei Wang e0c28a3cd0
Fix `slash_validator`
Define `validator` before using it.
2019-02-15 18:25:30 +08:00
Paul Hauner 2f327f36d8
Improve asset in get_permutated_index 2019-02-15 12:50:56 +11:00
Paul Hauner 267f840570
Add explicit assert to get_permutated_index
There is an implicit assert in `int_to_bytes4`, however I think it's rather hidden.
2019-02-15 11:57:23 +11:00
Justin 888b06ce4a
Update 0_beacon-chain.md 2019-02-15 00:24:46 +00:00
Justin ab140c2f1c
Update 0_beacon-chain.md 2019-02-15 00:23:03 +00:00
Danny Ryan 375659dc6c
name changes in validator doc and phase 1 doc 2019-02-14 16:02:01 -07:00
Danny Ryan 81e8f53ab9
Merge pull request #629 from terenc3t/patch-50
Quick fix on epoch boundary root
2019-02-14 15:44:40 -07:00
terence tsao 380f5bc86b
Update 0_beacon-chain-validator.md 2019-02-14 14:00:43 -08:00
Justin 241ae5ed49
Merge branch 'dev' into name-changes 2019-02-14 20:48:34 +00:00
Danny Ryan 677efe5840 fix off by one attestaton issue due to attesting to post state of block (#627) 2019-02-14 20:16:19 +00:00
Paul Hauner d7fb7729e6 Add cautionary assert in shuffling function (#622) 2019-02-14 14:14:59 +00:00
vbuterin 6c49270664 Added minimum slashing penalty of ~1 ETH (#624) 2019-02-14 14:00:12 +00:00
Justin e86fa58167
Merge branch 'dev' into name-changes 2019-02-14 10:27:17 +00:00
vbuterin eadfa20b99 Bring forward changes to withdrawability from phase 1 (#615)
* Bring forward changes to withdrawability from phase 1

* The `WITHDRAWABLE` flag is removed; instead, a validator's withdrawability is determined through the `withdrawable_epoch` field (renamed and re-purposed from `withdrawal_epoch` which was not used)
* When a validator passes through the withdrawal queue, the `prepare_validator_for_withdrawal` function does not let them withdraw immediately; instead, they have to wait `MIN_VALIDATOR_WITHDRAWAL_EPOCHS`. This extra minimum delay serves no value in phase 0, but is crucial for phase 1 as the period between a validator passing through the queue and the validator being eligible to withdraw is where proof of custody challenges can come in; adding it in phase 0 is only half a line of code so easier to add it now.
* If a validator is penalized, they are no longer subject to the exit queue; instead, their `withdrawable_epoch` is set `LATEST_PENALIZED_EXIT_LENGTH` into the future and this is used to determine when the validator can withdraw
* Changes the eligibility condition for a transfer to use the `withdrawable_epoch`
2019-02-14 10:20:53 +00:00
Justin f14af7ae67
Merge branch 'dev' into name-changes 2019-02-13 23:53:38 +00:00
Danny Ryan 83b67b6097
Merge pull request #617 from ethereum/hwwhww/fix_compute_commitment
Fix `compute_commitment`
2019-02-13 11:54:03 -07:00
terence tsao fd5c3ee8b5
Update 0_beacon-chain.md 2019-02-13 08:38:03 -08:00
Hsiao-Wei Wang f7320ec25b
Fix `compute_commitment`
1. Use `+` to concatenate the merkle roots in `hash` function.
2. Fix `pad_to_power_of_2`: padding with `[b'\x00' * SHARD_BLOCK_SIZE]`,
not `[SHARD_BLOCK_SIZE]`.
2019-02-14 00:30:00 +08:00
Danny Ryan 3d5aa352be
Merge pull request #597 from ethereum/reward-clarifications
Reward clarifications/fix
2019-02-13 08:21:30 -07:00
terence tsao a730295982 Update 0_beacon-chain.md (#614) 2019-02-13 01:40:24 +00:00
vbuterin cf371c4973 Add support for transfers between withdrawn accounts (#601) 2019-02-12 22:41:38 +00:00
Justin b6d27edd6e
Update 0_beacon-chain.md 2019-02-12 22:38:29 +00:00
Justin 3459515c2c
Merkleise SSZ container elements (#595)
Reasons to use `merkle_hash` instead of  `hash` for containers:

1) **Smaller witnesses**: `BeaconState` is a somewhat wide container (26 fields as of now, likely 30+ in phase 2). With concatenation and plain concatenation the size of the Merkle witnesses for the top level are ~32 bytes per field element.
2) **Faster incremental hashing**
3) **Consistency**: Consistent with `merkle_hash` for lists/vectors.
2019-02-12 21:57:54 +00:00
Danny Ryan 8213ad64e2
add note about attestations on chain voting for justified 2019-02-12 13:08:17 -08:00
Justin bd9baeca0c
Update 0_beacon-chain.md 2019-02-12 13:37:30 +00:00
Justin d4f79c8878
Update 0_beacon-chain.md 2019-02-12 12:28:13 +00:00
Justin de7263c838
Update 0_beacon-chain.md 2019-02-12 12:24:19 +00:00
Justin 8445d06b8f
Merge branch 'dev' into name-changes 2019-02-12 11:59:05 +00:00
Jacek Sieka f871b9a0d1 Use little endian bit order (#575)
Slightly more simple and common to find bit n at position `1 << n`
2019-02-12 11:52:07 +00:00
Justin 9a4f4d5344
Fix SSZ merkleisation bug (#602) 2019-02-12 11:12:29 +00:00
Hsiao-Wei Wang 41e95cf9ea Refactor `get_persistent_committee` (#604) 2019-02-12 11:11:45 +00:00
Paul Hauner de90d4475e Provide definition for undefined `index` (#608)
The `index` variable is not defined and, IMO, it's difficult to discern.
2019-02-12 11:09:27 +00:00
Paul Hauner 3ea0c27be0 Minor modification to reduce lines of code (#607) 2019-02-12 11:06:26 +00:00
Danny Ryan 98902d12e3 assert/unhandled exception note to state transition (#606) 2019-02-11 21:30:36 +00:00
Danny Ryan c44f6c0dbb
Merge pull request #600 from ethereum/JustinDrake-patch-3
Add note on leap seconds
2019-02-11 08:08:50 -07:00
Justin 0069241b9c
Alias `bytes` to `List[bytes1]` 2019-02-11 14:49:11 +00:00
Justin 2275587149
Add note on leap seconds
Clarify the local time is Unix time and add note on leap seconds.
2019-02-11 13:29:54 +00:00
Jordan Andrews afca1e2127 Add C# implementation 2019-02-11 22:01:05 +11:00
Danny Ryan 1d77c57374
clarify active validator meaning for rewards/penalties 2019-02-10 18:43:56 -07:00
Danny Ryan e8f9dce1d3
simply reward logic for justified slot from previous epoch 2019-02-10 18:38:42 -07:00
vbuterin db4f99d899
Fixed end of code block 2019-02-10 15:47:26 -06:00
Danny Ryan ab44cbe380
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-10 15:45:57 -06:00
vbuterin 9bba3362eb
Update specs/core/1_shard-data-chains.md 2019-02-10 15:45:47 -06:00
vbuterin 9e66b069b2
Update specs/core/1_shard-data-chains.md 2019-02-10 15:45:16 -06:00
Danny Ryan ad3f43a4a6
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-10 15:45:06 -06:00
vbuterin 046119fb2e
Update specs/core/1_shard-data-chains.md 2019-02-10 15:44:58 -06:00
Danny Ryan 181dc183b6
Merge branch 'dev' into vbuterin-patch-6 2019-02-10 13:12:01 -07:00
Dean Eigenmann 2944a7ddfc Renamed `Helpers` -> `Variables`, seems to make more sense (#560) 2019-02-10 16:19:12 +00:00
vbuterin 1f97206dcf Updated phase 1: commitments (#579)
See #338 and #529 for discussion.
2019-02-10 16:17:21 +00:00
vbuterin abed5ffdae Updated phase 1: fork choice rule (#586)
Adds the crosslink committee to the fork choice rule. This is useful because it means that even if a proposal committee is byzantine and attempts to prevent a crosslink via a "balance attack" (alternating between chain A and chain B being the canonical chain), the crosslink committee can force the equilibrium to flip to one side or the other.
2019-02-10 16:16:22 +00:00
vbuterin 8097b2373b
Added deduplication 2019-02-10 00:09:34 -06:00
Danny Ryan a712abfb2a
Merge pull request #589 from Nashatyrev/dev
Silently skip deposits with invalid proof in process_deposit
2019-02-09 08:22:38 -07:00
Danny Ryan 7886d96186
change proof_is_valid to exit condition 2019-02-09 07:21:38 -08:00
vbuterin e48010b77b
Change var name to avoid confusing the reader into thinking the `valid_proof` variable contains a valid proof as opposed to just being a bool.
Co-Authored-By: Nashatyrev <Nashatyrev@users.noreply.github.com>
2019-02-09 11:10:54 +03:00
vbuterin 0157aa039c
Change var name to avoid confusing the reader into thinking the `valid_proof` variable contains a valid proof as opposed to just being a bool.
Co-Authored-By: Nashatyrev <Nashatyrev@users.noreply.github.com>
2019-02-09 11:10:03 +03:00
vbuterin 65c5a1a1b7
Fixed get_persistent_committee 2019-02-08 22:10:54 -06:00
Danny Ryan e0d8cf4268
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 22:07:14 -06:00
Danny Ryan 8dd111b7e6
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 22:06:46 -06:00
Danny Ryan ad0ff80be2
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 22:06:03 -06:00
vbuterin 019fe8953e
Fixed as per @djrtwo's comments 2019-02-08 22:02:55 -06:00
vbuterin 36d5120deb
Initialize deposit index 2019-02-08 19:38:09 -06:00
vbuterin 057364a7d4
Add mandatory deposit index ordering
Co-requisite with #589
2019-02-08 19:37:34 -06:00
Danny Ryan 663d38e9c8
simplify get_next_epoch_committee_assignment by adding registry_change arg 2019-02-08 11:54:17 -07:00
Danny Ryan 334d47714d
fix a couple of nitpicks before release 2019-02-08 10:35:57 -07:00
Anton Nashatyrev f9eaab1d04 Silently skip deposits with invalid proof in process_deposit 2019-02-08 18:04:32 +03:00
vbuterin e5bd78e5e6
Persistent committee refactors 2019-02-08 04:08:52 -06:00
vbuterin 65ec418213
A few more cleanups 2019-02-08 03:54:02 -06:00
vbuterin 47c396f3f8
Break lets into separate lines 2019-02-08 03:50:00 -06:00
vbuterin 410372ff0e
Proposal committee -> persistent committee 2019-02-08 03:48:58 -06:00
Hsiao-Wei Wang 2cff0e6b7a
Use the new `bytesN` SSZ object
`hash32` -> `bytes32`
['uint384'] -> `bytes96`
2019-02-08 16:46:50 +08:00
Danny Ryan 5a1b2c29f2
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:08:30 -06:00
Danny Ryan 5e84d7e3ff
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:08:15 -06:00
Danny Ryan bdd7dc106a
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:08:01 -06:00
Danny Ryan a1f542b674
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:07:46 -06:00
Danny Ryan fb90fd7ac3
Update specs/core/1_shard-data-chains.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:07:31 -06:00
Danny Ryan 6d9581281d
change latest_crosslink_root to latest_crosslink in validator guide 2019-02-07 21:25:47 -07:00
Danny Ryan 08274fe7bf
Merge branch 'dev' into vbuterin-patch-9 2019-02-07 21:23:46 -07:00
Danny Ryan f0cbacb828
add missing . 2019-02-07 20:22:28 -08:00
Danny Ryan 0ad2ffab50
Merge branch 'dev' into big-to-little 2019-02-07 21:00:36 -07:00
Danny Ryan 87dc8a6c70
Merge pull request #576 from ethereum/vbuterin-patch-5
Introduce swap-or-not shuffle
2019-02-07 20:57:02 -07:00
vbuterin 1c6ccac8fc
SHUFFLE_ROUND_COUNT as global constant 2019-02-07 21:55:33 -06:00
Danny Ryan f797826ee2
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-07 21:51:56 -06:00
vbuterin 086df84bdc
Attestation data contains latest crosslink, not just latest crosslink data
The reason to do this is that it makes it calculable from inside an attestation how many epochs the attestation spans over, which is needed for proof of custody reasons. It's a relatively small change and so arguably easier to do now than to do as a patch in phase 1.

Note that this changes the meaning of latest_crosslink.epoch, from the epoch when the latest crosslink was included to the epoch that the latest crosslink was for. This affects the line:

* `state.latest_crosslinks[shard].epoch > state.validator_registry_update_epoch` for every shard number `shard` in `[(state.current_epoch_start_shard + i) % SHARD_COUNT for i in range(get_current_epoch_committee_count(state))]` (that is, for every shard in the current committees)

But this may actually make it _more_ correct, as it means that in the case where >512 shards are processed per epoch, and so a committee from the previous epoch could get finalized in the current epoch, that would no longer count toward every shard having received a "new" crosslink.
2019-02-07 19:34:54 -06:00
Hsiao-Wei Wang 1582413151
Merge pull request #583 from mratsim/continue-message_hash-bls-changes
Continue message hash changes on non-bls part of the specs
2019-02-08 05:24:52 +08:00
mratsim ca098f8cfa Prevent changing another TOC 2019-02-07 22:19:04 +01:00
mratsim fd3d4a5105 Don't change TOC 2019-02-07 22:15:55 +01:00
Hsiao-Wei Wang 89b9894328
Fix type hinting 2019-02-08 05:15:42 +08:00
Hsiao-Wei Wang 911e4f104b
Add `bytes_to_int` 2019-02-08 05:12:58 +08:00
mratsim cf7ebe9ad3 `message` to `message_hash` in the rest of the spec (followup https://github.com/ethereum/eth2.0-specs/pull/580) 2019-02-07 22:09:41 +01:00
Hsiao-Wei Wang 859bf62484
Revert and refactor 2019-02-08 05:08:25 +08:00
Danny Ryan e8ec977168
Merge pull request #548 from ethereum/hwwhww/typo_hash_tree_root
Fix typo `tree_hash_root` -> `hash_tree_root`
2019-02-07 13:51:18 -07:00
Danny Ryan cc2df634cd
Merge pull request #549 from ethereum/registry_change
Misc fixes of `get_next_epoch_crosslink_committees`
2019-02-07 13:31:57 -07:00
Hsiao-Wei Wang e4f5efadb7
Fix `first_committee_at_slot` 2019-02-08 04:03:13 +08:00
Danny Ryan d4901be198
get_next_epoch_committee_assignments returns slot and is_proposer 2019-02-07 11:48:36 -07:00
Danny Ryan 3f3472087a
change message to message_hash in bls spec
addresses #572
2019-02-07 10:37:01 -08:00
Hsiao-Wei Wang aa9f9fc9be
amend 2019-02-07 19:18:39 +08:00
Hsiao-Wei Wang 70e482be28
Add vbuterin's optimization and some formatting 2019-02-07 19:14:58 +08:00
vbuterin 92514716fb
Update 0_beacon-chain.md 2019-02-06 23:32:20 -06:00
vbuterin 65255e53c4
shuffle -> get_permuted_index 2019-02-06 23:29:24 -06:00
Danny Ryan b3db7b0394
big to little in shuffle 2019-02-06 20:32:05 -08:00
vbuterin 8597cbef1f
Updated phase 1: shard block structure 2019-02-06 20:32:56 -06:00
vbuterin 47b00f38dd
n -> len(values) 2019-02-06 18:34:05 -06:00
Hsiao-Wei Wang 6a5b7540da
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-06 18:33:29 -06:00
Danny Ryan 4ec721f3b7
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-06 18:33:22 -06:00
Hsiao-Wei Wang 37b41a2ce6
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-06 18:33:11 -06:00
vbuterin 8f37c5c0f8 Update fork choice rule (#571) 2019-02-06 08:34:19 -08:00
vbuterin c58410e6ce
Introduce swap-or-not shuffle
See #563 for discussion.
2019-02-06 06:48:46 -06:00
Danny Ryan ec1a08278b
Merge pull request #573 from ethereum/hwwhww/verify_bitfield
Fix `verify_bitfield`
2019-02-05 18:57:40 -08:00
Justin 180c8a0e72
Update 0_beacon-chain.md 2019-02-05 11:51:06 -08:00
Justin 1d76ad65ec
Update 0_beacon-chain.md 2019-02-05 11:49:52 -08:00
Hsiao-Wei Wang e5788f5751 Fix typo: it's `bls_verify_multiple` in `verify_slashable_attestation` (#574) 2019-02-05 09:11:00 -08:00
Hsiao-Wei Wang 867dea3473
Fix `verify_bitfield` 2019-02-05 19:16:10 +08:00
Taras Bobrovytsky 147ee2f991 Fix get_total_balance() 2019-02-04 01:49:16 -06:00
Hsiao-Wei Wang 47844116ea
Merge pull request #565 from terenc3t/patch-45
get_previous_epoch as a helper
2019-02-04 14:56:15 +08:00
Hsiao-Wei Wang 3aed1cf935
Merge pull request #567 from decanus/patch-17
Defines `get_total_balance` helper function
2019-02-04 14:55:39 +08:00
Danny Ryan 3e2eb1cb36
Merge pull request #562 from ralexstokes/remove-vyper-code
Removes the source of the Vyper contract from the spec.
2019-02-03 15:31:56 -08:00
Alex Stokes 8755dc34d5
Add direct link to validator registration contract 2019-02-03 15:22:03 -08:00
Alex Stokes 8c5868cbe8
Extend `deposit` API with note about bounds on acceptable values 2019-02-03 15:20:49 -08:00
vbuterin 2ac420c5ea
Merge pull request #538 from ethereum/vbuterin-patch-1
SSZ list Merkle hashing change
2019-02-03 14:37:30 -06:00
vbuterin 197fa18893
Zpad is already in #543 2019-02-03 14:26:07 -06:00
vbuterin 9bacf040ce
Merge pull request #543 from ethereum/vbuterin-patch-2
Hash_tree_root -> hash_tree_root_internal
2019-02-03 14:24:18 -06:00
Hsiao-Wei Wang 3a6da9839a
Added a note for underflow. Thanks Hsiao Wei! : )
Co-Authored-By: terenc3t <terence@prysmaticlabs.com>
2019-02-03 14:27:09 +01:00
Dean Eigenmann 5c56751cc9
Update 0_beacon-chain.md 2019-02-03 11:43:33 +01:00
Hsiao-Wei Wang 8e16d122be
Update specs/core/0_beacon-chain.md
Co-Authored-By: decanus <dean@tokenate.io>
2019-02-03 11:42:12 +01:00
Dean Eigenmann 969896b0a8
Update 0_beacon-chain.md 2019-02-03 11:14:02 +01:00
terence tsao e4c4c04e52
Update 0_beacon-chain.md 2019-02-03 10:36:21 +01:00
Danny Ryan 3b9953a992
Merge pull request #537 from ethereum/JustinDrake-patch-1
Use 2*63 for the genesis slot
2019-02-02 17:55:18 -08:00
Danny Ryan f80a345bd1
Merge pull request #552 from ethereum/epoch-in-generate-seed
epoch in `generate_seed`
2019-02-02 17:29:29 -08:00
Danny Ryan 2a32e7f665
convert int_to_bytes to little endian 2019-02-02 16:41:59 -08:00
Danny Ryan 650f4a20df
clarify eth1 that there will be at most 1 2019-02-02 13:16:39 -08:00
Danny Ryan 04b37f266c
Merge pull request #558 from decanus/patch-14
`shard` -> `attestation.data.shard`
2019-02-02 08:49:28 -08:00
Dean Eigenmann f3d47e26fc
`shard` -> `attestation.data.shard` 2019-02-02 13:49:52 +01:00
terence tsao a781eb5a4f
Update 0_beacon-chain.md 2019-02-02 06:09:45 +01:00
Danny Ryan 8d82ee8ce7
do not mix in epoch to seed in get_shuffling. add epoch to generate_seed 2019-02-01 21:02:09 -08:00
Danny Ryan 76744dea13
Merge branch 'dev' into name-changes 2019-02-01 20:48:14 -08:00
Danny Ryan 11ae40fc49
revery bls types to include BLS 2019-02-01 20:42:11 -08:00
Alex Stokes 7e7e5e2795
Removes the source of the Vyper contract from the spec.
This change allows for easier maintenance of the code and the spec by
uncoupling them. Before any edit to either document resulted in having to
synchronize the other. By adding a reference to the canonical repo for the code
we avoid having to maintain a duplicate copy here.
2019-02-01 17:06:04 -08:00
Danny Ryan 6a9c756191
Merge pull request #551 from GregTheGreek/master
fix startup typo
2019-02-01 15:30:22 -08:00
Gregory Markou d53d333733 fix startup typo 2019-02-01 14:04:17 -08:00
Hsiao-Wei Wang 378e1ba9a6
Misc fixes of `get_next_epoch_crosslink_committees` 2019-02-02 02:06:53 +08:00
Hsiao-Wei Wang 0b8ccf1e64 Update 0_beacon-chain.md (#547) 2019-02-01 07:45:09 -08:00
Hsiao-Wei Wang e0867c030f
Fix typo 2019-02-01 22:34:10 +08:00
Hsiao-Wei Wang dd197e46a6
Fix `zpad` 2019-02-01 22:31:00 +08:00
vbuterin 8ffd9adcaf
Hash_tree_root -> hash_tree_root_internal
Clarifies the distinction between "internal" hash roots (may be < 32 bytes for trivial objects) and "external" ones (zpadded to 32).
2019-01-31 18:03:23 -06:00
Hsiao-Wei Wang acb432ef3a
Update specs/simple-serialize.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-31 17:49:51 -06:00
Hsiao-Wei Wang 9271e6e318
Update specs/simple-serialize.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-31 17:47:09 -06:00
Danny Ryan 7ff345404e
simplify bls types 2019-01-31 08:26:46 -08:00
Danny Ryan 6716105f19
ChainStart -> Eth2Genesis 2019-01-31 08:23:41 -08:00
vbuterin 5488e7b6a4
SSZ list Merkle hashing change
The current spec is arguably inconsistent, in that if a set of N values gets chunked into M chunks where M is not an exact power of 2, the chunks between M and next_power_of_2(M) are filled with SSZ_CHUNK_SIZE zero bytes each, but the last chunk is not padded, and could be arbitrarily short (eg. if the values are 4 bytes and there are 257 of them, then that gets serialized into eight chunks chunks where the first four are 64 values each, the fifth is 4 bytes corresponding to the last value, and the last three chunks are SSZ_CHUNK_SIZE zero bytes). This PR fills every chunk up to exactly SSZ_CHUNK_SIZE bytes for consistency.
2019-01-31 10:12:43 -06:00
Danny Ryan 1593b926cc
rename current and previous vars for shuffling to use 'shuffling' 2019-01-31 08:02:54 -08:00
Danny Ryan 9ea095efe9
remove Number from custom types 2019-01-31 07:58:31 -08:00
Danny Ryan e2e2ce0a04
name changes: active_exit_delay, latest_active_index_roots 2019-01-31 07:56:48 -08:00
Justin 7f39f79b2e
Use 2*63 for the genesis slot 2019-01-31 07:55:27 -08:00
vbuterin 190d9d2887
Added closing bracket 2019-01-31 07:44:14 -06:00
Hsiao-Wei Wang 5f29cc91bc
Remove the repeated checks 2019-01-31 19:06:13 +08:00
Alex Stokes 750790c784
Remove the unnecessary double backticks on 'validator' in docstring.
The usual convention is that we mark function parameters in docstrings with
double backticks. There is no (longer a) parameter called 'validator' so we
update the docstring to conform to the convention.
2019-01-30 18:38:12 -08:00
Danny Ryan e1a1f936fe
penalized -> slashed, SEED_LOOKAHEAD -> MIN_SEED_LOOKAHED 2019-01-30 18:22:25 -08:00
Danny Ryan e400c28372
Merge pull request #520 from ethereum/next-epoch-shuffling
helpers and notes for shuffling lookahead
2019-01-30 17:24:45 -08:00
Danny Ryan 8cfe3c3133
typo 2019-01-30 17:24:27 -08:00