Commit Graph

1511 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 0b16430cf5
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-09 11:00:13 -06:00
Hsiao-Wei Wang 608ec2452c
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-09 10:59:56 -06:00
Hsiao-Wei Wang 83d54f6aa4
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-09 10:59:45 -06:00
Hsiao-Wei Wang 06c5c11cd5
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-09 10:59:31 -06:00
Hsiao-Wei Wang 35851b5303
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-09 10:59:20 -06:00
Vitalik Buterin 8f1325f95e Fixed bugs found by Danny 2019-01-09 10:58:33 -06:00
Danny Ryan 1daab4659a
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-09 10:40:40 -06:00
Ben Edgington 994a42e6b1 Add getter to Vyper contract for Merkle branches
Returns the Merkle branch for the leaf at index `index`. This getter provides
an alternative way for beacon chain proposers to access the Merkle tree of
deposits rather than being Ethereum 1.0 light clients. The method can be
called on a trusted Ethereum 1.0 archive node at specific past block numbers
to retrieve the Merkle branch needed to register a validator.
2019-01-08 20:42:19 +00:00
Ben Edgington 61f7e37eff Replace numeric constant with symbolic in Vyper contract
Vyper v0.1.0-beta.6 supports ranges with symbolic constants.
2019-01-08 19:42:22 +00:00
Danny Ryan 9dfc459849
Merge pull request #406 from terenc3t/patch-29
inclusion_slot and inclusion_distance in its own section
2019-01-08 10:49:14 -07:00
Danny Ryan 197b88df92
Merge pull request #404 from akhila-raju/patch-2
Removes naming conflict in get_shuffling.
2019-01-08 09:57:56 -07:00
Danny Ryan 609082c1af
change slot_num to slot_position 2019-01-08 09:57:15 -07:00
Danny Ryan 78ee210d56
fix seed xor in get_shuffling using bytes32 2019-01-08 09:51:12 -07:00
Danny Ryan fff0989b8c
fix call to hash (from Hash32) 2019-01-08 09:35:51 -07:00
Danny Ryan f6453a7455
Merge branch 'master' into JustinDrake-patch-1 2019-01-08 10:09:30 -06:00
Danny Ryan 9f87511632
Merge pull request #372 from terenc3t/patch-25
Rewording Validator Registry Precondition
2019-01-08 08:43:59 -07:00
Vitalik Buterin b66218a264 Initial commit 2019-01-07 18:53:33 -06:00
terence tsao 4dab5fc72c
Update 0_beacon-chain.md 2019-01-07 15:55:05 -08:00
Akhila Raju b78458bbb2
Removes naming conflict in get_shuffling.
The variable name 'slot' in the for-loop in 'get_shuffling' conflicts with the get_shuffling argument name 'slot'. Renames 'slot' in for-loop to 'slot_num'.
2019-01-07 13:06:44 -05:00
Danny Ryan 14e14ce576
Merge pull request #397 from ralexstokes/fix-merkle-bug
Fixes bug with Merkle proof branch selection
2019-01-07 09:45:42 -07:00
Hsiao-Wei Wang e772c4da6f
Merge branch 'master' into rename_pow_to_deposit 2019-01-07 14:02:11 +08:00
Alex Stokes c69fa9a793
Fixes typo in `sorted` function.
In keeping with the rest of the code in this document we adhere to valid Python
where possible.

The custom comparator keyword argument for `sorted` is `key` so this commit
updates its usage when sorting validators by exit order.
2019-01-06 17:41:11 -06:00
Danny Ryan fd2cc6956f
Merge branch 'master' into vbuterin-patch-19 2019-01-05 08:53:04 -07:00
Alex Stokes a0e454d86c
Fixes bug with Merkle proof branch selection
This code determines the order in which the next branch element and the
current value should be hashed to produce the parent node in the Merkle tree.

The existing code fails to verify branches constructed in the standard way.

This patch fixes the spec code so that it works properly by using an appropriate
parity calculation.

Example code here to illustrate it working:
https://gist.github.com/ralexstokes/9d82e188bd3286ff74a1fa1dcb5068e0
2019-01-04 09:48:50 -06:00
vbuterin c24f907088
Put back spaces 2019-01-04 09:22:59 -06:00
Hsiao-Wei Wang 88de4e35f2
Merge pull request #395 from terenc3t/patch-28
Get shard_block_root from crosslink
2019-01-04 16:04:43 +08:00
Hsiao-Wei Wang fa08e240c8
Merge branch 'master' into HEAD 2019-01-04 15:55:03 +08:00
Hsiao-Wei Wang 61b2b6392c
bugfix and rename
Use `deposit_root_vote` for `DepositRootVote` object and `deposit_root` for the
deposit root hash.
2019-01-04 15:54:48 +08:00
Danny Ryan 36231e698a
Apply suggestions from code review
Co-Authored-By: hwwhww <hwwang156@gmail.com>
2019-01-04 15:54:35 +08:00
Danny Ryan d360330f83
Merge pull request #394 from ralexstokes/fix-update-validator-registry-fn
Remove dangling `return` statement from spec function
2019-01-03 21:46:34 -07:00
Danny Ryan a84dd398e4
Merge pull request #392 from ralexstokes/fix-units-ejection-balance
Fix a type error with units of wei when determining ejection balance.
2019-01-03 21:44:08 -07:00
Danny Ryan d5e6d84269
Merge pull request #391 from ralexstokes/typo/hash-slot
Change "justified hash" to "justified slot"
2019-01-03 21:43:12 -07:00
terence tsao 97bd04607c
Update 0_beacon-chain.md 2019-01-03 19:40:03 -08:00
terence tsao c0140d72ee
Update 0_beacon-chain.md 2019-01-03 18:23:23 -08:00
vbuterin a5b1f2cc0a
Moved comment and changed conditional 2019-01-03 19:44:39 -06:00
vbuterin 3f4be7abb7
Fixed activation slot conditional. 2019-01-03 19:42:59 -06:00
Alex Stokes 19a9582a48
Remove dangling `return` statement from spec function
This function declares that it returns `None` and instead directly mutates the
state.

There is a dangling return statement that this commit deletes.
2019-01-03 19:42:07 -06:00
Alex Stokes 9a83ad7b9b
Fix a type error with units of wei when determining ejection balance.
`EJECTION_BALANCE` is in units of ETH.

`state.validator_balances[index]` is in units of Gwei.

