Commit Graph

657 Commits

Author SHA1 Message Date
vbuterin d9e897bbcb
Status code / slot reorganization
* Added `activation_slot`, `exit_slot`, `penalized_slot`, `withdrawal_slot`, use these to determine if a validator is active
* Universal min activation/exit delay of 256 slots
* Min exit time of ~1 day, but penalization delays this to ~18 days
* Penalty calculation period of `[time penalized - 18 days, time penalized + 18 days]`; made the total penalties array fixed size and wraparound to make calculation more fine-grained
* Processes withdrawals in all epochs, not just dynasty-changing epochs
* Change `get_shuffling` function to take slot as argument

Not yet done:

* Removed `shard_committees` from the state
* Removed persistent committees from the state
2018-12-28 12:04:03 -06:00
Hsiao-Wei Wang 6b84dae09e Fix #361: pass `poc_commitment` to `validate_proof_of_possession` (#364)
* Fix #361
2018-12-27 18:11:38 +00:00
terence tsao 44c389bfe3 crosslink rewards typo (#367) 2018-12-27 18:01:20 +00:00
Nishant Das 8c12896fa0 Cleanup merkle_root
Add docstring and fix spacing.
2018-12-27 17:58:24 +00:00
Hsiao-Wei Wang 2c9cefa6a7
`Use `current_` instead of `this_` 2018-12-26 15:48:20 +08:00
terence tsao a2422de686
Potential bug for crosslinks? 2018-12-23 09:34:46 -08:00
vbuterin 4938481428 Added hash-and-bit data structure as per #286 (#355)
* Added hash-and-bit data structure as per #286
2018-12-23 10:48:11 +00:00
Hsiao-Wei Wang 0ee724a4ab
Merge pull request #356 from terenc3t/patch-22
updated SSZ implementation list
2018-12-23 12:04:31 +08:00
Hsiao-Wei Wang 985a3fe958
Merge pull request #351 from dangerousfood/vrc-con-update
Update VRC contract for Vyper v0.1.0-beta.6
2018-12-23 12:03:34 +08:00
terence tsao f21da324ef
updated SSZ implementation list 2018-12-22 15:13:54 -08:00
Danny Ryan f8652fa25b
Merge pull request #347 from ethereum/vbuterin-patch-15
Changes to inactivity leak
2018-12-22 07:13:41 -06:00
Danny Ryan f84b7b5f31
Merge pull request #341 from ethereum/target-committee-size
change TARGET_COMMITTEE_SIZE to 128
2018-12-22 07:12:21 -06:00
Danny Ryan a60ab53647
PR feedback 2018-12-22 07:11:58 -06:00
Danny Ryan d0b5133912
Merge pull request #349 from ethereum/vbuterin-patch-17
Proof of custody placeholders
2018-12-22 07:08:18 -06:00
vbuterin 99817aeb0e
Typo fix: lastest -> last 2018-12-21 17:23:42 -05:00
Danny Ryan 6a73a056f0
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-21 17:22:42 -05:00
Joseph Delong 1068076822 update vrc cotnract for vyper v0.1.0-beta.6 2018-12-21 16:18:41 -06:00
Danny Ryan fa8be783ad
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-21 17:12:38 -05:00
vbuterin 4f94f7579c
Moved notes to the end of the section to make Danny happy 2018-12-21 11:29:15 -05:00
vbuterin 5fc8f6cfca
Fixed deposit inclusion and positioning of state variables 2018-12-21 11:26:40 -05:00
Justin c8efdc7431
Add placeholder array in state for VDFs
Added `latest_vdf_outputs` in `state` initialised to an array of `ZERO_HASH` of length `LATEST_RANDAO_MIXES_LENGTH // EPOCH_LENGTH`. (There's one VDF output per epoch. The VDF input is the RANDAO mix at the epoch boundary.)

 Further changes to activate VDFs (in a future phase):

* Add a new beacon "VDF output and proof" transaction, e.g. with `MAX_VDF_OUTPUT_AND_PROOF := 1`.
* Adjust the `MAX_SEED_LOOKAHEAD` constant, e.g. to `2**4 * EPOCH_LENGTH`. (The `2**4` parameter is essentially `A_max`.)
* Add a `process_vdf_output_and_proof` helper function in the per-block processing:
    * Verify the VDF input hasn't already been processed (check the corresponding `state.latest_vdf_outputs` entry is not `ZERO_HASH`.)
    * Verify the proof is correct, i.e. matches the VDF input and output
    * Save the VDF output to `state.latest_vdf_outputs`
* In the per-epoch processing set the corresponding entry in `state.latest_vdf_outputs` to `ZERO_HASH`.
* Use a VDF output for the shuffling seed.
2018-12-21 15:26:13 +00:00
Hsiao-Wei Wang 6667edb015
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-21 09:08:01 -05:00
vbuterin 6eb4e59b8c
slots -> epochs 2018-12-21 09:07:04 -05:00
vbuterin 8e30f1b63e
Set zero balance TTL back to 2**22 2018-12-21 09:06:30 -05:00
Hsiao-Wei Wang 1d1db908e2
Fix grammar 2018-12-21 16:43:59 +08:00
Hsiao-Wei Wang ac0b8aac07
Add initial setting of proof of custody placeholders 2018-12-21 16:41:48 +08:00
Hsiao-Wei Wang e639f365a6
Merge pull request #344 from ethereum/hwwhww/chunk_size
phase1: Adjust `CHUNK_SIZE`
2018-12-21 11:04:36 +08:00
vbuterin 985c8a2c30
Proof of custody placeholders
Replacing #145
2018-12-20 16:01:00 -05:00
vbuterin ac5db1da8d
Doubled sqrt e drop time. 2018-12-20 12:51:34 -05:00
vbuterin 53dd49167b
Changes to inactivity leak
* Fixes parameters and makes clear that the inactivity leak is on a per-epoch basis (before the leak was technically 64 times too weak as it was calculated per-slot but applied per-epoch)
* Adds a `// 2` to the inactivity leak to compensate for it being applied twice
* Changes how it is calculated (no inactivity leak for not being part of the head, only basic leak)
* Separates out early inclusion incentives into a separate incentive component rather than being multiplicative with everything else
2018-12-20 12:41:17 -05:00
Danny Ryan eaab06f2dd
Merge pull request #298 from ethereum/update_vyper_contract
deposit contract: reduce on-chain computation
2018-12-20 09:24:32 -06:00
terence tsao 96633781fb
simplify total_attesting_balance 2018-12-20 06:37:03 -08:00
Danny Ryan e780be349e
Merge pull request #345 from ChihChengLiang/patch-2
Fix typo in get_new_shuffling
2018-12-20 07:52:30 -06:00
Danny Ryan c90ab16701
Merge pull request #340 from ethereum/vbuterin-patch-15
Remove MIN_VALIDATOR_REGISTRY_CHANGE_INTERVAL
2018-12-20 07:51:58 -06:00
Chih Cheng Liang d3cdd3fcc0
Fix typo in get_new_shuffling 2018-12-20 19:36:35 +08:00
Hsiao-Wei Wang e4e923fbba
Adjust `CHUNK_SIZE` 2018-12-20 14:36:33 +08:00
terence tsao c177ce23b3
typo on attesting_validator? 2018-12-19 21:56:43 -08:00
Akhila Raju bf753a6120
Remove line repeat in initiate_validator_exit 2018-12-19 19:56:26 -06:00
Akhila Raju 09e31acda5
Remove line repeat in activate_validator 2018-12-19 19:53:28 -06:00
Danny Ryan 0809ca0d62
fix 'CYCLE_LENGTH' -> 'EPOCH_LENGTH' 2018-12-19 19:35:55 -06:00
Danny Ryan 55ac9ac313
change TARGET_COMMITTEE_SIZE to 128 2018-12-19 15:09:17 -06:00
vbuterin 56bc4412bc
Remove MIN_VALIDATOR_REGISTRY_CHANGE_INTERVAL
Slight simplification. Only substantive change is that if the validator registry stays constant, we don't reshuffle 3 epochs after the last reshuffling (ie. before the reshufflings happened after 1, 2, 3, 4, 8, 16... epochs, now it's just 1, 2, 4, 8, 16...)
2018-12-19 14:09:50 -05:00
Vitalik Buterin a9328157a8
Don't lexicographically sort 2018-12-19 13:48:04 -05:00
Hsiao-Wei Wang 9b9114fac2
Merge branch 'master' into update_vyper_contract 2018-12-19 23:39:59 +08:00
Danny Ryan 105e669391
Merge pull request #327 from ethereum/vbuterin-patch-18
Keep randao mixes in the state
2018-12-19 09:03:25 -06:00
Anirudha Bose 257c83cc23
Fix typos in the beacon chain spec 2018-12-19 12:47:37 +01:00
Danny Ryan 36e26c86a3
fix assert conditions in get_block_hash 2018-12-18 12:53:48 -06:00
Danny Ryan 0de7240452
Merge branch 'master' into vbuterin-patch-18 2018-12-18 12:50:06 -06:00
Danny Ryan 20006c674b
Merge branch 'master' into hwwhww-patch-2 2018-12-18 12:45:50 -06:00
Danny Ryan 8548f03d5a
Merge pull request #317 from ethereum/vbuterin-patch-15
Put validator balances into a separate list in the state
2018-12-18 12:41:10 -06:00