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
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
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
vbuterin
dbb697dadd
Small update to typing in BLS spec file
...
[uint384] -> Tuple[uint384, uint384]
2019-06-26 19:40:11 -04: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
protolambda
aedd281edb
clean up epoch processing testing
2019-06-26 22:22:21 +02:00
protolambda
c4c9bd32e2
test_eth1_vote_no_reset
2019-06-26 22:22:21 +02:00
protolambda
b2034a54a0
generalize epoch processing testing, add final-processing tests
2019-06-26 22:22:20 +02:00
protolambda
0e3c2cef5c
fix transfer tests, add 2 new tests
2019-06-26 22:22:20 +02:00
protolambda
b4b4e9571d
test activation queue
2019-06-26 22:22:20 +02:00
protolambda
c4b88e68e1
different new-deposit tests
2019-06-26 22:22:20 +02:00
Diederik Loerakker
6266133572
rename test methods based on suggestion
...
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2019-06-26 22:22:20 +02:00