For the ejection computation to work as desired, we need to convert the
`EJECTION_BALANCE` constant from ETH to Gwei.
2019-01-03 14:28:36 -06:00
Alex Stokes 457f84fa64
Change "justified hash" to "justified slot"
There should be a correspondence here but referring to the slot is more
explicit, especially for those who are not as familiar with the
details of FFG finalization.
2019-01-03 12:06:44 -06:00
Hsiao-Wei Wang f92735454e
Fix `verify_slashable_vote_data`
The first field of `AttestationDataAndCustodyBit` should be an `AttestationData` object, not an `SlashableVoteData` object.
2019-01-03 16:19:54 +08:00
Hsiao-Wei Wang b614595fbe
Merge branch 'master' into vbuterin-patch-19 2019-01-03 00:26:31 +08:00
Hsiao-Wei Wang af8ed89170
Merge branch 'master' into rename_pow_to_deposit 2019-01-03 00:10:18 +08:00
Hsiao-Wei Wang 78e73633bc
Merge pull request #382 from ethereum/remove_shard_reassignment_record
Remove `ShardReassignmentRecord`
2019-01-02 23:48:04 +08:00
Hsiao-Wei Wang dcaf510213
Merge branch 'master' into rename_pow_to_deposit 2019-01-02 23:44:12 +08:00
Justin 3efe1b3b6c
Update 0_beacon-chain.md 2019-01-02 15:21:22 +00:00
Justin 429e5721f2
RANDAO hash chain and no stale shuffles
* Make RANDAO into a hash chain (this makes it easy for applications to prove the intermediate RANDAO reveals).
* Include `state.slot` when shuffle to avoid stale shuffles with skip slots
2019-01-02 14:20:01 +00:00
Justin 93b18d5160
Fix typo 2019-01-02 13:51:57 +00:00
Justin 696bf23b5e
Remove returned value for process_deposit
Also trim trailing whitespace
2019-01-02 13:41:32 +00:00
Justin 7d240946a9
Update 0_beacon-chain.md
* Cleanup comments related to custody
* Rename "Miscellaneous" to "Custody" in the table of contents
* Use `INITIAL_SLOT_NUMBER` instead of `0` for initial custody slots
* (typo) Fix `second_latest_custody_reseed_slot` => `penultimate_custody_reseed_slot`
2019-01-02 13:35:57 +00:00
Justin 9a90803f5c
Update 0_beacon-chain.md
* `processed_deposit_root` => `latest_deposit_root`
* `receipt_root` => `deposit_root`
* `receipt_tree` => `deposit_tree`
* Emphasize that deposits are Ethereum 1.0 deposits in text in various places
* `Eth1Deposit` => `Deposit` for consistency (Also happy sticking with `Eth1Deposit` and replacing `deposit_` with `eth1_deposit_` everywhere. This may be unnecessary since Ethereum 2.0 deposits can be distinguished with the `shard_` prefix, e.g. `ShardDeposit` and `shard_deposit`.)
* Clarify `withdrawal_credentials`.
* Clarify that multiple Ethereum 1.0 blocks can have the same deposit root.
2019-01-02 13:18:35 +00:00
Hsiao-Wei Wang 3dbee05aa6
Rename `pow_receipt_` to `deposit_` 2019-01-02 18:27:09 +08:00
Hsiao-Wei Wang 35adc9c61a
Remove `ShardReassignmentRecord` 2019-01-02 15:31:57 +08:00
Hsiao-Wei Wang 0d9ecce344
Rename `poc_` to `custody` 2019-01-02 15:16:55 +08:00
vbuterin 2105614059
Bunch of fixes 2019-01-01 22:37:43 -06:00
vbuterin fdb1b6775d
Removed extraneous variable setting 2018-12-31 14:08:59 -06:00
Justin fd295eb539
Merge branch 'master' into vbuterin-patch-19 2018-12-31 15:17:00 +00:00
Justin d36b403c2e
Cleanups and fixes
Cleanups

* (typo) Remove `get_new_validator_registry_delta_chain_tip` from table of contents
* (typo) Update "Routines for updating validator status" in table of contents
* Update `FAR_FUTURE_SLOT` from `2**63` to `2**64 - 1`
* Put more constants in "Initial values", homogenise
* Cleanup note formatting
* Remove `ZERO_BALANCE_VALIDATOR_TTL` logic (to be possibly reintroduced in phase 2).
* Cleanup `min_empty_validator_index`
* Rename `deposit` to `amount` in `process_deposit` and `DepositData`.
* (typo) Remove new line under `process_penalties_and_exits`
* (typo) "Status codes" => "Status flags" in the table of contents
* (typo) `(state.slot - EPOCH_LENGTH) % LATEST_RANDAO_MIXES_LENGTH` => Use `SEED_LOOKAHEAD` instead.
* Put `state.validator_registry_latest_change_slot = state.slot` in `update_validator_registry`.
* Use `GENESIS_SLOT` for `last_poc_change_slot=0` and `second_last_poc_change_slot=0`.

Bugfixes

