Commit Graph

3350 Commits

Author SHA1 Message Date
Justin 05842f8371
Update 0_beacon-chain.md 2019-06-28 15:26:02 +01:00
Justin 2739767a71
Hardened Eth 1.0 voting strategy (#1218) 2019-06-28 14:43:44 +01:00
vbuterin c764202a57 Slashing penalty calculation change (#1217)
If the exit queue is very long, then a validator may take many months to exit. With the code as currently written, however, self-slashing is a potentially lucrative route to get one's money out faster, because one can exit in 36 days.

This PR changes it so that slashing can only extend your withdrawal time, not contract it. Also, instead of the slashed balances used to calculate one's slashing penalty being those in `[withdrawal - 54 days ... withdrawal - 18 days]`, we now run the penalization algorithm once every 36 days that a validator is slashed but not withdrawn, so that it covers the 36-day period where the validator was actually slashed.  It also moves the minimum slashing penalty to the `slash_validator` function so that it is only applied once.

We also simplify the `slashed_balances` logic to be per-epoch.
2019-06-28 14:35:26 +01:00
Justin Drake e36593b155 Add comment 2019-06-28 12:35:50 +01:00
Justin Drake 6f9d37485d Cleanups 2019-06-28 12:34:01 +01:00
Justin Drake 196ac42025 Cleanup naming 2019-06-28 12:23:22 +01:00
Carl Beekhuizen 0ba933e088
Merge pull request #1209 from ethereum/early_secret_test
Resolves issue in early_secret_reveal() testing
2019-06-28 11:58:40 +02:00
Dankrad Feist 2622548ba7
Merge remote-tracking branch 'origin/dev' into dankrad-patch-8
# Conflicts:
#	specs/core/0_beacon-chain.md
2019-06-28 08:36:45 +01:00
Danny Ryan 1a5de80047
Merge pull request #1210 from ethereum/checkpoints
Checkpoints in beacon spec
2019-06-27 21:26:22 -06:00
Danny Ryan 140c69f2ec
Merge branch 'dev' into checkpoints 2019-06-27 21:02:48 -06:00
Hsiao-Wei Wang 2252142e01
padding version normal merkle tree 2019-06-28 10:24:16 +08:00
Dankrad Feist 2677d233a8
Some more (shorter) Bitvector and Bitlist tests 2019-06-28 00:31:37 +01:00
Dankrad Feist 237b41df5b
Slice notation for justification_bitfield shift 2019-06-28 00:18:54 +01:00
Danny Ryan 990cc55db7
fix committee typing error 2019-06-27 16:32:10 -06:00
protolambda 384fa8854a
justification/finalization testing groundwork 2019-06-28 00:19:55 +02:00
Dankrad Feist 7adf07ea5f
A few more tests for Bitvector/Bitlist 2019-06-27 22:58:44 +01:00
Justin Drake 853f5fc3f0 Apply Danny's suggestions 2019-06-27 19:05:27 +01:00
Carl Beekhuizen 543729cad4
Merge pull request #1198 from ethereum/fork-choice-epoch
modify fork choice to utilize epochs properly
2019-06-27 19:14:19 +02:00
Dankrad Feist 93ce168862
More linting fixes 2019-06-27 16:47:48 +01:00
Dankrad Feist afd86f71de
Fixes in ssz impl 2019-06-27 16:31:33 +01:00
Dankrad Feist 2cb23d35ea
Merge remote-tracking branch 'origin/bitfield-suggestion' into dankrad-patch-8 2019-06-27 16:30:41 +01:00
Dankrad Feist 8ed638bb84
Linter fixes 2019-06-27 15:21:04 +01:00
Dankrad Feist b574a58109
Remove not working py-ssz decoder tests 2019-06-27 14:45:17 +01:00
protolambda a5154da1ff
suggestion to implement bitfield like 2019-06-27 15:40:40 +02:00
Dankrad Feist f57387cc83
Justification bitvector length to constant 2019-06-27 13:09:48 +01:00
Dankrad Feist 80c680e614
Phase 1 to Bitvector/Bitlist 2019-06-27 12:41:22 +01:00
Dankrad Feist becb7a032a
justification_bitfield -> Bitvector[4] 2019-06-27 12:15:31 +01:00
Dankrad Feist 67c50cb197
Changed attestation and custody bitfields 2019-06-27 12:15:29 +01:00
Justin Drake d641e94151 Cleanups 2019-06-27 11:44:33 +01:00
Justin Drake ee712ecdde Make HW happy :) 2019-06-27 11:21:45 +01:00
Dankrad Feist 494984f7d3
Fix linting errors 2019-06-27 10:42:14 +01:00
Dankrad Feist 23c743570e
Add some tests and fix pack 2019-06-27 10:26:45 +01:00
Dankrad Feist 02f6ba36f0
Add Bitvector and Bitlist
Bool, Bit -> boolean, bit
Fix simple-serialize.md
2019-06-27 09:51:06 +01:00
Justin Drake bcfe383e25 WIP 2019-06-27 08:44:44 +01:00
Danny Ryan d4209bb298
Merge pull request #1222 from ethereum/vbuterin-patch-6
Small update to typing in BLS spec file
2019-06-26 20:12:33 -06:00
protolambda e49519a53b
wrong end epoch test 2019-06-27 02:50:49 +02:00
protolambda a0c2f5c6b5
fix genesis testing code, add missing constant temporarily, fix py Generator/map/list problems 2019-06-27 01:57:30 +02:00
protolambda aecaed7a66
move genesis tests, structure properly, add yield keys for future test-vec generator 2019-06-27 01:56:52 +02:00
vbuterin dbb697dadd
Small update to typing in BLS spec file
[uint384] -> Tuple[uint384, uint384]
2019-06-26 19:40:11 -04:00
protolambda a62d0261ca
merge with dev, fixed now 2019-06-27 01:31:10 +02:00
Alex Stokes 23909ca727
Fix line lengths 2019-06-26 17:06:34 -06:00
protolambda 235c3d6841
re-enable test_empty_epoch_transition_not_finalizing for minimal config 2019-06-27 00:58:25 +02:00
protolambda f7b3c87715
check invalid state root 2019-06-27 00:43:50 +02:00
protolambda 8445d1d90c
fix formatting for lint 2019-06-27 00:37:32 +02:00
protolambda ff2d711d51
test block application on same and on previous slot state 2019-06-27 00:37:20 +02:00
Alex Stokes 10e257490f
Clarify `get_randao_mix` accessor
We avoid a genesis underflow by taking the randao epoch in `generate_seed` to be `+ EPOCHS_PER_HISTORICAL_VECTOR`.

This conflicts with the expected epoch bounds noted  in `get_randao_mix` and this PR attempts to clarify the situation by leaving a note.
2019-06-26 16:33:23 -06:00
protolambda 7a418ed682
test messed up indices in attester slashings 2019-06-26 23:40:56 +02:00
protolambda 24aa0646c0
new process-slashings tests, and epoch processing bugfix with transition-to-excl not working when not yielded from 2019-06-26 22:22:21 +02:00
protolambda 46dc3f39bb
detach crosslink tests from extra block 2019-06-26 22:22:21 +02:00
protolambda c66031f55c
fix crosslink tests, fix generalization of epoch processing 2019-06-26 22:22:21 +02:00