vbuterin
eadfa20b99
Bring forward changes to withdrawability from phase 1 ( #615 )
...
* Bring forward changes to withdrawability from phase 1
* The `WITHDRAWABLE` flag is removed; instead, a validator's withdrawability is determined through the `withdrawable_epoch` field (renamed and re-purposed from `withdrawal_epoch` which was not used)
* When a validator passes through the withdrawal queue, the `prepare_validator_for_withdrawal` function does not let them withdraw immediately; instead, they have to wait `MIN_VALIDATOR_WITHDRAWAL_EPOCHS`. This extra minimum delay serves no value in phase 0, but is crucial for phase 1 as the period between a validator passing through the queue and the validator being eligible to withdraw is where proof of custody challenges can come in; adding it in phase 0 is only half a line of code so easier to add it now.
* If a validator is penalized, they are no longer subject to the exit queue; instead, their `withdrawable_epoch` is set `LATEST_PENALIZED_EXIT_LENGTH` into the future and this is used to determine when the validator can withdraw
* Changes the eligibility condition for a transfer to use the `withdrawable_epoch`
2019-02-14 10:20:53 +00:00
Justin
f14af7ae67
Merge branch 'dev' into name-changes
2019-02-13 23:53:38 +00:00
Danny Ryan
83b67b6097
Merge pull request #617 from ethereum/hwwhww/fix_compute_commitment
...
Fix `compute_commitment`
2019-02-13 11:54:03 -07:00
terence tsao
fd5c3ee8b5
Update 0_beacon-chain.md
2019-02-13 08:38:03 -08:00
Hsiao-Wei Wang
f7320ec25b
Fix `compute_commitment`
...
1. Use `+` to concatenate the merkle roots in `hash` function.
2. Fix `pad_to_power_of_2`: padding with `[b'\x00' * SHARD_BLOCK_SIZE]`,
not `[SHARD_BLOCK_SIZE]`.
2019-02-14 00:30:00 +08:00
Danny Ryan
3d5aa352be
Merge pull request #597 from ethereum/reward-clarifications
...
Reward clarifications/fix
2019-02-13 08:21:30 -07:00
terence tsao
a730295982
Update 0_beacon-chain.md ( #614 )
2019-02-13 01:40:24 +00:00
vbuterin
cf371c4973
Add support for transfers between withdrawn accounts ( #601 )
2019-02-12 22:41:38 +00:00
Justin
b6d27edd6e
Update 0_beacon-chain.md
2019-02-12 22:38:29 +00:00
Justin
3459515c2c
Merkleise SSZ container elements ( #595 )
...
Reasons to use `merkle_hash` instead of `hash` for containers:
1) **Smaller witnesses**: `BeaconState` is a somewhat wide container (26 fields as of now, likely 30+ in phase 2). With concatenation and plain concatenation the size of the Merkle witnesses for the top level are ~32 bytes per field element.
2) **Faster incremental hashing**
3) **Consistency**: Consistent with `merkle_hash` for lists/vectors.
2019-02-12 21:57:54 +00:00
Danny Ryan
8213ad64e2
add note about attestations on chain voting for justified
2019-02-12 13:08:17 -08:00
Justin
bd9baeca0c
Update 0_beacon-chain.md
2019-02-12 13:37:30 +00:00
Justin
d4f79c8878
Update 0_beacon-chain.md
2019-02-12 12:28:13 +00:00
Justin
de7263c838
Update 0_beacon-chain.md
2019-02-12 12:24:19 +00:00
Justin
8445d06b8f
Merge branch 'dev' into name-changes
2019-02-12 11:59:05 +00:00
Jacek Sieka
f871b9a0d1
Use little endian bit order ( #575 )
...
Slightly more simple and common to find bit n at position `1 << n`
2019-02-12 11:52:07 +00:00
Justin
9a4f4d5344
Fix SSZ merkleisation bug ( #602 )
2019-02-12 11:12:29 +00:00
Hsiao-Wei Wang
41e95cf9ea
Refactor `get_persistent_committee` ( #604 )
2019-02-12 11:11:45 +00:00
Paul Hauner
de90d4475e
Provide definition for undefined `index` ( #608 )
...
The `index` variable is not defined and, IMO, it's difficult to discern.
2019-02-12 11:09:27 +00:00
Paul Hauner
3ea0c27be0
Minor modification to reduce lines of code ( #607 )
2019-02-12 11:06:26 +00:00
Danny Ryan
98902d12e3
assert/unhandled exception note to state transition ( #606 )
2019-02-11 21:30:36 +00:00
Danny Ryan
c44f6c0dbb
Merge pull request #600 from ethereum/JustinDrake-patch-3
...
Add note on leap seconds
2019-02-11 08:08:50 -07:00
Justin
0069241b9c
Alias `bytes` to `List[bytes1]`
2019-02-11 14:49:11 +00:00
Justin
2275587149
Add note on leap seconds
...
Clarify the local time is Unix time and add note on leap seconds.
2019-02-11 13:29:54 +00:00
Jordan Andrews
afca1e2127
Add C# implementation
2019-02-11 22:01:05 +11:00
Danny Ryan
1d77c57374
clarify active validator meaning for rewards/penalties
2019-02-10 18:43:56 -07:00
Danny Ryan
e8f9dce1d3
simply reward logic for justified slot from previous epoch
2019-02-10 18:38:42 -07:00
vbuterin
db4f99d899
Fixed end of code block
2019-02-10 15:47:26 -06:00
Danny Ryan
ab44cbe380
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-10 15:45:57 -06:00
vbuterin
9bba3362eb
Update specs/core/1_shard-data-chains.md
2019-02-10 15:45:47 -06:00
vbuterin
9e66b069b2
Update specs/core/1_shard-data-chains.md
2019-02-10 15:45:16 -06:00
Danny Ryan
ad3f43a4a6
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-10 15:45:06 -06:00
vbuterin
046119fb2e
Update specs/core/1_shard-data-chains.md
2019-02-10 15:44:58 -06:00
Danny Ryan
181dc183b6
Merge branch 'dev' into vbuterin-patch-6
2019-02-10 13:12:01 -07:00
Dean Eigenmann
2944a7ddfc
Renamed `Helpers` -> `Variables`, seems to make more sense ( #560 )
2019-02-10 16:19:12 +00:00
vbuterin
1f97206dcf
Updated phase 1: commitments ( #579 )
...
See #338 and #529 for discussion.
2019-02-10 16:17:21 +00:00
vbuterin
abed5ffdae
Updated phase 1: fork choice rule ( #586 )
...
Adds the crosslink committee to the fork choice rule. This is useful because it means that even if a proposal committee is byzantine and attempts to prevent a crosslink via a "balance attack" (alternating between chain A and chain B being the canonical chain), the crosslink committee can force the equilibrium to flip to one side or the other.
2019-02-10 16:16:22 +00:00
vbuterin
8097b2373b
Added deduplication
2019-02-10 00:09:34 -06:00
Danny Ryan
a712abfb2a
Merge pull request #589 from Nashatyrev/dev
...
Silently skip deposits with invalid proof in process_deposit
2019-02-09 08:22:38 -07:00
Danny Ryan
7886d96186
change proof_is_valid to exit condition
2019-02-09 07:21:38 -08:00
vbuterin
e48010b77b
Change var name to avoid confusing the reader into thinking the `valid_proof` variable contains a valid proof as opposed to just being a bool.
...
Co-Authored-By: Nashatyrev <Nashatyrev@users.noreply.github.com>
2019-02-09 11:10:54 +03:00
vbuterin
0157aa039c
Change var name to avoid confusing the reader into thinking the `valid_proof` variable contains a valid proof as opposed to just being a bool.
...
Co-Authored-By: Nashatyrev <Nashatyrev@users.noreply.github.com>
2019-02-09 11:10:03 +03:00
vbuterin
65c5a1a1b7
Fixed get_persistent_committee
2019-02-08 22:10:54 -06:00
Danny Ryan
e0d8cf4268
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 22:07:14 -06:00
Danny Ryan
8dd111b7e6
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 22:06:46 -06:00
Danny Ryan
ad0ff80be2
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 22:06:03 -06:00
vbuterin
019fe8953e
Fixed as per @djrtwo's comments
2019-02-08 22:02:55 -06:00
vbuterin
36d5120deb
Initialize deposit index
2019-02-08 19:38:09 -06:00
vbuterin
057364a7d4
Add mandatory deposit index ordering
...
Co-requisite with #589
2019-02-08 19:37:34 -06:00
Danny Ryan
663d38e9c8
simplify get_next_epoch_committee_assignment by adding registry_change arg
2019-02-08 11:54:17 -07:00
Danny Ryan
334d47714d
fix a couple of nitpicks before release
2019-02-08 10:35:57 -07:00
Anton Nashatyrev
f9eaab1d04
Silently skip deposits with invalid proof in process_deposit
2019-02-08 18:04:32 +03:00
vbuterin
e5bd78e5e6
Persistent committee refactors
2019-02-08 04:08:52 -06:00
vbuterin
65ec418213
A few more cleanups
2019-02-08 03:54:02 -06:00
vbuterin
47c396f3f8
Break lets into separate lines
2019-02-08 03:50:00 -06:00
vbuterin
410372ff0e
Proposal committee -> persistent committee
2019-02-08 03:48:58 -06:00
Hsiao-Wei Wang
2cff0e6b7a
Use the new `bytesN` SSZ object
...
`hash32` -> `bytes32`
['uint384'] -> `bytes96`
2019-02-08 16:46:50 +08:00
Danny Ryan
5a1b2c29f2
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:08:30 -06:00
Danny Ryan
5e84d7e3ff
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:08:15 -06:00
Danny Ryan
bdd7dc106a
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:08:01 -06:00
Danny Ryan
a1f542b674
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:07:46 -06:00
Danny Ryan
fb90fd7ac3
Update specs/core/1_shard-data-chains.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-08 01:07:31 -06:00
Danny Ryan
6d9581281d
change latest_crosslink_root to latest_crosslink in validator guide
2019-02-07 21:25:47 -07:00
Danny Ryan
08274fe7bf
Merge branch 'dev' into vbuterin-patch-9
2019-02-07 21:23:46 -07:00
Danny Ryan
f0cbacb828
add missing .
2019-02-07 20:22:28 -08:00
Danny Ryan
0ad2ffab50
Merge branch 'dev' into big-to-little
2019-02-07 21:00:36 -07:00
Danny Ryan
87dc8a6c70
Merge pull request #576 from ethereum/vbuterin-patch-5
...
Introduce swap-or-not shuffle
2019-02-07 20:57:02 -07:00
vbuterin
1c6ccac8fc
SHUFFLE_ROUND_COUNT as global constant
2019-02-07 21:55:33 -06:00
Danny Ryan
f797826ee2
Update specs/core/0_beacon-chain.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-07 21:51:56 -06:00
vbuterin
086df84bdc
Attestation data contains latest crosslink, not just latest crosslink data
...
The reason to do this is that it makes it calculable from inside an attestation how many epochs the attestation spans over, which is needed for proof of custody reasons. It's a relatively small change and so arguably easier to do now than to do as a patch in phase 1.
Note that this changes the meaning of latest_crosslink.epoch, from the epoch when the latest crosslink was included to the epoch that the latest crosslink was for. This affects the line:
* `state.latest_crosslinks[shard].epoch > state.validator_registry_update_epoch` for every shard number `shard` in `[(state.current_epoch_start_shard + i) % SHARD_COUNT for i in range(get_current_epoch_committee_count(state))]` (that is, for every shard in the current committees)
But this may actually make it _more_ correct, as it means that in the case where >512 shards are processed per epoch, and so a committee from the previous epoch could get finalized in the current epoch, that would no longer count toward every shard having received a "new" crosslink.
2019-02-07 19:34:54 -06:00
Hsiao-Wei Wang
1582413151
Merge pull request #583 from mratsim/continue-message_hash-bls-changes
...
Continue message hash changes on non-bls part of the specs
2019-02-08 05:24:52 +08:00
mratsim
ca098f8cfa
Prevent changing another TOC
2019-02-07 22:19:04 +01:00
mratsim
fd3d4a5105
Don't change TOC
2019-02-07 22:15:55 +01:00
Hsiao-Wei Wang
89b9894328
Fix type hinting
2019-02-08 05:15:42 +08:00
Hsiao-Wei Wang
911e4f104b
Add `bytes_to_int`
2019-02-08 05:12:58 +08:00
mratsim
cf7ebe9ad3
`message` to `message_hash` in the rest of the spec (followup https://github.com/ethereum/eth2.0-specs/pull/580 )
2019-02-07 22:09:41 +01:00
Hsiao-Wei Wang
859bf62484
Revert and refactor
2019-02-08 05:08:25 +08:00
Danny Ryan
e8ec977168
Merge pull request #548 from ethereum/hwwhww/typo_hash_tree_root
...
Fix typo `tree_hash_root` -> `hash_tree_root`
2019-02-07 13:51:18 -07:00
Danny Ryan
cc2df634cd
Merge pull request #549 from ethereum/registry_change
...
Misc fixes of `get_next_epoch_crosslink_committees`
2019-02-07 13:31:57 -07:00
Hsiao-Wei Wang
e4f5efadb7
Fix `first_committee_at_slot`
2019-02-08 04:03:13 +08:00
Danny Ryan
d4901be198
get_next_epoch_committee_assignments returns slot and is_proposer
2019-02-07 11:48:36 -07:00
Danny Ryan
3f3472087a
change message to message_hash in bls spec
...
addresses #572
2019-02-07 10:37:01 -08:00
Hsiao-Wei Wang
aa9f9fc9be
amend
2019-02-07 19:18:39 +08:00
Hsiao-Wei Wang
70e482be28
Add vbuterin's optimization and some formatting
2019-02-07 19:14:58 +08:00
vbuterin
92514716fb
Update 0_beacon-chain.md
2019-02-06 23:32:20 -06:00
vbuterin
65255e53c4
shuffle -> get_permuted_index
2019-02-06 23:29:24 -06:00
Danny Ryan
b3db7b0394
big to little in shuffle
2019-02-06 20:32:05 -08:00
vbuterin
8597cbef1f
Updated phase 1: shard block structure
2019-02-06 20:32:56 -06:00
vbuterin
47b00f38dd
n -> len(values)
2019-02-06 18:34:05 -06:00
Hsiao-Wei Wang
6a5b7540da
Update specs/core/0_beacon-chain.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-06 18:33:29 -06:00
Danny Ryan
4ec721f3b7
Update specs/core/0_beacon-chain.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-06 18:33:22 -06:00
Hsiao-Wei Wang
37b41a2ce6
Update specs/core/0_beacon-chain.md
...
Co-Authored-By: vbuterin <v@buterin.com>
2019-02-06 18:33:11 -06:00
vbuterin
8f37c5c0f8
Update fork choice rule ( #571 )
2019-02-06 08:34:19 -08:00
vbuterin
c58410e6ce
Introduce swap-or-not shuffle
...
See #563 for discussion.
2019-02-06 06:48:46 -06:00
Danny Ryan
ec1a08278b
Merge pull request #573 from ethereum/hwwhww/verify_bitfield
...
Fix `verify_bitfield`
2019-02-05 18:57:40 -08:00
Justin
180c8a0e72
Update 0_beacon-chain.md
2019-02-05 11:51:06 -08:00
Justin
1d76ad65ec
Update 0_beacon-chain.md
2019-02-05 11:49:52 -08:00
Hsiao-Wei Wang
e5788f5751
Fix typo: it's `bls_verify_multiple` in `verify_slashable_attestation` ( #574 )
2019-02-05 09:11:00 -08:00
Hsiao-Wei Wang
867dea3473
Fix `verify_bitfield`
2019-02-05 19:16:10 +08:00
Taras Bobrovytsky
147ee2f991
Fix get_total_balance()
2019-02-04 01:49:16 -06:00