* (typo) `validator_exit` => `exit.validator_index`
* Separate initial deposits and initial activations to avoid double activations
* Replace `proposer.status != EXITED_WITH_PENALTY` with `validator.penalized_slot > state.slot` in two different places.
* Replace `status == EXITED_WITH_PENALTY` with `validator.penalized_slot <= state.slot` (and validator active) in two different places.
2018-12-31 15:14:14 +00:00
Danny Ryan 8f29bcdf08
Merge pull request #373 from ethereum/fix-slashing
fix slashing conditons
2018-12-31 07:57:51 -06:00
vbuterin 011970169c
Edited as per Justin's comments 2018-12-30 20:42:05 -06:00
terence tsao c8ff723514
Update 0_beacon-chain.md 2018-12-30 16:06:33 -08:00
vbuterin 1a4973171f Remove references to the persistent committees (#376)
* Remove references to the persistent committees
2018-12-30 23:46:32 +00:00
vbuterin 4a93374025
Fixed as per hww's comments 2018-12-30 09:15:23 -06:00
Hsiao-Wei Wang 14f49aaacb
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-29 13:47:10 -06:00
vbuterin bd5b32ec5a
Initialize status_flags 2018-12-29 13:44:51 -06:00
vbuterin 85d001001c
Fixed seed lookahead 2018-12-28 12:08:19 -06:00
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
Danny Ryan aa9bda271f
fix slashing conditons to be based upon epochs rather than slots 2018-12-28 11:10:12 -06:00
terence tsao 10a8ba2d9e
rewording for validator registry precondition 2018-12-28 09:04:00 -08: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 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
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
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
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
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
Danny Ryan f7afd679da
fix comment 2018-12-18 12:37:25 -06:00
Danny Ryan 5943fd507f
fix remaining index error 2018-12-18 12:27:33 -06:00
Hsiao-Wei Wang bb1559a86f
PR feedback 2018-12-19 01:19:47 +08:00
Danny Ryan 0bf1acc1eb
Merge pull request #333 from burnburn/casper_ref
Make Casper ref normative
2018-12-18 10:05:52 -06:00
Danny Ryan 8bf1a542fe
Merge pull request #288 from ethereum/prev-balance-note
per-epoch Balance difference consensus safety note
2018-12-18 08:52:00 -06:00
Dan Burnett 5a0d8c8f42
move to Informative 2018-12-18 09:41:59 -05:00
Hsiao-Wei Wang 49f3746dc7
fix 2018-12-18 18:58:59 +08:00
vbuterin 2611180119
Fixes as per Danny's comments 2018-12-18 05:33:03 -05:00
Hsiao-Wei Wang edf335ebf0
Fix on startup functions 2018-12-18 11:58:28 +08:00
Dan Burnett cc4e066029
formatting change 2018-12-17 15:19:58 -05:00
Dan Burnett d505aa28fe
make Casper FFG normative 2018-12-17 15:15:37 -05:00
vbuterin cc5cef52cb
Separated block roots and randao mixes length, and fixed per-slot randao updates 2018-12-17 14:04:04 -05:00
Danny Ryan 49ce718cc2
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 13:53:42 -05:00
Danny Ryan e16c98b854
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 13:53:35 -05:00
Danny Ryan eee26d7b69
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 13:53:17 -05:00
Danny Ryan 9c620d3853
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 13:53:04 -05:00
vbuterin 7f66f06871
Fixed one more outdated-style balance query 2018-12-17 10:43:05 -05:00
vbuterin 2fa7d254dd
Merge branch 'master' into vbuterin-patch-15 2018-12-17 10:41:23 -05:00
Danny Ryan 2c48bab3d8
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 10:40:41 -05:00
Danny Ryan 110fe75a70
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 10:40:31 -05:00
Danny Ryan fbabeff838
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 10:40:21 -05:00
vbuterin b402a7c1d6
Made a function multiline 2018-12-17 09:12:51 -05:00
Danny Ryan eccfc912b5
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 09:11:39 -05:00
vbuterin c0d65cc334
Changed get_effective_balance definition to use state+index 2018-12-17 09:10:44 -05:00
Danny Ryan e9f986971e
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-12-17 09:08:13 -05:00
vbuterin 365437d4c2
Forgot to update randao mixes in one place 2018-12-17 04:46:28 -05:00
vbuterin d1aa3b4cd6
Editing randao_mixes in place instead of as a queue
Saves having to re-Merkelize an entire 8192-item list every block.
2018-12-17 04:44:49 -05:00
vbuterin 416bbf9cea
Edit latest_block_roots in place instead of as a queue
Faster editing that way; otherwise every block will require completely reconstructing a 8192-sized Merkle tree.
2018-12-17 04:40:27 -05:00
vbuterin 4aa6e4de7b
Merge pull request #328 from ethereum/vbuterin-patch-19
Remove clamp
2018-12-17 04:17:02 -05:00
vbuterin 3725dd5cb1
Merge pull request #316 from ethereum/vbuterin-patch-13
Edit BLS spec as per issue #300
2018-12-16 04:06:57 -05:00
vbuterin 9e6c1a6244
Remove clamp
Removed the use of `clamp` from the spec, as there's no point in a helper function that's used exactly once; it only increases the amount people have to jump around the spec to understand what's going on.
2018-12-15 06:44:18 -05:00
vbuterin 425f7d51c9
Keep randao mixes in the state
Response to #295 

Also a simplification, as two special cases get replaced: `state.randao_mix` -> `state.latest_randao_mixes[-1]`, and `state.next_seed` -> `state.latest_randao_mixes[-CYCLE_LENGTH-1]`.
2018-12-15 05:10:31 -05:00
Danny Ryan 62b95fbe33
fix process_deposit function signature 2018-12-14 15:21:32 -06:00
Danny Ryan 179352dbfe
remove ProofOfPossessionData 2018-12-14 15:20:21 -06:00
Danny Ryan 7b4c4f299d
add bls_aggregate_pubkeys ref in beacon chain spec 2018-12-14 09:39:14 -06:00
Danny Ryan c448db46ea
Merge pull request #315 from ethereum/more-ssz-objects
More ssz objects pt 1
2018-12-14 09:30:19 -06:00
Danny Ryan 221874efcb
pr feedback 2018-12-14 09:29:49 -06:00
Danny Ryan 68a76ba727
Merge pull request #313 from ethereum/slashable-functions
Cleanup casper slashing
2018-12-14 08:58:01 -06:00
vbuterin c43724132b
Clarify block hash -> block root 2018-12-13 23:01:32 -05:00
vbuterin 964395c362
Some bugfixes 2018-12-13 19:40:00 -05:00
vbuterin 2b9a0e999c
Separate validator balances 2018-12-13 19:28:59 -05:00
Danny Ryan 96aade9a2c
add proofofpossessiondata ssz object 2018-12-13 14:03:22 -06:00
Danny Ryan f30d404856
add ValidatorRegistryDeltaBlock ssz object 2018-12-13 13:50:50 -06:00
Danny Ryan 9e74043a17 move ejectiosn to per-epoch. fix a couple bugs in validator status change functions (#314) 2018-12-13 19:45:08 +00:00
Danny Ryan cd9e7ecaeb
minor fix 2018-12-13 12:18:29 -06:00
Danny Ryan 697d3c5eb5
add doc string for new slashing helper funtions 2018-12-13 12:17:39 -06:00
Danny Ryan 7c833fafc5
clean up casper slashing with helper functions etc 2018-12-13 12:09:39 -06:00
Raul Jordan 923df80b03 replace shard_block_hash with shard_block_root 2018-12-13 11:26:10 -06:00
terence tsao 9170efee1b
removed old comments 2018-12-13 08:27:22 -08:00
Hsiao-Wei Wang 1ea887c964 Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput` (#310) 2018-12-13 15:36:57 +00:00
terence tsao ddb91adecf
quick fix on typo 2018-12-13 06:51:47 -08:00
Gregory Markou b554204688 clarified language around start_up (#303) 2018-12-13 13:08:51 +00:00
Justin 6b6a04c884
Bugfix (missing `state.`) 2018-12-13 10:03:50 +00:00
Hsiao-Wei Wang c1a3b29145 Fix `verify_slashable_vote_data`: use `get_domain` (#306) 2018-12-13 09:55:37 +00:00
Hsiao-Wei Wang 6fa12f6603
Merge pull request #301 from ethereum/vote_rename
Some renames about vote and fix `verify_slashable_vote_data` (`verify_casper_votes`)
2018-12-13 13:58:10 +08:00
Hsiao-Wei Wang d5a5e1815c
Rename `LATEST_BLOCK_ROOT_COUNT` -> `LATEST_BLOCK_ROOTS_LENGTH` 2018-12-13 13:55:34 +08:00
Hsiao-Wei Wang 9eeb863ec6
Refactor `verify_slashable_vote_data` 2018-12-13 03:11:53 +08:00
Hsiao-Wei Wang ab7549e52e
Move `verify_slashable_vote_data` to the last verification of Casper slashings 2018-12-13 03:04:10 +08:00
Hsiao-Wei Wang d2fda68ccb
Fix ToC 2018-12-13 03:00:53 +08:00
Hsiao-Wei Wang 4aa6ec4468
Update `CasperSlashing` and `verify_casper_votes`
1. Rename `verify_casper_votes` -> `verify_slashable_vote_data`
2. Rename `CasperSlashing.votes_1` -> `CasperSlashing.slashable_vote_data_1`
3. Rename `CasperSlashing.votes_2` -> `CasperSlashing.slashable_vote_data_2`
4. Fix `verify_slashable_vote_data` `(verify_casper_votes)`
2018-12-13 02:55:28 +08:00
Hsiao-Wei Wang ae5221c4f8
Move BLS verification to later step 2018-12-13 02:11:47 +08:00
Hsiao-Wei Wang ac3ffb3df6
`LATEST_BLOCK_ROOTS_COUNT` -> `LATEST_BLOCK_ROOT_COUNT` 2018-12-13 02:08:37 +08:00
Hsiao-Wei Wang 81c6b561fc
`CandidatePoWReceiptRootRecord.votes` -> `CandidatePoWReceiptRootRecord.vote_count` 2018-12-13 02:07:12 +08:00
Danny Ryan cc34097fba
fix genesis 2018-12-12 11:51:42 -06:00
Hsiao-Wei Wang 130e45ee39
Reduce on-chain computation 2018-12-13 01:39:34 +08:00
Hsiao-Wei Wang 92b9253ecb
Fix ToC 2018-12-13 01:35:11 +08:00
terence tsao 3b0fe25c14
multiply GWEI_PER_ETH 2018-12-12 09:29:26 -08:00
Hsiao-Wei Wang 4c3c8510d4
Fix 'validator_index': 'uint64' -> 'uint24' 2018-12-13 01:09:56 +08:00
Danny Ryan acd83973fb
bold note 2018-12-12 10:02:49 -06:00
Danny Ryan 70a577a786
Merge branch 'master' into prev-balance-note 2018-12-12 10:01:14 -06:00
Danny Ryan 10fa84b057
rename base_inactivity_penalty to inactivity_penalty 2018-12-12 09:28:47 -06:00
Danny Ryan 541f33094f
move rewards helpers to rewrds and penalties section 2018-12-12 09:14:44 -06:00
Danny Ryan bc60576d3c
rework rewards sections as per PR feedback 2018-12-12 09:07:44 -06:00
Justin 19b0421d4d
Merge branch 'master' into fix-rewards 2018-12-12 13:11:10 +00:00
vbuterin 6b5479cac9 Moved ancestor hashes to state, changed to batched accumulator (#269)
* Replaced ancestors hashes in blocks with the previous block root
* Add a block root batched accumulator
* Cleanup processing presentation
2018-12-12 13:02:50 +00:00
Chih Cheng Liang 21da07b4f7 typo (#294) 2018-12-12 10:30:58 +00:00
Danny Ryan e2714b3344 add bls_verify_multiple def to phase 0 spec (#292) 2018-12-11 21:18:30 +00:00
Danny Ryan 726ed97eb2
Merge branch 'rename_tree_roots' of https://github.com/terenc3t/eth2.0-specs into terenc3t-rename_tree_roots 2018-12-11 14:54:30 -06:00
Terence Tsao 3f31eecb18 fixed typo & s/winning_hash/winning_root/ 2018-12-11 12:50:20 -08:00
Terence Tsao a13997d738 updated rest of the fields except ancestor_hashes 2018-12-11 12:38:32 -08:00
Justin 9f8ae361f9
Rename `BLSVerify` to `bls_verify` and put `hash` in helpers 2018-12-11 20:30:28 +00:00
Danny Ryan 032007ad17
add organization to previous epoch attester helpers 2018-12-11 13:40:00 -06:00
Danny Ryan 5e84a53ff1
base_reward is 1/4 of total reward val can earn per cycle 2018-12-11 13:32:27 -06:00
Danny Ryan 42364fe7b1
add granular reward for the four different parts of attestation 2018-12-11 13:22:17 -06:00
Terence Tsao e0e2fed1b5 rename hash tree roots as root 2018-12-11 09:53:56 -08:00
Danny Ryan 83224c320a
small edit to language 2018-12-11 11:16:24 -06:00
Danny Ryan befc349878
add balance diff consensus safety note 2018-12-11 11:14:42 -06:00
Danny Ryan e8d8b03089 note the vyper version the contract is expected to be compiled with (#287) 2018-12-11 16:29:09 +00:00
Danny Ryan 084880511d
Merge pull request #280 from ethereum/validator-status
validator status cleanup
2018-12-11 10:14:02 -06:00
Danny Ryan 5734b25fb1
rename bls verification spec ref 2018-12-11 10:13:31 -06:00
Danny Ryan c462f563b1
use Deposit object for processing intiial deposits 2018-12-11 10:02:59 -06:00
Danny Ryan 1e3f518f02
pr feedback 2018-12-11 09:49:50 -06:00
Danny Ryan e64bfb289c
Merge pull request #282 from ethereum/ssztreehash-cleanup
cleanup refs to SSZTreeHash
2018-12-11 09:17:57 -06:00
vbuterin 47dc3eb48b Updated winning_hash description (#283) 2018-12-11 13:25:21 +00:00
Danny Ryan 6fccd9f793
cleanup a few more hash refs to ssztreehash 2018-12-10 17:08:04 -06:00
Danny Ryan fa685abc47
add ref to ssztreehash spec. cleanup where ssztreehash should be used 2018-12-10 16:58:36 -06:00
Danny Ryan ae33eec081
Merge branch 'master' into validator-status 2018-12-10 16:43:35 -06:00
Danny Ryan e77bf04711
remove direct calls to exit_validator 2018-12-10 16:42:28 -06:00
Danny Ryan 70765a205e
fix toc 2018-12-10 16:30:25 -06:00
Danny Ryan 0c281c8113
local var i -> index 2018-12-10 16:17:42 -06:00
Danny Ryan 03901ffe65
cleanups 2018-12-10 16:14:08 -06:00
Danny Ryan 9cff4ae653
fix exit conditions 2018-12-10 15:56:22 -06:00
Danny Ryan 6f058c2756
begin validator status cleanup 2018-12-10 15:16:06 -06:00
Jacek Sieka 2facc754cc
attestations: avoid unsigned underflow (eth2.0-specs/issues/#224)
* and some nitpicks
2018-12-10 14:38:32 -06:00
Jacek Sieka 44ac70e7fe remove trailing whitespace (#278) 2018-12-10 19:55:11 +00:00
Justin 03c014d0e3
Update 0_beacon-chain.md 2018-12-10 11:22:42 +00:00
Justin 0afafe1c76
Merge branch 'master' into JustinDrake-patch-8 2018-12-10 10:11:41 +00:00
Danny Ryan de32e25bfc fix initial initial persistent_committees (#258)
* fix initial persistent_committees
* initial persistent commmitees from active validator indices
2018-12-09 14:47:30 +00:00
Danny Ryan 685a1be651
Merge pull request #252 from ethereum/remove-specials
new block format pt2 -- remove specials
2018-12-09 08:33:46 -06:00
Danny Ryan cc476db8c9
address pr ffeedback 2018-12-09 08:33:12 -06:00
Hsiao-Wei Wang c897dd99c2
Update specs/core/0_beacon-chain.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2018-12-09 08:25:34 -06:00
vbuterin 70836ecd1c Clarify why it's called INVERSE_SQRT_E_DROP_TIME (#261)
* (cleanup) Rename `SQRT_E_DROP_TIME` to `INVERSE_SQRT_E_DROP_TIME` to reflect `1/sqrt(e)`
* (cleanup) Justify why it's called INVERSE_SQRT_E_DROP_TIME
* (cleanup) Polish and simplify presentation
* (bug fix) Fixed 2**34 value
* (bug fix) Replace epochs with slots to make the calculations work
2018-12-09 13:08:11 +00:00
Hsiao-Wei Wang e04378c38c bytes32(pubkey) -> bytes48(pubkey) (#265) 2018-12-09 12:33:13 +00:00
Justin 2ed18bfa1f
Casper cleanups and bug fixes
* (cleanup) `SpecialAttestationData` => `CasperVotes`
* (cleanup) `vote_1`, `vote_2` => `votes_1`, `votes_2`
* (bug fix) Place a bound on the number of votes with `MAX_CASPER_VOTES`
* (bug fix) Supply `state` when calling `verify_casper_votes`
2018-12-07 20:09:49 +00:00
Danny Ryan e2eedabed2
Merge pull request #254 from mkalinin/fix-boundary_attesting_balance-2
Fix epoch_boundary_attesting_balance calculation
2018-12-07 13:00:38 -06:00
Danny Ryan a0e226c957
remove record from operation types 2018-12-07 12:51:15 -06:00
Danny Ryan 74ac7e6ee1
PR feedback 2018-12-07 12:43:11 -06:00
Chih Cheng Liang 357cb72d7a fix broken md (#257) 2018-12-07 16:16:09 +00:00
Danny Ryan dc4bbfedab
clarify header 2018-12-07 09:18:06 -06:00
Danny Ryan c4acafdb58
change block objects to operations 2018-12-07 09:15:55 -06:00
Danny Ryan 3a24fed194
fix toc' 2018-12-07 09:05:29 -06:00
Danny Ryan d9abce4471
rename transactiosn to block objects 2018-12-07 09:04:16 -06:00
Danny Ryan 76e5b76dc2
Merge branch 'master' into remove-specials 2018-12-07 08:12:58 -06:00
Danny Ryan 9f64530aac
remove BeaconBlockHeader 2018-12-07 07:46:52 -06:00
Mikhail Kalinin 1a716609ba
Fix epoch_boundary_attesting_balance calculation
get_effective_balance accepts ValidatorRecord object as an input but it was called with validator index instead
2018-12-07 18:23:55 +06:00
Justin 2d8efe57c0
Bug fixes and cleanups around exit_validator
Cleanups

* Use `state.slot` over `current_slot`.
* Specify `new_status`
* Segregate ejection processing

Bug fixes:

* Put ejections at the end of the per-slot processing (TODO: per-slot processing should come *after* per-epoch processing)
* Immediately exit ejections
* Include `ACTIVE_PENDING_EXIT` as an active state
* Renamed two `State` to `BeaconState`
2018-12-07 12:18:55 +00:00
Danny Ryan 35f8eccc1f
fix tox 2018-12-06 19:18:49 -06:00
Danny Ryan 57b86e3204
fix toc 2018-12-06 19:16:10 -06:00
Danny Ryan bcb09a49a0
rework transactions data structure ordering 2018-12-06 19:13:19 -06:00
Danny Ryan 3ea04a28ca
fix table 2018-12-06 19:07:26 -06:00
Danny Ryan 80e224be8c
remove specials 2018-12-06 19:02:23 -06:00
Danny Ryan 40fd893fc1
remove extra field 2018-12-06 17:55:23 -06:00
Danny Ryan d18ab07803
fix toc 2018-12-06 17:54:14 -06:00
Danny Ryan 7f542ca714
add beaconblockheader and body 2018-12-06 17:51:01 -06:00
Danny Ryan 15c11a46bd
consistency in multiplication of EPOCH_LENGTH formatting 2018-12-06 16:56:23 -06:00
Danny Ryan 332511b42b
simplify finality conditions 2018-12-06 16:51:29 -06:00
Danny Ryan 98430c7c68
address comments 2018-12-06 16:47:22 -06:00
Danny Ryan ae1b64ccff
remove s helper 2018-12-06 16:38:40 -06:00
Danny Ryan eb7715aa41
pr feedback 2018-12-06 16:12:33 -06:00
Danny Ryan 330b2449bf
pr feedback 2018-12-06 15:54:39 -06:00
Danny Ryan 5e058a15b8
remove 'slot_hash_block' 2018-12-06 10:41:50 -06:00
Danny Ryan 464ad63464
minor slot cleanups 2018-12-06 10:25:35 -06:00
Danny Ryan 3e1aad24b0
Merge branch 'master' into virtual-skip-block 2018-12-06 09:45:25 -06:00
Danny Ryan c5eddd54f4
Merge branch 'master' into cleanup-validator-change 2018-12-06 09:42:24 -06:00
Danny Ryan b8b2586c92
address review comments 2018-12-06 09:40:40 -06:00
Danny Ryan f7e58dd82c
Merge branch 'master' into virtual-skip-block 2018-12-06 09:38:07 -06:00
Danny Ryan 8bc0254deb
add missing toc entry 2018-12-06 09:29:49 -06:00
Danny Ryan 7c25665d61
remove state.slot ref 2018-12-06 09:28:55 -06:00
Danny Ryan c0ca669bd0
cleanup validator registry change to merge before #234 2018-12-06 08:51:57 -06:00
Danny Ryan 91f83e3861
isolate some of the per-epoch changes from the other #234 2018-12-06 08:38:31 -06:00
terence tsao 0626061977
don't need slot num in get_active_validator_indices 2018-12-05 17:26:07 -08:00
Danny Ryan db65429cc8
rework to do virtual block transitions 2018-12-05 19:24:37 -06:00
Danny Ryan 22a77c331b
fix change_validators 2018-12-05 14:35:58 -06:00
Danny Ryan 1ccb1074c5
fix just/finality 2018-12-05 14:07:41 -06:00
Danny Ryan e894a2dc18
fix issues in justificaiton/finality 2018-12-05 13:55:56 -06:00
Danny Ryan 4e0b120fe3
Merge branch 'master' into JustinDrake-patch-3 2018-12-05 13:14:16 -06:00
Danny Ryan 59494d1774
add state root processing 2018-12-05 13:03:24 -06:00
Danny Ryan 3a677eefa9
minor cleanup 2018-12-05 12:49:45 -06:00
Danny Ryan cb871c3f0e
minor cleanups 2018-12-05 12:47:21 -06:00
Danny Ryan c154c65f14
cleanup calls to 'get_block_hash' 2018-12-05 12:42:16 -06:00
Danny Ryan 3bd56891c5
cleanup per slot processing 2018-12-05 12:40:08 -06:00
Justin eb26e10fae
Update 0_beacon-chain.md 2018-12-05 17:30:37 +00:00
Justin f956135763
Fix #237 (#238) 2018-12-05 17:17:17 +00:00
terence tsao 130b837975 Fix ZERO_BALANCE_VALIDATOR_TTL and move get_domain 2018-12-05 14:41:11 +00:00
Justin 20407c8dd1
Update 0_beacon-chain.md 2018-12-05 14:34:50 +00:00
Justin 2fc3f88795
Update 0_beacon-chain.md 2018-12-05 11:22:15 +00:00
Paul Hauner 2913dfa6fe Change `state.crosslinks` to `state.latest_crosslinks` (#236)
Change `state.crosslinks` to `state.latest_crosslinks` to match the `BeaconState` definition.
2018-12-05 09:03:09 +00:00
Justin 4c0841ec6a
Move to a per-slot state transition function
Initial pass for the migration from a per-block state transition function to a per-slot state transition function. More simplifications and cleanups can be made.
2018-12-04 21:28:31 +00:00
Justin a4722faf12
Handle activations and exits separately for balance churn (#230)
This change is to avoid deposits from fully consuming the allowable balance churn, preventing exits from being processed. And vice versa with deposits/exits swapped.

A bunch of cleanups and bug fixes were made along the way.
2018-12-04 19:49:26 +00:00
Danny Ryan b40a7c5ad6
Merge pull request #228 from ethereum/fix-validator-states
Fix deposit logic
2018-12-04 11:51:47 -06:00
Danny Ryan 17cf4e9f56
remove WITHDRAWN again 2018-12-04 11:23:37 -06:00
Danny Ryan 84a1a5fc07
fix pending -> exited_without_penalty. change pendning_exit to active_pending_exit. fix merkle tree in contract 2018-12-04 10:07:46 -06:00
Justin 5e4883ccbf
Stick with Keccak-256/SHA3 for now
See https://github.com/ethereum/eth2.0-specs/issues/218
2018-12-04 15:50:44 +00:00
Justin 73e77b75e1
Fix #223
`next_start_shard` does not need to be part of `state` (it's already available via `(state.shard_committees_at_slots[-1][-1].shard + 1) % SHARD_COUNT`)
2018-12-04 12:37:05 +00:00
Justin 67e4fa9d6f
Cleanup of deposit
* Structure the presentation, add sections to table of contents
* Remove incorrect and redundant information
* Add section on withdrawal credentials
2018-12-04 11:47:41 +00:00
Justin 4bf1539c83
Cleanups part 2 (#217)
Changelog (nothing major):

* Clean up constants
   * Add to table of contents
   * Rename a few
   * Split into more categories (e.g. "Deposit contract"  and "Initial values")
   * Replaced `SQRT_E_DROP_TIME ` by `INACTIVITY_PENALTY_QUOTIENT`
* Put all the data structures in "Data structures", including specials
* Move deposit contract after "Data structures"
* `ShardAndCommittee` => `ShardCommittee` (and related changes)
* `aggregate_sig` => `aggregate_signature`
* `justified_slot_bitfield` => `justification_bitfield`
* Use double-ticks everywhere in Python docstrings
* Clean up deposit contract a bit
* Bug fix: ensure uniqueness of the `ChainStart` log
2018-12-04 10:57:09 +00:00
Danny Ryan c2227a59de
fix int384 to uint384 2018-12-03 12:27:58 -06:00
vbuterin 0f59a564d0
Merge pull request #215 from mratsim/patch-1
Small typo in get_active_validator_indices
2018-12-03 09:38:03 -05:00
vbuterin 2f112e12fc
Merge pull request #202 from ethereum/initial_fork_slot
set initial fork_slot to INITIAL_SLOT_NUMBER
2018-12-03 09:37:27 -05:00
Mamy Ratsimbazafy fe5a472ff6
Small typo in get_active_validator_indices
Change [ValidatorRecords] to [ValidatorRecord]
2018-12-03 15:14:31 +01:00
Paul Hauner 95211af400
ForkData typo
Extremely small change: added a close bracket to `ForkData`.
2018-12-03 14:08:33 +11:00
Hsiao-Wei Wang 11d4473863
Fix ToC 2018-12-01 13:29:19 +08:00
josojo 158c8f3ab3 minor correction 2018-11-30 22:47:28 +01:00
Danny Ryan cf97bd18ea
Merge pull request #200 from burnburn/validator_definitions
add links to validator definition
2018-11-30 13:24:16 -06:00
Danny Ryan daaf6e4bc2
Merge pull request #206 from burnburn/sample_reference
First/sample reference
2018-11-30 13:20:50 -06:00
Dan Burnett 38b3c572f6
Fix typo 2018-11-30 13:58:44 -05:00
Dan Burnett 72fc2a0cff
Show new reference style 2018-11-30 13:56:44 -05:00
Danny Ryan 1757c2ad26
Merge pull request #204 from burnburn/references
Add References section
2018-11-30 12:54:17 -06:00
Daniel Burnett b04938d795
Merge branch 'master' into validator_definitions 2018-11-30 19:14:17 +01:00
Danny Ryan b55ef47c9b
set initial fork_slot to INITIAL_SLOT_NUMBER 2018-11-30 12:04:18 -06:00
Dan Burnett 8f15b6179b
Add active validator links 2018-11-30 12:49:05 -05:00
Dan Burnett 13a5bdbf70
add links to validator definition 2018-11-30 12:31:09 -05:00
Justin 81360d50a4
Cleanups pt. 1 (#185)
Many cleanups in this monster commit! Two warnings:

1) More significant cleanups will be coming soon™.
2) While several bugs were fixed in this cleanup, some will undoubtedly have been introduced (thanks to the three reviewers!). In particular, the logic around validator statuses is known to be broken.
2018-11-30 14:28:33 +00:00
Dan Burnett 2701b44d23
Add References section 2018-11-29 11:12:12 -05:00
terence tsao 3b62508610
added link for BLS12-381 bls_verify spec 2018-11-29 06:18:31 -08:00
Danny Ryan 698283ee86
Merge pull request #188 from burnburn/notation
Add notation section
2018-11-29 07:29:03 -06:00
Dan Burnett a851e09b9c
add Notation section 2018-11-29 07:44:43 -05:00
terence tsao a891d5d585
Fix on_startup 2018-11-28 18:32:07 -08:00
Hsiao-Wei Wang 7359b36964
Remove tags 2018-11-28 23:07:39 +08:00
Hsiao-Wei Wang 64170f79a3
`ProcessedAttestations` -> `ProcessedAttestation` 2018-11-28 17:39:34 +08:00
Hsiao-Wei Wang 5abdbc600d
Fix `SQRT_E_DROP_TIME` description 2018-11-28 16:37:21 +08:00
Hsiao-Wei Wang fead86e31c
Move vyper contract to `PoW chain registration contract` section 2018-11-28 16:00:53 +08:00
Hsiao-Wei Wang ff92875aa1
fix constants table 2018-11-28 15:46:55 +08:00
Hsiao-Wei Wang 67123a79cb
proofread and add ToC 2018-11-28 15:40:27 +08:00
Danny Ryan 126a7abfa8
Merge branch 'master' into vbuterin-patch-7 2018-11-27 13:51:12 -06:00
Danny Ryan 0de7d3288a
change 'add_validator' to 'add_or_topup_validator' 2018-11-27 12:29:48 -06:00
vbuterin e3eda6ff4e
Put back deletion period check 2018-11-27 13:25:25 -05:00
vbuterin efdafee1ad
Made topping up a withdrawn account impossible 2018-11-27 13:23:26 -05:00
Danny Ryan 8b8253cdb2
fix incorrect types for eth in pow contract 2018-11-27 12:18:32 -06:00
vbuterin 4d3f388d28
Indent fix 2018-11-27 13:08:09 -05:00
vbuterin 9a20ecb9e4
Added handling for withdrawn validators 2018-11-27 12:07:30 -05:00
Hsiao-Wei Wang b1fc396ab4
Refactor `change_validators` 2018-11-28 01:06:09 +08:00
Hsiao-Wei Wang 829e6d9034
Merge branch 'master' into hwwhww/patch-1 2018-11-28 00:29:15 +08:00
Danny Ryan 9f26fbb4e2
Merge pull request #149 from ethereum/vbuterin-patch-1
Replace cycles with epochs
2018-11-27 10:13:04 -06:00
Hsiao-Wei Wang b27203c0ce
PR feedback: use `fork_data` 2018-11-27 23:54:09 +08:00
vbuterin 0d1b63bca3
Added min and max deposit sizes to Vyper contract 2018-11-27 10:07:21 -05:00
Hsiao-Wei Wang 562e60afdc
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 10:00:00 -05:00
Hsiao-Wei Wang c70e555260
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 09:59:36 -05:00
Hsiao-Wei Wang 4dc7a8809c
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 09:59:25 -05:00
Hsiao-Wei Wang eef28364ba
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 09:59:09 -05:00
Danny Ryan cae363f209
add missing quotes for field 2018-11-27 08:21:42 -06:00
vbuterin 1df0f9f1b7
Fixed indent. 2018-11-27 07:25:31 -05:00
Hsiao-Wei Wang 2795af7bae
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 06:36:47 -05:00
Hsiao-Wei Wang 034e2d4546
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 06:36:10 -05:00
Hsiao-Wei Wang 2d766e4aae
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-27 06:35:55 -05:00
vbuterin fc059f2ec1
Moved proposer reshuffling section 2018-11-27 06:30:19 -05:00
ncsolar 472a117162
Update 0_beacon-chain.md
Assumed it should read "A block `B` is justified if there is a descendant of `B`..." ?
2018-11-27 00:12:10 -06:00
Hsiao-Wei Wang 43ef444613
PR feedback: add `ForkData` 2018-11-27 11:52:06 +08:00
vbuterin 4ec40f06f3
Added topups 2018-11-26 19:08:04 -05:00
vbuterin cd9c47af5a
Made pure functions return indices of validators instead of validator objects
Makes the code cleaner this way; returning an object that then gets mutated is confusing.
2018-11-26 18:51:34 -05:00
vbuterin f2af5fd9df
Moved two calculations back to the FFG reward section 2018-11-26 18:44:29 -05:00
vbuterin 3b7164c2d6
Resolved some of @djrtwo's nitpicks 2018-11-26 18:39:35 -05:00
Danny Ryan b8689e1727
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:35:32 -05:00
Danny Ryan 7fcd9930df
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:35:25 -05:00
Danny Ryan e651e99210
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:35:02 -05:00
Danny Ryan 973d0ab591
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:33:31 -05:00
Danny Ryan bcd9eb53fb
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:33:18 -05:00
Danny Ryan fe4496dd74
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:33:06 -05:00
Danny Ryan be56e58c1a
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-26 18:32:53 -05:00
vbuterin 9f1869cad9
Remove todos 2018-11-26 17:14:38 -05:00
vbuterin 170962c80f
Big refactor + simplification 2018-11-26 17:12:39 -05:00
vbuterin 386dab1140
Update 0_beacon-chain.md 2018-11-26 13:40:02 -05:00
Danny Ryan d6d1f88ac1
Merge branch 'master' into vbuterin-patch-7 2018-11-26 10:48:28 -06:00
Hsiao-Wei Wang b66f168468
PR feedback: reduce `on_startup` parameters 2018-11-27 00:21:59 +08:00
Danny Ryan 347e796b39
Merge branch 'master' into vbuterin-patch-1 2018-11-26 10:01:27 -06:00
Hsiao-Wei Wang 4067e0f25a
fix 2018-11-26 21:43:59 +08:00
Hsiao-Wei Wang 7bde8c415a
fix `get_new_validator_set_delta_hash_chain` 2018-11-26 21:27:41 +08:00
Hsiao-Wei Wang defa7da1c6
Refactor and fix on_startup 2018-11-26 21:12:14 +08:00
vbuterin b2d13e3e23
Merge branch 'master' into vbuterin-patch-13 2018-11-26 06:24:11 -05:00
Justin 78a82f6185
Merge pull request #170 from ethereum/djrtwo-patch-2
change SpecialRecord.kind to uint64
2018-11-26 10:47:50 +00:00
Justin 1bf04c8c17
Make status uint64 2018-11-26 10:47:32 +00:00
Justin d6fd0a4dc4
Merge pull request #172 from ethereum/JustinDrake-patch-2
Remove fork_version for DOMAIN_LOGOUT
2018-11-26 10:45:58 +00:00
Hsiao-Wei Wang 6a7b280d49
Update specs/core/0_beacon-chain.md
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2018-11-26 10:45:39 +00:00
Hsiao-Wei Wang b1740ba0c5
Proofread 2018-11-26 17:14:42 +08:00
Hsiao-Wei Wang e5eb3daad1
Merge branch 'master' into vbuterin-patch-1 2018-11-26 16:01:45 +08:00
vbuterin 2902170b26
Reduce width of vyper code 2018-11-25 22:22:15 -05:00
vbuterin 04ac4ea54d
Fixed more nitpicks 2018-11-25 21:15:46 -05:00
vbuterin 2dad2d4c42
V -> v 2018-11-25 21:14:13 -05:00
Justin 13866e3e04
Remove fork_version for DOMAIN_LOGOUT
Also remove `LOGOUT_MESSAGE `
2018-11-25 18:19:22 +00:00
vbuterin e6a15edc8d
Made contract compile in Vyper 2018-11-25 12:08:06 -05:00
Danny Ryan 2a7103d1f6
change SpecialRecord.kind to uint64 2018-11-25 10:41:59 -06:00
Danny Ryan e539de9922
remove fork_version from ProposalSignedData 2018-11-25 10:37:52 -06:00
Danny Ryan ed8dd1eabc
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-25 11:33:17 -05:00
Danny Ryan b6349eefd4
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-25 11:33:07 -05:00
Danny Ryan c0aa43804b
block proposer sig to uint384 2018-11-25 10:12:48 -06:00
Danny Ryan e711076723
Update 0_beacon-chain.md 2018-11-25 10:02:43 -06:00
Danny Ryan 16d05b353a
remove `GENESIS_TIME` from constants
This constant has been superseded by `BeaconState.genesis_time`
2018-11-25 09:54:29 -06:00
Hsiao-Wei Wang 440fb337e7
Merge branch 'master' into vbuterin-patch-6 2018-11-25 22:57:50 +08:00
vbuterin 99d7f5c1b8
Address Justin's #1 2018-11-25 06:33:05 -05:00
vbuterin e8aa93e53e
Addressed Justin's 16, 17, 18 2018-11-25 06:23:34 -05:00
Hsiao-Wei Wang 4310b0c7d0
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-25 06:11:40 -05:00
Justin 50e8e1a918
Update 0_beacon-chain.md 2018-11-24 21:51:09 +00:00
Justin 51f8ea16ae
Merge pull request #164 from ethereum/vbuterin-patch-12
Made candidate PoW receipt roots into a map
2018-11-24 21:42:51 +00:00
Justin 755eadb20a
Fixes to PoW receipt roots 2018-11-24 21:41:53 +00:00
vbuterin 5ba47b476a
Shard uint16 -> uint64 2018-11-24 16:20:20 -05:00
vbuterin 40d289f1a3
Resolved Justin's #13 2018-11-24 16:16:27 -05:00
vbuterin 4be17dea14
Made candidate PoW receipt roots into a map 2018-11-24 16:12:27 -05:00
vbuterin b92889cf83
Add a minimum deposit time equal to the SHARD_PERSISTENT_COMMITTEE_CHANGE_PERIOD 2018-11-24 16:07:25 -05:00
vbuterin 6bdff4e82e
Fix Justin's issues 10 and 12 2018-11-24 16:04:07 -05:00
Danny Ryan d0f43663a3
Update 0_beacon-chain.md 2018-11-24 14:40:48 -06:00
Justin d0f7937089
Remove TODO
See for example https://github.com/ethereum/eth2.0-specs/issues/128
2018-11-24 19:54:05 +00:00
vbuterin fe3a0d6881
Only increment total_deposit_count for 32 ETH deposits from PoW chain 2018-11-24 14:03:22 -05:00
vbuterin 117b7b6953
More reward changes
* Added rewards for proposers
* Added declining rewards for greater inclusion distance
2018-11-24 13:30:18 -05:00
vbuterin 0d26da4a7d
Cleaned up committee balance changes 2018-11-24 12:44:43 -05:00
vbuterin b61f7d57c9
Further incremental steps on balances 2018-11-24 12:34:26 -05:00
Hsiao-Wei Wang 4ba62bb80a
Remove leftover 2018-11-25 00:22:28 +08:00
Hsiao-Wei Wang c8e9ff3d87
`shard_id` -> `shard` patch 2018-11-25 00:20:47 +08:00
Justin a818575ca8
Minor cosmetic fixes 2018-11-24 15:15:19 +00:00
vbuterin 403253c879
Added 2/3/4 cycle finalization options
Suppose B1, B2, B3, B4 are consecutive blocks and we are now processing the end of the cycle containing B4.

* If B4 is justified using source B3, then B3 is finalized.
* If B4 is justified using source B2, and B3 has been justified, then B2 is finalized.
* If B3 is justified using source B1, and B1 has been justified, then B1 is finalized.
2018-11-24 09:41:25 -05:00
Justin 70cef14a08
Merge pull request #156 from ethereum/vbuterin-patch-3
LMD fork choice rule
2018-11-23 20:48:12 +00:00
vbuterin 020ec39260
Clarify variables 2018-11-23 15:25:45 -05:00
vbuterin c098978efb
Fixed domain separation for proposals 2018-11-23 15:14:53 -05:00
vbuterin 5508a0f9c5
get_fork_version -> get_domain 2018-11-23 15:13:21 -05:00
Hsiao-Wei Wang 048090acf6
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2018-11-23 15:10:59 -05:00
vbuterin 545e35e4b1
Clarified "logarithmic" 2018-11-23 15:10:03 -05:00
vbuterin ee40888d2e
Fix to fixes 2018-11-23 15:01:15 -05:00
vbuterin bb6c81beb0
Merge pull request #158 from ethereum/JustinDrake-patch-1
Various fixes regarding PoW receipt roots
2018-11-23 14:58:03 -05:00
vbuterin 6f44db789f
s/=/==/ 2018-11-23 14:57:43 -05:00
Jacek Sieka 70b181fe32
Small fixes
* pick out committee when getting proposer
* avoid unsigned underflow when chain is starting (since we're using
uint)
2018-11-23 12:57:17 -06:00
Hsiao-Wei Wang 252a24cff0
Minor fix: markdown grammar and typing hints 2018-11-24 01:38:57 +08:00
Justin ea31ff3cea
Fix minor bug in `ghost_lmd` 2018-11-23 16:05:30 +00:00
Justin b76eae8a71
Update 0_beacon-chain.md 2018-11-23 15:37:37 +00:00
Justin 361bcd6be4
More polishing to fork choice rule 2018-11-23 15:23:22 +00:00
Justin 92981e9714
Started cleaning up fork choice rule definition 2018-11-23 14:46:25 +00:00
vbuterin f3094e179e
Resolved Justin's questions 2018-11-23 08:54:24 -05:00
Hsiao-Wei Wang 2375e0ce28
Merge branch 'master' into vbuterin-patch-6 2018-11-23 20:37:23 +08:00
Hsiao-Wei Wang e7852de0c2
Merge branch 'master' into vbuterin-patch-1 2018-11-23 20:06:43 +08:00
Hsiao-Wei Wang f513e2022e
Merge pull request #154 from terenc3t/patch-11
Typo in Vyper contract
2018-11-23 19:57:54 +08:00
4000D e2193b1324 fix hyperlink 2018-11-23 13:54:11 +09:00
Justin 50458c1d31
Various fixes regarding PoW receipt roots
Question: What happens if the block proposer at the `POW_RECEIPT_ROOT_VOTING_PERIOD` boundary puts a bad receipt root? Does this give too much power to that block proposer?
2018-11-22 23:09:36 +00:00
Terence Tsao 925ac0ecc0 use convert function in Vyper 2018-11-22 06:32:15 -10:00
vbuterin bc53f0e386
Fork choice rule
Added the LMD GHOST fork choice rule.
2018-11-22 08:24:20 -05:00
terence tsao fec46f9e09
Typo in Vyper contract 2018-11-21 18:37:14 -10:00
vbuterin 745524b762 Added whistleblower reward (#144)
* Added whistleblower reward

* Update 0_beacon-chain.md

* Fixed proposer.deposit += ...
2018-11-21 15:21:07 +09:00
vbuterin b4dfdb5ed4
Partial edits.... 2018-11-20 16:49:43 -05:00
Danny Ryan addd345b36
Merge branch 'master' into vbuterin-patch-1 2018-11-20 17:41:18 +09:00
vbuterin 396d798500 Separated out proposer from attesters (#143)
* Separated out proposer from validators

* Update 0_beacon-chain.md

* Update specs/core/0_beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* Update specs/core/0_beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* get_proposer -> get_beacon_proposer, block -> slot

* Move proposer sig to the end of a block

* Update specs/core/0_beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* sig -> signature

* add type hints for get_beacon_proposer
2018-11-20 16:40:04 +09:00
Hsiao-Wei Wang 00f7554ec4
Remove justified_streak 2018-11-20 11:18:58 +09:00
vbuterin e925fe5705
Forgot to change validators -> state.validators 2018-11-19 20:15:10 -05:00
vbuterin 54217772fe
Added domain separation 2018-11-19 20:13:58 -05:00
vbuterin eb29b28dc5
Update 0_beacon-chain.md 2018-11-19 15:59:15 -05:00
vbuterin 1eaf15cf73
Replace single specials limit with per-type limit 2018-11-19 11:14:18 -05:00
vbuterin 2fead870ad
Replace cycles with epochs
Also adjusted constants to keep interest rates and the quadratic leak period the same.

Also, did some simplifications of the cycle calculation procedure. Make the decision to remove automatic registration of a validator as a proposer when they join, because that can just happen on its own due to the reshuffling procedure.
2018-11-19 11:07:41 -05:00
vbuterin 21d120e771
Remove uint32 use. 2018-11-19 07:00:03 -05:00
Danny Ryan 71451e0a0b
Merge branch 'master' into vbuterin-patch-6 2018-11-19 17:59:45 +09:00
Hsiao-Wei Wang 54eeb49831
crystallized_state -> state 2018-11-19 12:48:12 +09:00
Hsiao-Wei Wang c3e2c2a46d
Clean up leftover of CrystallizedState 2018-11-19 12:17:50 +09:00
Danny Ryan 2a077fbecc
init current_exit_seq in on_startup 2018-11-19 12:16:37 +09:00
Hsiao-Wei Wang d7ead98ea4
Merge branch 'master' into vitalik9 and fix conflicts 2018-11-19 11:23:50 +09:00
Ben Edgington c961b3dca8 Add ToDo for state_root specification (#137) 2018-11-19 11:05:53 +09:00
vbuterin 3bdd56b0f8 Fix bugs in #146 (#147)
* Fix bugs in #146

* Update 0_beacon-chain.md

* cleanup  deposit params
2018-11-19 11:02:26 +09:00
vbuterin d889eec555
Oops, accidental duplication 2018-11-18 07:09:50 -05:00
vbuterin 5dc66c328c
oops 2018-11-18 07:06:46 -05:00
vbuterin ca4b670b11
Merge branch 'master' into vbuterin-patch-1 2018-11-18 07:06:01 -05:00
Danny Ryan 8a2e1d55a5
fix bls12-381 to be in standard notation 2018-11-18 10:34:23 +09:00
vbuterin db9fdb9b72
Switch from alt_bn255 to BLS12-381 2018-11-17 18:20:39 -05:00
vbuterin 10c375244b
Cleaned up LOGOUT 2018-11-17 07:51:25 -05:00
Danny Ryan 06cf704e83
fix typo in slashing special 2018-11-17 13:52:49 +09:00
vbuterin 1664414852
Fixed as per hww's comments 2018-11-16 19:41:09 -05:00
vbuterin eb24f9482d
int128 -> int64 2018-11-16 12:20:59 -05:00
vbuterin 57c2deefbb
Added description of genesis block 2018-11-16 11:41:59 -05:00
vbuterin c9c85e8645
Added max specials count. 2018-11-16 10:48:57 -05:00
vbuterin 65dc333549
Move specials into block processing, and clean up specification
Moves the procedure for handling specials into the per-block processing loop. Cleans up the specification for handling them to be more unambiguous, and changes the formats to be more readable and simpler to implement.
2018-11-16 07:54:03 -05:00
Danny Ryan ac207e4cc8
minor var fix (#136) 2018-11-16 08:23:28 +09:00
Danny Ryan 9825cc98fe
Update 0_beacon-chain.md 2018-11-16 08:16:35 +09:00
Danny Ryan 024852c024
Merge branch 'master' into vbuterin-patch-1 2018-11-16 08:13:33 +09:00
vbuterin 5ed4392b54 Minimal replacement of active/crystallized state with single state (#122)
* Minimal replacement of active/crystallized state with single state

* Update specs/beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* Update specs/beacon-chain.md

Co-Authored-By: vbuterin <v@buterin.com>

* State -> BeaconState

* Update beacon-chain.md

* Update 0_beacon-chain.md
2018-11-15 13:20:25 +00:00
Ben Edgington 86ec833172 Remove MIN_BALANCE definition (#131)
MIN_BALANCE is not used - I'm guessing it was replaced by MIN_ONLINE_DEPOSIT_SIZE.
2018-11-15 12:28:47 +00:00
vbuterin 7d5436166e Add shard blocks, shard data roots and how data is computed into cros… (#123)
* Add shard blocks, shard data roots and how data is computed into crosslinks

Includes:

* Shard block structure
* Shard block header verification rule
* Shard block fork choice rule
* Shard block body verification rule
* Crosslink verification rule

Possible simplification: require `calc_block_maxbytes` to always output an exact power of two; if we desire the average maxbytes to be smooth, we can simply make it a pseudorandom chose between powers. This reduces some of the padding complexity.

* create separate files for phases (#125)

* create separate files for phases

* fix links

* add shard block pre processing conditions

* cleanup

* remove 'essentially'

* Updated handling for beacon chain skipping slots.

* Handle missing slots more

* modify attestation validity rule for crosslink hash
2018-11-14 21:01:57 +00:00