Commit Graph

1663 Commits

Author SHA1 Message Date
Diederik Loerakker 2a88dff2be
Merge pull request #919 from ethereum/JustinDrake-patch-10
Cleaner dust checking in transfers
2019-04-14 23:04:12 +10:00
Alex Stokes c01fb1eea6 Update 0_beacon-chain.md (#922)
More clean up on recent switch to exit queue
2019-04-14 22:56:01 +10:00
Alex Stokes bcf10ecf11 Update 0_beacon-chain.md (#921)
Fix typo to set the right property on the correct object
2019-04-14 22:55:38 +10:00
Hsiao-Wei Wang 3c8d1b23a5 Update specs/core/0_beacon-chain.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-04-14 22:12:39 +10:00
Justin a376b6607f
Cleaner dust checking in transfers
Inspired by [this](https://github.com/ethereum/eth2.0-specs/pull/916#commitcomment-33170877).
2019-04-14 21:53:32 +10:00
Danny Ryan 3555ab8c36
Merge branch 'dev' into prev-cur-crosslinks 2019-04-14 20:05:35 +10:00
Danny Ryan 0656817346
Merge branch 'dev' into start-at-zero 2019-04-14 19:46:21 +10:00
Danny Ryan 7840d29f2d
Merge pull request #850 from ethereum/vbuterin-patch-13
Withdrawal queue -> exit queue
2019-04-14 19:21:52 +10:00
Diederik Loerakker be86f966f8 fix transfer invariant, credits to @holiman for finding the edge case (#916) 2019-04-14 19:18:00 +10:00
Justin 3394368a66
Update 0_beacon-chain.md 2019-04-14 19:14:27 +10:00
Justin 875b2ba00d
Update 0_beacon-chain.md 2019-04-14 19:11:40 +10:00
Justin 0908ffa653
Update 0_beacon-chain.md 2019-04-14 19:01:53 +10:00
Danny Ryan 704ea7c301
Merge branch 'vbuterin-patch-13' of github.com:ethereum/eth2.0-specs into vbuterin-patch-13 2019-04-14 18:52:19 +10:00
Danny Ryan 06807cf520
fix tests and off by one error 2019-04-14 18:50:05 +10:00
Justin 0b770121fe
Update 0_beacon-chain.md 2019-04-14 18:23:30 +10:00
Justin 229af3deda
Update 0_beacon-chain.md 2019-04-14 18:10:44 +10:00
Justin 7705ecf89c
Update 0_beacon-chain.md 2019-04-14 17:28:45 +10:00
Justin 15bb9676d5
Update 0_beacon-chain.md 2019-04-14 17:04:36 +10:00
Justin d01fb80fd4
Update 0_beacon-chain.md 2019-04-14 17:02:04 +10:00
Justin 0d6448303d
Update 0_beacon-chain.md 2019-04-14 16:49:17 +10:00
vbuterin f85e7ac447
Added churn limit logic 2019-04-13 22:14:05 -05:00
Danny Ryan 37004404d0
add exit queue test 2019-04-14 09:13:53 +10:00
Danny Ryan f7c5b0a1c6
set activation_eligibility_epoch during process_deposit 2019-04-14 08:30:13 +10:00
Danny Ryan eafcab7e58
check crosslinks validity root against previous 2019-04-14 08:24:54 +10:00
Justin 30fe6f5657
Update 0_beacon-chain.md 2019-04-14 00:47:14 +10:00
vbuterin cc2d005917
Merge branch 'dev' into vbuterin-patch-13 2019-04-13 06:18:54 -05:00
Danny Ryan a6b3b11356
ensure no reward for crosslinks taht can't form a chain 2019-04-13 17:49:25 +10:00
Danny Ryan 0a5a5b77d5
Merge branch 'dev' into prev-cur-crosslinks 2019-04-13 15:40:05 +10:00
terence tsao 710bacad75
Update 0_beacon-chain.md 2019-04-13 11:56:55 +10:00
Alex Stokes b34c41c525 Update 0_beacon-chain.md (#911)
Fix prose around state transition functionality
2019-04-13 09:56:19 +10:00
JSON ee1578d22a Update 0_beacon-chain.md (#908) 2019-04-13 09:33:53 +10:00
Danny Ryan a3b020384f
add tests for finality through the first few epochs 2019-04-12 23:17:57 +10:00
Danny Ryan 3c55854072
clean up 2019-04-12 21:16:34 +10:00
Justin 1e32661c4f
Remove references and copyright
Licensing is done at the repo level. The listed references are awkwardly incomplete (only the Python implementation was listed when we have ~10 implementations, and only the Casper paper was listed where we could add many ethresear.ch posts).
2019-04-12 19:54:33 +10:00
Danny Ryan a374e29184
Merge pull request #902 from ralexstokes/fix-ordering-of-process-deposits
Move the ordering of the definition of `process_deposit`.
2019-04-12 19:26:30 +10:00
Danny Ryan c119565d8b
Merge pull request #903 from ralexstokes/update-verify-indexed-attestation
Avoid materializing the merged list.
2019-04-12 19:07:01 +10:00
Alex Stokes 4824b34df3
Avoid materializing the merged list.
Fixes #901.
2019-04-12 19:02:16 +10:00
Danny Ryan ce0f52b52d
Merge pull request #890 from ethereum/proto-fix-justification-bitfield
limit bit-length of justification bitfield to strict 64
2019-04-12 18:59:42 +10:00
Alex Stokes c954eab96d
Move the ordering of the definition of `process_deposit`.
This move matches the symmetry of the other operation processing definitions.
2019-04-12 18:57:55 +10:00
Alex Stokes b966041ddb formatting fix (#899) 2019-04-12 18:56:55 +10:00
terence tsao 38b6e71bd5
Update 0_beacon-chain.md 2019-04-12 15:06:23 +10:00
Justin e9a44545be
Update 0_beacon-chain.md 2019-04-12 13:38:58 +10:00
Justin 47b9cdbb36
Update 0_beacon-chain.md 2019-04-12 13:18:10 +10:00
protolambda 7ffcdcfd7c
bitfield length limit style improvement 2019-04-12 09:12:37 +10:00
Danny Ryan 6ca550489e
prevent underflow of previous epoch in all cases 2019-04-11 22:48:27 +10:00
Danny Ryan 8c32128ffb
initial pass on genesis slot == 0 2019-04-11 22:28:42 +10:00
Danny Ryan 9c662ec4c3
fix shard delta for latest shard change 2019-04-11 18:48:05 +10:00
Danny Ryan b6158e080a
Merge branch 'dev' into vbuterin-patch-17 2019-04-11 18:36:15 +10:00
Hsiao-Wei Wang e2dc12e9f6 Update specs/core/0_beacon-chain.md
Co-Authored-By: ChihChengLiang <chihchengliang@gmail.com>
2019-04-10 16:24:05 +08:00
protolambda 509354582c
limit bit-length of justification bitfield to strict 64, prevent SSZ encoding crash due to too large integer size 2019-04-10 11:14:22 +10:00
vbuterin 7a1b38a6ad
Homogenised start shard
Alternative presentation to #884, should be substantively equivalent
2019-04-09 05:52:32 -05:00
Danny Ryan e246c3fb04
source_crosslink_root to previous_crosslink_root 2019-04-08 12:59:42 +10:00
Chih Cheng Liang ffccf742bd
replace signed_root with signing_root 2019-04-08 09:57:04 +08:00
Danny Ryan 42dc003e91
add previous_crosslink_root and enforce crosslinks form a chain 2019-04-07 17:55:38 +10:00
Danny Ryan 26df4f4bc8
Merge branch 'dev' into prev-cur-crosslinks 2019-04-07 16:26:42 +10:00
Danny Ryan 2baa242ac0
Merge pull request #877 from ethereum/sydney-test-format
A new more complete test format for ETH 2.0 testing
2019-04-07 16:23:04 +10:00
protolambda 117e157f29
update comment, fix net naming 2019-04-07 16:21:50 +10:00
Justin 47464f28dc
Update 0_beacon-chain.md 2019-04-07 08:45:43 +10:00
Hsiao-Wei Wang ebba3f5891
Fix typo 2019-04-07 01:59:10 +11:00
Hsiao-Wei Wang 8958cf86bb
Merge branch 'dev' into vbuterin-patch-13 2019-04-06 22:27:35 +08:00
Hsiao-Wei Wang 5ea5746fdd
Fix `get_genesis_beacon_state` and minor refactoring 2019-04-07 01:24:50 +11:00
Justin 63412d9b9e
Update 0_beacon-chain.md 2019-04-06 22:13:56 +11:00
Justin 7f0a93fc3e
Update 0_beacon-chain.md 2019-04-06 21:07:03 +11:00
Justin 169579ce3b
Update 0_beacon-chain.md 2019-04-06 20:45:11 +11:00
vbuterin 199e7849da Clarify lexicographic hash favoring (#881) 2019-04-06 13:07:26 +04:00
Danny Ryan f677af2179
Merge branch 'dev' into prev-cur-crosslinks 2019-04-05 19:55:47 +11:00
Danny Ryan dc325f7682
clean up a few things from PR 2019-04-05 19:39:03 +11:00
terence tsao 5a77e61160
Update 0_beacon-chain.md 2019-04-04 08:11:12 -07:00
Justin a790afa891
Update 0_beacon-chain.md 2019-04-04 08:23:48 +04:00
Justin d1af9144bc
Update 0_beacon-chain.md 2019-04-03 23:40:54 +04:00
Justin 6ca3c64526
Update 0_beacon-chain.md 2019-04-03 23:24:46 +04:00
Justin 76893cafaa
Missing typehint for `convert_to_indexed`
And some minor cleanups
2019-04-03 23:22:27 +04:00
Justin 2529cb1d74
Update 0_beacon-chain.md 2019-04-03 22:53:41 +04:00
Danny Ryan 1fa88fb6d1
remove previous crosslink check from process_crosslinks 2019-04-03 16:56:13 +11:00
protolambda 96ab5a334d
Add note on configuration of constants 2019-04-03 13:35:40 +11:00
Danny Ryan 39b4ef3892
Merge branch 'dev' into prev-cur-crosslinks 2019-04-03 11:57:07 +11:00
Danny Ryan 2f1ab491f9
Merge branch 'dev' into vbuterin-patch-2 2019-04-03 11:15:58 +11:00
Danny Ryan 75f0af45bb
Merge pull request #873 from ethereum/validator-indices-bug
minor bug `process_attester_slashings`
2019-04-02 18:07:30 -06:00
Danny Ryan 014138baab
pr feedback 2019-04-03 11:04:12 +11:00
Danny Ryan d8df789a70
simplify get_winning_root logic 2019-04-03 10:13:05 +11:00
Justin 37fc79cb94
Update 0_beacon-chain.md 2019-04-02 22:30:26 +04:00
Danny Ryan 529cf4223e
add previous and current crosslinks 2019-04-02 16:00:36 +11:00
Danny Ryan 06d005999a
fix validator_indicies issue in process_attester_slashing 2019-04-02 13:50:06 +11:00
Justin c2edcebee3
Update 0_beacon-chain.md 2019-03-31 20:48:44 +04:00
Justin 79d1f9fb76
Update 0_beacon-chain.md 2019-03-31 20:45:57 +04:00
vbuterin b6be9e1830
Possible aesthetic rework to get_domain
In general I dislike how domains, which should be an unobtrusive out-of-the-way thing that we don't think about much, are taking up so much space in code to express, to the point of them being the single thing preventing `bls_verify` from being expressed in one line of code. Here I reorder arguments and add a default, and make `bls_verify` a one-liner.

Not necessarily convinced that exactly this approach is the way to go, but IMO it's worth considering.
2019-03-31 04:55:24 -05:00
Justin e4c3c556d5
Rename "transaction" to "operation"
Fix #822.
2019-03-31 09:02:10 +04:00
vbuterin 15498f22ef
Fixed exit epoch conditional 2019-03-30 19:26:44 -05:00
Alex Stokes 6f0f2a8f53
Update the descriptive text to refer to the correct type of root 2019-03-30 16:21:09 -07:00
Hsiao-Wei Wang a2dae9a8e0
Fix after merging 2019-03-29 15:26:26 +08:00
Hsiao-Wei Wang 9c4e034bed
Merge branch 'dev' into vbuterin-patch-13 2019-03-29 13:36:00 +08:00
Danny Ryan bad03ba554
Merge pull request #848 from wmpea/patch-1
Minor copyedits to 0_beacon-chain.md
2019-03-28 13:16:01 -06:00
Danny Ryan 66d5026ffe
minor copy edit 2019-03-28 13:15:38 -06:00
Danny Ryan 901478e148
Merge branch 'dev' into JustinDrake-patch-11 2019-03-28 12:14:13 -06:00
Danny Ryan 30e29324e9
Merge pull request #831 from ethereum/vbuterin-patch-3
Merge attestation verification logic
2019-03-28 11:33:34 -06:00
Danny Ryan ba47a8f4c4
remove unused set_bitfield_bit hlper 2019-03-28 11:29:45 -06:00
Danny Ryan 1f657cfec5
remove custody_bitfield from indexedattestation. add two separate arrays for 0 and 1 bit 2019-03-28 11:26:04 -06:00
Hsiao-Wei Wang aa4bbcc1c8
Bugfix 2019-03-29 00:43:28 +08:00
vbuterin deb0e32590
Fixes to make Justin happy 2019-03-28 10:51:36 -05:00
vbuterin 1aaa0030fc
Withdrawal queue -> exit queue 2019-03-28 08:58:18 -05:00
William M Peaster 458eb99133
Minor copyedits to 0_beacon-chain.md
Approximately a dozen minor copyediting fixes of non-code text for improved clarity, consistency, and accuracy.
2019-03-27 14:15:50 -05:00
William M Peaster b5bf56376b
Minor copyediting corrections to 0_beacon-chain.md
A handful of minor editing changes made to non-code text for the purposes of improved clarity, consistency, and accuracy.
2019-03-27 14:00:28 -05:00
Danny Ryan fbb09795ed
fix convert_to_indexed custody bitfield bug 2019-03-27 08:31:56 -06:00
Danny Ryan e9cdcac29e
Merge branch 'dev' into JustinDrake-patch-11 2019-03-26 14:09:07 -06:00
Danny Ryan 63e7346cfb
standaline -> indexed 2019-03-26 13:40:19 -06:00
Danny Ryan 81e0e494a8
Merge branch 'dev' into vbuterin-patch-3 2019-03-26 13:30:33 -06:00
Danny Ryan 654351faea
Merge branch 'dev' into vbuterin-patch-16 2019-03-26 13:04:18 -06:00
Danny Ryan 2c5a68b5b5
remove registry_change options from shuffling functions 2019-03-26 12:32:24 -06:00
Danny Ryan a8410b8b84
add some attestation tests. fix genesi crosslink bug 2019-03-26 11:27:07 -06:00
Danny Ryan 2c8e9a11e7
Merge branch 'dev' into vbuterin-patch-18 2019-03-26 10:13:17 -06:00
Danny Ryan c5f1db27f5
Merge branch 'dev' into JustinDrake-patch-7 2019-03-26 07:38:39 -06:00
Justin 87d2618a49
Update 0_beacon-chain.md 2019-03-26 13:21:49 +00:00
Danny Ryan 7f53f257cd
Merge branch 'dev' into JustinDrake-patch-4 2019-03-26 07:14:34 -06:00
Danny Ryan 0121adea38
fix beacon proposer function and mod v-guide to not have lookahead for proposing 2019-03-26 07:09:48 -06:00
Danny Ryan fcc1c64acb
Merge branch 'dev' into vbuterin-patch-13 2019-03-26 06:45:40 -06:00
Danny Ryan fceebeec4e
backport 839 into dev 2019-03-25 11:25:33 -06:00
Justin acc5f314ac
Update 0_beacon-chain.md 2019-03-25 14:54:43 +00:00
Justin fb837400b2
Can't spell (thanks continuous integration!) 2019-03-25 14:49:35 +00:00
Justin b7441e8ab7
Generalise `slash_validator` for phase 1
Make `slash_validator` friendly to phase 1. This is a cosmetic change in the context of phase 0.
2019-03-25 14:30:59 +00:00
Hsiao-Wei Wang 80e2553afd
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-22 09:32:21 -04:00
vbuterin ce18bde5c9
Simplified sorted index check 2019-03-22 06:20:38 -05:00
vbuterin 3ee9fc0cc7
Merge attestation verification logic
Also rename slashable attestation to standalone attestation to reflect its broader functionality in phase 1.
2019-03-22 06:10:44 -05:00
vbuterin e8257db320
Removed hanging min 2019-03-22 05:40:41 -05:00
Hsiao-Wei Wang b34858c67b
Refactor `get_justification_and_finalization_deltas` 2019-03-22 14:21:33 +08:00
Hsiao-Wei Wang ae67e9513b
Fix type hinting and add docstrings 2019-03-22 12:56:54 +08:00
Hsiao-Wei Wang 512ceff1bb
Merge branch 'dev' into vbuterin-patch-20 2019-03-22 11:58:32 +08:00
Danny Ryan 64e3db09d4
Merge branch 'dev' into JustinDrake-patch-19 2019-03-21 16:25:31 -06:00
Danny Ryan d8ad56f759
Merge pull request #828 from ethereum/vbuterin-patch-20-1
Small cosmetic change to slashable attestations
2019-03-21 15:50:08 -06:00
vbuterin 3ece05ccc1
Small cosmetic change to slashable attestations 2019-03-21 16:36:31 -05:00
vbuterin 3b403909e8
Cosmetic improvement to reward/penalty functions 2019-03-21 16:29:14 -05:00
vbuterin 38a5c3640b
Re-added some penalization in case of failure to finalize 2019-03-21 15:13:13 -05:00
vbuterin d1d1b73fb1
Simplify justification and finalization accounting logic
Much of the simplification is cosmetic. The following changes are substantive:

* Inactivity leak penalty specifically on missing the target, not both the target and the source
* Even outside of quadratic leak scenarios, slashing victims suffer offline penalties
2019-03-21 15:11:05 -05:00
Danny Ryan f6da42ffb3
fix markdown issues 2019-03-21 10:04:20 -06:00
Danny Ryan c99fe3fb38
Merge branch 'dev' into vbuterin-patch-3 2019-03-21 08:47:19 -06:00
Danny Ryan fd6d80fcb6
remove get_split_offset from phase 1 doc 2019-03-21 08:24:26 -06:00
vbuterin fdcfc91008
Add docstring into get_split_offset 2019-03-21 07:38:25 -05:00
Hsiao-Wei Wang 2215988415
Merge branch 'dev' into JustinDrake-patch-19 2019-03-20 21:59:40 +08:00
vbuterin fff76749d2
Merge branch 'dev' into vbuterin-patch-3 2019-03-20 08:05:22 -04:00
Justin 833691b8af
Update 0_beacon-chain.md 2019-03-20 08:16:39 +00:00
Danny Ryan a8e2b8cd1d
Merge branch 'dev' into vbuterin-patch-11 2019-03-19 16:06:33 -06:00
Danny Ryan acd7fdd762
add a few voluntary exit tests 2019-03-19 16:00:27 -06:00
Danny Ryan 9d7c2b264e
Merge branch 'dev' into JustinDrake-patch-20 2019-03-19 15:06:36 -06:00
Danny Ryan 2afbd8a02d
Merge branch 'dev' into JustinDrake-patch-8 2019-03-19 14:44:25 -06:00
Justin b664453a34
Update 0_beacon-chain.md 2019-03-19 20:43:05 +00:00
Danny Ryan ef0b3d2948
Merge branch 'dev' into JustinDrake-patch-20 2019-03-19 14:26:38 -06:00
Danny Ryan be13fa8ec3
Merge branch 'dev' into JustinDrake-patch-14 2019-03-19 14:20:12 -06:00
Danny Ryan 574fd8d63c
Merge branch 'dev' into JustinDrake-patch-18 2019-03-19 14:14:35 -06:00
Danny Ryan 23ef802da5
fix small bug in sytax 2019-03-19 13:25:34 -06:00
Danny Ryan cf06cb59c3
Merge branch 'dev' into JustinDrake-patch-13 2019-03-19 12:40:58 -06:00
Danny Ryan 054a1e3126
Merge branch 'dev' into JustinDrake-patch-12 2019-03-19 12:25:50 -06:00
Danny Ryan bdfc01cf93
Merge branch 'dev' into JustinDrake-patch-11 2019-03-19 12:13:42 -06:00
Danny Ryan f7fab30772
minor adjustment to not repeat committe count calc 2019-03-19 11:40:24 -06:00
Danny Ryan f5826e7f1c
small lint 2019-03-19 11:34:49 -06:00
Danny Ryan c8e9073414
define get_split_offset and squash a couple of bugs 2019-03-19 11:24:36 -06:00
Danny Ryan 009563b2c3
fix a few bugs in testing compute_committee 2019-03-19 11:15:51 -06:00
Justin b50e148642
Update 0_beacon-chain.md 2019-03-19 17:13:25 +00:00
Danny Ryan 0737494694
Merge branch 'dev' into vbuterin-patch-16 2019-03-19 11:04:11 -06:00
vbuterin c5ee74d5e0
Justin fixes 2019-03-19 11:21:17 -05:00
vbuterin db92235d9e
Removed some no-longer-necessary functions 2019-03-19 09:34:37 -05:00
vbuterin dd39d25c86
Replace committee exponential backoff with max progress
Removes the mechanism that only rotates committees if blocks have been finalized and every shard has been crosslinked or at exponentially decreasing intervals, and replaces it with a rule that shard committees can only progress a maximum of 64 epochs at a time to preserve the invariant that maximum possible work required per epoch for a validator is O(1).
2019-03-19 09:32:06 -05:00
Justin 78f47f2069
Avoid underflow in voluntary exits 2019-03-19 12:23:17 +00:00
Justin e91036cfc9
Update 0_beacon-chain.md 2019-03-19 11:12:50 +00:00
Justin 0c383ce4a1
Update 0_beacon-chain.md 2019-03-19 11:11:18 +00:00
Justin 2b454d57f1
Update 0_beacon-chain.md 2019-03-19 11:08:17 +00:00
Justin dc4b652f72
Only slash active validators
This is to prevent a spam/DoS attack where validators with zero balance get "slashed" but no validator loses any balance.
2019-03-19 11:03:42 +00:00
Justin 0039613628
Simplify exit_validator
Minor cleanup
2019-03-18 19:08:41 +00:00
Justin d25c18b320
Update 0_beacon-chain.md 2019-03-17 11:48:47 +00:00
Hsiao-Wei Wang 6b82f5e999 Set `GENESIS_FORK_VERSION` to a `bytes4` constant (#792)
* Set `GENESIS_FORK_VERSION` to a `bytes4` constant

* Update 0_beacon-chain.md
2019-03-17 11:33:42 +00:00
vbuterin 506fdf4042 Added FixedSizeList wrappers (#777)
* Added FixedSizeList wrappers

Requires corresponding changes to the spec pythonizer.

* FixedSizeList -> Vector
2019-03-17 11:33:19 +00:00
Sören Steiger 65162e0371 Update 0_beacon-chain.md (#791) 2019-03-16 20:56:10 +00:00
Sören Steiger 919b99e0ae Add missing word (#788) 2019-03-16 12:46:45 +00:00
Justin e5ff0d59ad
Update 0_beacon-chain.md 2019-03-16 11:23:41 +00:00
Sören Steiger 6b118d2398 Add trailing comma (#789) 2019-03-16 12:16:47 +08:00
Justin 709e0df39f
Update 0_beacon-chain.md 2019-03-15 13:54:33 +00:00
Justin 1236e8e1fa
Update 0_beacon-chain.md 2019-03-15 13:53:24 +00:00
Justin 4b461838d2
`GENESIS_EPOCH - 1` for `previous_shuffling_epoch` and `previous_justified_epoch`
See item 26 in #675.
2019-03-15 13:32:24 +00:00
Justin e912ed7fca
Include recently slashed churn in churn queue
Addresses #527 in combination with #784.
2019-03-15 13:12:03 +00:00
Justin 4a8d748c55
Milder ejections
See item 22 in https://github.com/ethereum/eth2.0-specs/issues/675. Also partially addresses https://github.com/ethereum/eth2.0-specs/issues/527.
2019-03-15 13:05:46 +00:00
Justin d8d653dd94
Update 0_beacon-chain.md 2019-03-15 12:51:46 +00:00
Justin 96ab535704
Simplify and cleanup process_attestation
Improve readability and testability (by avoiding untriggerable `assert`). Fix #753.
2019-03-15 12:40:52 +00:00
Justin 58603f276e
Update 0_beacon-chain.md 2019-03-15 11:28:55 +00:00
Justin dac43eb564
Simplify deposits
Fix #760
2019-03-15 11:18:06 +00:00
Justin 4a5ef98813
Move to SHA256
SHA256 is de facto blockchain standard. Standardisation of the hash function is a prerequisite for [full standardisation of BLS12-381 signatures](https://github.com/ethereum/eth2.0-specs/issues/605). Blockchain projects are likely to provide a cheap SHA256 opcods/precompile, and unlikely to provide a Keccak256 equivelent. (Even WASM-enabled blockchains are likely to provide a SHA256 opcode/precompile since WASM does *not* natively support optimised SHA256 CPU instructions.) With Ethereum 2.0 embracing SHA256 the wider industry is more likely to converge towards a unified cross-blockchain communication scheme via Merkle receipts.

There are no security blockers with SHA256 (see comments by Dan Boneh [here](https://github.com/ethereum/eth2.0-specs/issues/612#issuecomment-470452562)).
2019-03-15 10:51:08 +00:00
Justin 68d1c74784
Update 0_beacon-chain.md 2019-03-15 09:45:20 +00:00
Justin 5d327b6364
Update 0_beacon-chain.md 2019-03-15 09:43:38 +00:00
Hsiao-Wei Wang 16123685af
Merge branch 'dev' into vbuterin-patch-3 2019-03-15 11:22:15 +08:00
vbuterin 24468de23b
Change get_shuffling to compute_committee
See #729 and #774 

The behavior now is that the first committee will consist of `get_permuted_index(0..n-1)`, the second committee `get_permuted_index(n....2n-1)`, etc.
2019-03-14 20:28:44 -05:00
Justin bbc5139115
Update 0_beacon-chain.md
Assuming `epoch % i` is a bug, and you meant `epoch + i`. @vbuterin
2019-03-14 19:01:32 +00:00
Justin 23d15f51a7
Update 0_beacon-chain.md 2019-03-14 18:57:17 +00:00
vbuterin 4442dfffb9
Fair proposer selection probability
Note that as a side effect, proposer selection becomes less predictable, but I don't feel like this is a large downside.
2019-03-13 21:42:49 -05:00
Alex Stokes 9774a3d581
Helper function returns correct type of `Gwei` instead of indices 2019-03-13 17:01:47 -07:00
Danny Ryan e8a5cd0747
fix up for tests 2019-03-12 12:32:11 -06:00
Danny Ryan 6e04b2118c
Merge branch 'dev' into store-justified-root 2019-03-12 12:08:59 -06:00
Danny Ryan acf0f76d60
Merge branch 'dev' into JustinDrake-patch-1 2019-03-12 11:48:05 -06:00
Danny Ryan a68b050053
set fork values in genesis as bytes4 2019-03-12 11:35:59 -06:00
Danny Ryan 7b829227ee
Merge branch 'dev' into JustinDrake-patch-4 2019-03-12 11:28:33 -06:00
Danny Ryan 25f6647ef2
minor formatting 2019-03-12 11:07:20 -06:00
Danny Ryan bdaba00a58
Merge branch 'dev' into JustinDrake-patch-7 2019-03-12 10:56:22 -06:00
Justin 0a349f8bdc
Update 0_beacon-chain.md 2019-03-12 15:58:31 +00:00
Hsiao-Wei Wang 0f120415b5
Update specs/core/0_beacon-chain.md
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2019-03-12 16:49:04 +01:00
Justin d8a3048f2c
Update 0_beacon-chain.md 2019-03-12 12:36:09 +00:00
Justin 64ba3a3107
Epoch-based proposer slashing
See #675 item 25.
2019-03-12 12:24:37 +00:00
Justin 6c35934060
Update 0_beacon-chain.md 2019-03-12 10:34:24 +00:00
Justin addf7b77ab
Update 0_beacon-chain.md 2019-03-12 10:26:34 +00:00
Justin 578bf02b6f
Update 0_beacon-chain.md 2019-03-12 10:17:34 +00:00
Justin a7544864d5
Update 0_beacon-chain.md 2019-03-12 10:02:52 +00:00
vbuterin 4410a55c4d
Mandatory deposits
Resolves #675 point 5.
2019-03-11 23:30:08 -05:00
Danny Ryan 3916643ef6
only update justified epoch/root if changed 2019-03-11 18:23:17 -06:00
Justin 3459ea0838
Check proposer is not slashed 2019-03-11 22:07:34 +00:00
Danny Ryan f06a3b82e7
cache current and previous justified root in state 2019-03-11 14:38:10 -06:00
Danny Ryan bf6bdbb021
cleanup minor var errors 2019-03-11 12:38:11 -06:00
Danny Ryan 36efb4498f
Merge branch 'dev' into vbuterin-patch-3 2019-03-11 10:44:18 -06:00
Justin 0704297480
Update 0_beacon-chain.md 2019-03-11 17:28:39 +01:00
Danny Ryan 9c2d34d876
Merge branch 'dev' into min-time-to-exit 2019-03-11 09:45:39 -06:00
Danny Ryan 2c7c48a4e0
Merge pull request #751 from ethereum/JustinDrake-patch-8
Disallow duplicate voluntary exits
2019-03-11 09:09:53 -06:00
Justin 2d3d7e33b3
Weaken criterion for attestation inclusion
The invariant that `get_current_epoch(state) in [get_current_epoch(state), get_previous_epoch(state)]` is preserved, as well as symmetry/fairness across blocks.
2019-03-10 21:58:32 +01:00
Danny Ryan 641bfc2f2c
Merge pull request #744 from ethereum/empty-attestation-bug
minor execution bugs
2019-03-10 08:26:21 -06:00
Justin d425ea26e2
Update 0_beacon-chain.md 2019-03-10 13:50:28 +01:00
Justin b7376aea5c
Disallow duplicate voluntary exits
Stricter processing of voluntary exits to remove an edge case
2019-03-10 13:49:37 +01:00
Justin 02428ec252
Do not check withdrawal credentials for existing validators
We should not invalidate blocks that contain a deposit with an inconsistent withdrawal credential as that would stall the chain.
2019-03-10 13:25:57 +01:00
Danny Ryan 902e65e072
add min persistent committee period resitriction on exits 2019-03-08 15:16:06 -07:00
Danny Ryan 0f3e0ef2ad
Merge pull request #743 from ethereum/JustinDrake-patch-9
Minor cleanups
2019-03-08 14:59:39 -07:00
Danny Ryan 30e64d7de6
fix get_inactivity_penalty function signature 2019-03-08 12:14:21 -07:00
Danny Ryan f88db44e81
skip proposer bonus if no attestation for v index 2019-03-08 12:07:57 -07:00
Danny Ryan f72e856620
Merge branch 'dev' into JustinDrake-patch-7 2019-03-08 10:46:36 -07:00
Danny Ryan 29014d554e
Merge branch 'dev' into JustinDrake-patch-9 2019-03-08 10:39:26 -07:00
Justin f253feeacf
Update 0_beacon-chain.md 2019-03-08 18:34:51 +01:00
Justin f180eb5e9e
Update 0_beacon-chain.md 2019-03-08 18:14:00 +01:00
Justin de60533d72
Update 0_beacon-chain.md 2019-03-08 18:13:05 +01:00
Danny Ryan f081f23c31
cache more than just state root at start of state transition 2019-03-08 09:48:46 -07:00
Justin ecd93468a2
Update 0_beacon-chain.md 2019-03-08 17:38:19 +01:00
Justin 3aedf1226a
Update 0_beacon-chain.md
Did I get the type casting OK @hwwhww?
2019-03-08 17:36:58 +01:00
Justin 1141467349
Update 0_beacon-chain.md 2019-03-08 17:28:00 +01:00
Danny Ryan 9b598c91b7
Merge branch 'dev' into JustinDrake-patch-7 2019-03-08 09:10:08 -07:00
Danny Ryan 7dc61c6126
Merge branch 'dev' into epoch-start 2019-03-08 08:51:19 -07:00
Justin a51d7d5db5
Update 0_beacon-chain.md 2019-03-08 10:50:45 +01:00
Justin 12695425c9
Use hash_tree_root everywhere
And get rid of merkle_root. This is possible because of SSZ tuples.
2019-03-08 10:32:40 +01:00
vbuterin 8dcc1ba930 Break LMD GHOST ties in favor of higher hash tree roots (#737) 2019-03-08 09:58:38 +01:00
Justin 1f147486fc
Semantic fork versions and signature domains
Fix #706
2019-03-08 09:57:09 +01:00
Justin e74c79e353
Update 0_beacon-chain.md 2019-03-08 09:08:30 +01:00
Justin 33a05109ea
Fair proposer sampling
I think we want `first_committee[epoch % len(first_committee)]` as opposed to `first_committee[slot % len(first_committee)]`. The reason is that if the shuffling happens infrequently and `len(first_committee)` is a multiple of `SLOTS_PER_EPOCH` then the proposers will not be sampled fairly.

Taking this logic further, we may want to avoiding always picking the proposer from `first_committee`, e.g.:

```
    validators_at_slot = []
    for crosslink_committee, _ in get_crosslink_committees_at_slot(state, slot, registry_change):
        validators_at_slot.append(crosslink_committee)

    return validators_at_slot[epoch % len(validators_at_slot)]
```
2019-03-07 23:56:03 +01:00
Justin 339a7fb63b
Update 0_beacon-chain.md 2019-03-07 23:14:47 +01:00
Justin 2d9724dbfc
Update 0_beacon-chain.md 2019-03-07 23:13:06 +01:00
Danny Ryan e57bfaab7c
clean up state transition notes 2019-03-07 13:36:22 -07:00
Danny Ryan d00353534d
Merge branch 'dev' into epoch-start 2019-03-07 13:32:15 -07:00
Danny Ryan 6cf14884a8
epoch transition at start of epoch 2019-03-07 12:05:34 -07:00
Danny Ryan 8dec7d805c
reorder ssz types topologically 2019-03-07 11:02:13 -07:00
Hsiao-Wei Wang 250455a67e
Apply suggestions from code review
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-03-07 10:03:25 -07:00
Danny Ryan 987c741bea
fix state types 2019-03-07 09:44:55 -07:00
Danny Ryan b1baea2d28
Merge branch 'dev' into vbuterin-patch-7 2019-03-07 08:56:29 -07:00
vbuterin f9a07f7653
Fixed MIN_DEPOSIT_AMOUNT 2019-03-07 04:04:05 -06:00
vbuterin be4b912373
Added underflow checking to decrease_balance 2019-03-07 04:02:53 -06:00
vbuterin 0759e170a7
High/low balance separation
See #685 for reasoning
2019-03-07 01:38:03 -06:00
vbuterin ec12460b8b
Make wthdrawn validators immune to inactivity leak 2019-03-07 01:21:17 -06:00
vbuterin 663bc489b6
Added lexicographic tiebreaking 2019-03-06 22:54:52 -06:00
Danny Ryan 175dde7cf7
Merge branch 'dev' into patch-1 2019-03-06 15:56:35 -07:00
Danny Ryan 2f6e560e30
Merge branch 'dev' into vbuterin-patch-7 2019-03-06 15:07:20 -07:00
Alex Stokes ee2fbd0df7
Fix calls of `signed_root` 2019-03-06 13:48:06 -08:00
Dankrad Feist 81f48ea1c3 Also fix length of Deposit.proof 2019-03-06 21:11:50 +01:00
Dankrad Feist 9d175c9dc9 Merge branch 'dev' into patch-1 2019-03-06 17:28:09 +01:00
Carl Beekhuizen b4779cd83d
Apply suggestions from code review
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-03-06 08:55:39 -07:00
Carl Beekhuizen c9e06d31f3
Apply suggestions from code review
base_reward -> get_base_reward

Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-03-06 07:29:06 -07:00
dankrad 776196e66d
Add tuple lengths
Adding tuple lengths in BeaconState objects (this changes merkleization/serialization as no length mixin required)
2019-03-06 14:46:52 +01:00
Danny Ryan b36e70040b
fix call to union 2019-03-05 16:18:41 -07:00
Danny Ryan b5f0509595
fix proposal slashing minor bugs 2019-03-05 11:29:40 -07:00
Danny Ryan be1cb4a850
Merge pull request #718 from ethereum/empty-base-reward
handle get_base_reward when no previous balance
2019-03-05 09:24:12 -07:00
Danny Ryan 0eacabc273
fix minor typo 2019-03-05 08:51:34 -07:00
Danny Ryan 99da6fe141
fix advance_slot ordering issue 2019-03-05 08:50:51 -07:00
Danny Ryan e2a0452108 fix previous root (#716) 2019-03-05 14:07:00 +01:00
Hsiao-Wei Wang ecb76420ec
`1e9` is float in Python, change it to `10**9`. 2019-03-05 17:30:42 +08:00
Danny Ryan d2f7fa9a7e
fix call to get_current_epoch 2019-03-04 19:09:31 -07:00
Danny Ryan bd936fa6ab
add missing return for justification/finalization reward deltas 2019-03-04 19:07:24 -07:00
Danny Ryan 02e8e89740
handle get_base_reward when no previous balance 2019-03-04 19:05:00 -07:00
Danny Ryan 0fdfbc473e
minor variable issues in helpers 2019-03-04 18:53:31 -07:00
Danny Ryan 0f274a906c
Merge branch 'vbuterin-patch-7' of github.com:ethereum/eth2.0-specs into vbuterin-patch-7 2019-03-04 18:02:46 -07:00
Danny Ryan 738acf0e05
fix calls for get_total_balance 2019-03-04 18:00:38 -07:00
Danny Ryan 47cca60148 handle when no attestations availble for crosslinking (#717) 2019-03-04 18:56:50 -06:00
Danny Ryan 66105b01e4
previous epoch uses -1 in all cases 2019-03-04 17:27:53 -07:00
Danny Ryan d4a4c73599
fix calls to get_attesting_indices 2019-03-04 17:17:31 -07:00
Danny Ryan 8802f57790
add missing var to get_attesting_balance calls 2019-03-04 17:11:38 -07:00
Danny Ryan f7397a5970
add xor def 2019-03-04 15:49:21 -07:00
Danny Ryan a561656b68
add get_state_root helper 2019-03-04 11:45:41 -07:00
Danny Ryan 5ac30fdf77
Merge branch 'dev' into vbuterin-patch-7 2019-03-04 09:50:07 -07:00
Danny Ryan c4c1903460
Merge pull request #709 from ethereum/vbuterin-patch-6
Unified deposit processing between genesis and transaction
2019-03-04 09:49:38 -07:00
Danny Ryan 831f04e3ea
separate our rewards/penalty deltas 2019-03-04 09:45:55 -07:00
Danny Ryan 908d7c42ad
pr feedback 2019-03-04 09:17:43 -07:00
terence tsao e2ce0d9583
Update 0_beacon-chain.md 2019-03-04 06:45:55 -08:00
vbuterin 5282b289cf
exits -> voluntary_exits 2019-03-04 04:49:24 -06:00
vbuterin 044c87fe39
fix State -> BeaconState 2019-03-03 22:41:23 -06:00
Danny Ryan 1444687798
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-03-03 20:14:03 -06:00
Danny Ryan cc146475d9
Merge pull request #694 from ethereum/proposer-next-epoch
make get_beacon_proposer_index safe for next epoch
2019-03-03 17:01:20 -07:00
Danny Ryan 0444c2e05e
Merge branch 'dev' into vbuterin-patch-7 2019-03-03 16:58:54 -07:00
Danny Ryan 146aef313e
Merge pull request #699 from ethereum/start_shard_bug
fix committee assignment bugs
2019-03-03 16:53:57 -07:00
vbuterin 38e166d4a3
More python typos! 2019-03-03 06:01:03 -06:00
vbuterin 805ea5dad5
Transfer from -> sender
Needed to avoid triggering errors in python
2019-03-03 05:59:11 -06:00
vbuterin 68bc91bb3a
Fixed custody bit participants typo 2019-03-03 05:56:57 -06:00
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
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
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
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 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
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
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
Justin 6b5769a861
Update 0_beacon-chain.md 2019-02-25 10:30:03 +01: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
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 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 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
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
vbuterin f77b9e2414
Changed name to crosslink data commitment 2019-02-22 00:21:56 -06: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
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
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
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
terence tsao fd5c3ee8b5
Update 0_beacon-chain.md 2019-02-13 08:38:03 -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
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
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
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
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
Dean Eigenmann 2944a7ddfc Renamed `Helpers` -> `Variables`, seems to make more sense (#560) 2019-02-10 16:19:12 +00: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 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 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
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 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 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 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
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
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
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