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