Commit Graph

1425 Commits

Author SHA1 Message Date
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
Hsiao-Wei Wang 47844116ea
Merge pull request #565 from terenc3t/patch-45
get_previous_epoch as a helper
2019-02-04 14:56:15 +08:00
Hsiao-Wei Wang 3aed1cf935
Merge pull request #567 from decanus/patch-17
Defines `get_total_balance` helper function
2019-02-04 14:55:39 +08:00
Danny Ryan 3e2eb1cb36
Merge pull request #562 from ralexstokes/remove-vyper-code
Removes the source of the Vyper contract from the spec.
2019-02-03 15:31:56 -08:00
Alex Stokes 8755dc34d5
Add direct link to validator registration contract 2019-02-03 15:22:03 -08:00
Alex Stokes 8c5868cbe8
Extend `deposit` API with note about bounds on acceptable values 2019-02-03 15:20:49 -08:00
vbuterin 2ac420c5ea
Merge pull request #538 from ethereum/vbuterin-patch-1
SSZ list Merkle hashing change
2019-02-03 14:37:30 -06:00
vbuterin 197fa18893
Zpad is already in #543 2019-02-03 14:26:07 -06:00
vbuterin 9bacf040ce
Merge pull request #543 from ethereum/vbuterin-patch-2
Hash_tree_root -> hash_tree_root_internal
2019-02-03 14:24:18 -06:00
Hsiao-Wei Wang 3a6da9839a
Added a note for underflow. Thanks Hsiao Wei! : )
Co-Authored-By: terenc3t <terence@prysmaticlabs.com>
2019-02-03 14:27:09 +01:00
Dean Eigenmann 5c56751cc9
Update 0_beacon-chain.md 2019-02-03 11:43:33 +01:00
Hsiao-Wei Wang 8e16d122be
Update specs/core/0_beacon-chain.md
Co-Authored-By: decanus <dean@tokenate.io>
2019-02-03 11:42:12 +01:00
Dean Eigenmann 969896b0a8
Update 0_beacon-chain.md 2019-02-03 11:14:02 +01:00
terence tsao e4c4c04e52
Update 0_beacon-chain.md 2019-02-03 10:36:21 +01:00
Danny Ryan 3b9953a992
Merge pull request #537 from ethereum/JustinDrake-patch-1
Use 2*63 for the genesis slot
2019-02-02 17:55:18 -08:00
Danny Ryan f80a345bd1
Merge pull request #552 from ethereum/epoch-in-generate-seed
epoch in `generate_seed`
2019-02-02 17:29:29 -08:00
Danny Ryan 2a32e7f665
convert int_to_bytes to little endian 2019-02-02 16:41:59 -08:00
Danny Ryan 650f4a20df
clarify eth1 that there will be at most 1 2019-02-02 13:16:39 -08:00
Danny Ryan 04b37f266c
Merge pull request #558 from decanus/patch-14
`shard` -> `attestation.data.shard`
2019-02-02 08:49:28 -08:00
Dean Eigenmann f3d47e26fc
`shard` -> `attestation.data.shard` 2019-02-02 13:49:52 +01:00
terence tsao a781eb5a4f
Update 0_beacon-chain.md 2019-02-02 06:09:45 +01:00
Danny Ryan 8d82ee8ce7
do not mix in epoch to seed in get_shuffling. add epoch to generate_seed 2019-02-01 21:02:09 -08:00
Danny Ryan 76744dea13
Merge branch 'dev' into name-changes 2019-02-01 20:48:14 -08:00
Danny Ryan 11ae40fc49
revery bls types to include BLS 2019-02-01 20:42:11 -08:00
Alex Stokes 7e7e5e2795
Removes the source of the Vyper contract from the spec.
This change allows for easier maintenance of the code and the spec by
uncoupling them. Before any edit to either document resulted in having to
synchronize the other. By adding a reference to the canonical repo for the code
we avoid having to maintain a duplicate copy here.
2019-02-01 17:06:04 -08:00
Danny Ryan 6a9c756191
Merge pull request #551 from GregTheGreek/master
fix startup typo
2019-02-01 15:30:22 -08:00
Gregory Markou d53d333733 fix startup typo 2019-02-01 14:04:17 -08:00
Hsiao-Wei Wang 378e1ba9a6
Misc fixes of `get_next_epoch_crosslink_committees` 2019-02-02 02:06:53 +08:00
Hsiao-Wei Wang 0b8ccf1e64 Update 0_beacon-chain.md (#547) 2019-02-01 07:45:09 -08:00
Hsiao-Wei Wang e0867c030f
Fix typo 2019-02-01 22:34:10 +08:00
Hsiao-Wei Wang dd197e46a6
Fix `zpad` 2019-02-01 22:31:00 +08:00
vbuterin 8ffd9adcaf
Hash_tree_root -> hash_tree_root_internal
Clarifies the distinction between "internal" hash roots (may be < 32 bytes for trivial objects) and "external" ones (zpadded to 32).
2019-01-31 18:03:23 -06:00
Hsiao-Wei Wang acb432ef3a
Update specs/simple-serialize.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-31 17:49:51 -06:00
Hsiao-Wei Wang 9271e6e318
Update specs/simple-serialize.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-31 17:47:09 -06:00
Danny Ryan 7ff345404e
simplify bls types 2019-01-31 08:26:46 -08:00
Danny Ryan 6716105f19
ChainStart -> Eth2Genesis 2019-01-31 08:23:41 -08:00
vbuterin 5488e7b6a4
SSZ list Merkle hashing change
The current spec is arguably inconsistent, in that if a set of N values gets chunked into M chunks where M is not an exact power of 2, the chunks between M and next_power_of_2(M) are filled with SSZ_CHUNK_SIZE zero bytes each, but the last chunk is not padded, and could be arbitrarily short (eg. if the values are 4 bytes and there are 257 of them, then that gets serialized into eight chunks chunks where the first four are 64 values each, the fifth is 4 bytes corresponding to the last value, and the last three chunks are SSZ_CHUNK_SIZE zero bytes). This PR fills every chunk up to exactly SSZ_CHUNK_SIZE bytes for consistency.
2019-01-31 10:12:43 -06:00
Danny Ryan 1593b926cc
rename current and previous vars for shuffling to use 'shuffling' 2019-01-31 08:02:54 -08:00
Danny Ryan 9ea095efe9
remove Number from custom types 2019-01-31 07:58:31 -08:00
Danny Ryan e2e2ce0a04
name changes: active_exit_delay, latest_active_index_roots 2019-01-31 07:56:48 -08:00
Justin 7f39f79b2e
Use 2*63 for the genesis slot 2019-01-31 07:55:27 -08:00
vbuterin 190d9d2887
Added closing bracket 2019-01-31 07:44:14 -06:00
Hsiao-Wei Wang 5f29cc91bc
Remove the repeated checks 2019-01-31 19:06:13 +08:00
Alex Stokes 750790c784
Remove the unnecessary double backticks on 'validator' in docstring.
The usual convention is that we mark function parameters in docstrings with
double backticks. There is no (longer a) parameter called 'validator' so we
update the docstring to conform to the convention.
2019-01-30 18:38:12 -08:00
Danny Ryan e1a1f936fe
penalized -> slashed, SEED_LOOKAHEAD -> MIN_SEED_LOOKAHED 2019-01-30 18:22:25 -08:00
Danny Ryan e400c28372
Merge pull request #520 from ethereum/next-epoch-shuffling
helpers and notes for shuffling lookahead
2019-01-30 17:24:45 -08:00
Danny Ryan 8cfe3c3133
typo 2019-01-30 17:24:27 -08:00
Danny Ryan bdff6943bf
Merge pull request #532 from benjaminion/fix-to-verify-aggregation-bitfield
Fix to verify bitfields and aggregate signature.
2019-01-30 15:46:29 -08:00
Alex Stokes 679421e489
Update specs/core/0_beacon-chain.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-30 12:46:03 -08:00
Hsiao-Wei Wang bbc522c2d5
Merge branch 'master' into vitalik93 2019-01-31 03:55:26 +08:00
Danny Ryan face6d325d
Merge branch 'master' into next-epoch-shuffling 2019-01-30 11:06:50 -08:00
Danny Ryan ed80daa489
typo in comment 2019-01-30 11:04:35 -08:00
Danny Ryan ad5583c79f
remove extra line 2019-01-30 11:03:52 -08:00
Danny Ryan de2c51812f
Merge branch 'master' into hwwhww/refactor 2019-01-30 11:03:13 -08:00
Danny Ryan f1c5a214b8
Merge branch 'master' into JustinDrake-patch-1 2019-01-30 10:51:18 -08:00
Danny Ryan 3c4615df01
fix call 2019-01-30 10:43:06 -08:00
Danny Ryan 0e7953fe8a
verify_bitiefld in aggregate signature section 2019-01-30 10:39:08 -08:00
Danny Ryan 820777aab0
Merge pull request #525 from ethereum/JustinDrake-patch-1-1
Remove exit counts
2019-01-30 10:29:39 -08:00
Ben Edgington fb75c6dd55 Fix to verify bitfields and aggregate signature.
In blockprocessing, `crosslink_committee` is not defined. This is a fix.

In Phase 0 this check is redundant since we've already asserted that the
custody bitfield is all zero, but it will matter in later phases.
2019-01-30 16:45:46 +00:00
Danny Ryan 3f836cad5f
add extra note 2019-01-30 08:05:30 -08:00
Danny Ryan 8869dfff36
fix toc in validator g uide 2019-01-30 08:03:58 -08:00
Danny Ryan 8e50297543
add break condition 2019-01-30 08:02:23 -08:00
Danny Ryan f0eeb71945
fix fomratting 2019-01-30 08:00:48 -08:00
Danny Ryan 7365af59a7
remove extra return 2019-01-30 07:59:07 -08:00
Ben Edgington 989aae5dc6 Fix missed updates from slot to epoch (#530) 2019-01-30 15:50:37 +00:00
Hsiao-Wei Wang 5aba345eec
Remove extraneous space 2019-01-30 23:50:17 +08:00
terence tsao cc259f98d9 Update 0_beacon-chain-validator.md (#531) 2019-01-30 15:47:57 +00:00
Justin 3f31285232
Fix typo (#528) 2019-01-30 15:46:27 +00:00
Danny Ryan d47f98a33f
fix missing toc entry 2019-01-30 07:38:24 -08:00
Danny Ryan 75cb8b8cb9
add get_next_epoch_crosslink_committees helper in validator guide 2019-01-30 07:35:56 -08:00
Danny Ryan 022da5006f
Merge branch 'master' into next-epoch-shuffling 2019-01-30 07:09:39 -08:00
Danny Ryan 8ead89c412
Add is_power_of_2 helper 2019-01-30 07:07:41 -08:00
vbuterin 18e430393e
Update specs/core/0_beacon-chain.md
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2019-01-30 15:03:42 +00:00
Hsiao-Wei Wang 0f70b200ca
imperative 2019-01-30 23:01:38 +08:00
Danny Ryan 648fcb16eb
Merge pull request #526 from ethereum/JustinDrake-patch-2
Remove extraneous latest_vdf_outputs
2019-01-30 06:55:42 -08:00
Danny Ryan 8c2ed0b683 validator guide to recent spec changes (#518) 2019-01-30 14:53:25 +00:00
Justin 014016cf3c
Remove extraneous latest_vdf_outputs 2019-01-30 06:50:24 -08:00
Danny Ryan 8040044f69 fix is_surround as per #410 (#523) 2019-01-30 14:46:43 +00:00
Justin 5889e9c6db
Remove exit counts
* Simplify by removing `exit_epoch` in `BeaconState` and `Validator`. (Also less storage for full nodes.)
* Replace with `exit_epoch` when ordering validator with withdrawal. Slight loss of granularity, but that's actually a good thing because it reduces the opportunity for manipulation by proposers.
2019-01-30 06:43:02 -08:00
Justin 8663773fa2
Cleanup attestation inclusion logic
* (Logic change) Introduce invariant that attestations can be included for `EPOCH_LENGTH`.
* Simplify presentation by related checks into a single line.
2019-01-30 06:32:44 -08:00
Justin f4798370aa
Attester slashing fixes
* Fix bug whereby `intersection` (replaced by `slashable_indices `) could be non-empty, but no validator gets penalized because they were all already penalized.
* Rename `SlashableVote` to `SlashableAttestation` (for consistency with `Attestation`, and to avoid having "Vote" be a synonym of "Attestation").
* Rename `slot_included` to `inclusion_slot` for consistency with the `_slot` (and `_epoch`) postfix convention
* Homogenise ordering of fields in `Attestation` and `SlashableAttestation` objects (one has an `aggregation_bitfield` instead of the other's `validator_indices`).
* Homogenise ordering of fields in `Attestation` and `PendingAttestation` objects (one has an `aggregate_signature` instead of the other's `inclusion_slot`).
* Light presentation cleanup
2019-01-30 05:38:45 -08:00
vbuterin 61e0cc8a81
Merge pull request #509 from ethereum/vbuterin-patch-6
Modular squareroot clarification
2019-01-30 07:12:58 -06:00
Hsiao-Wei Wang 5e0691f3df
Refactor and add docstring. 2019-01-30 17:31:41 +08:00
Danny Ryan 75d1247884
delete new proposer function 2019-01-29 17:23:24 -08:00
Danny Ryan f701b959f3
get_crosslink_committees.. has registry change field 2019-01-29 17:21:26 -08:00
vbuterin 260c642e3f
One more new_deposit_root, and chainStarted as public bool 2019-01-29 19:00:39 -06:00
vbuterin 30ca318869
Rewrite to not trigger temporary Vyper issues 2019-01-29 18:58:56 -06:00
Danny Ryan a164ad9504
working through future shuffling notes 2019-01-29 16:29:51 -08:00
Dean Eigenmann 31c5576706
Update 0_beacon-chain.md 2019-01-30 00:35:45 +01:00
Hsiao-Wei Wang 51f8ed8992
Update specs/bls_signature.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-29 15:57:05 -06:00
Danny Ryan 56c6322054
Merge pull request #516 from ethereum/get_ancestor
Fix ToC and #189: `get_ancestor()` can fail to terminate
2019-01-29 07:37:38 -07:00
vbuterin beddfe4295
Merge branch 'master' into patch-5 2019-01-29 08:11:14 -06:00
vbuterin c6ca68db00
Clarify further "choose the greater" mechanism 2019-01-29 07:52:42 -06:00
Hsiao-Wei Wang c87a9bfd2c
Fix ToC and #189 2019-01-29 21:41:54 +08:00
Danny Ryan 7a568310ac
Merge pull request #512 from ethereum/cleanup-state-transition
Cleanup state transition organization and explanation
2019-01-28 21:33:38 -07:00
Danny Ryan 6a3b229cb2
minor formatting issue 2019-01-28 21:32:36 -07:00
Danny Ryan cbb1571a90
remove last ref to casper 2019-01-28 21:25:59 -07:00
Danny Ryan 7da716b0e9
pr feedback 2019-01-28 21:18:22 -07:00
hukkinj1 30ceb8f439 Removed a trailing space (#514) 2019-01-28 22:42:31 +00:00
vbuterin bb0619986c
Change -> update
As per #358
2019-01-28 16:20:04 -06:00
Justin 3068e6483d
Update 0_beacon-chain.md 2019-01-28 21:13:58 +00:00
Justin b2855f9be4
Stricter aggregation_bitfield validation
Make sure that there's at least one vote in attestations (`bls_verify_multiple` can return `True` with zero votes)
2019-01-28 21:13:25 +00:00
Danny Ryan a5ff8ce2fd
Merge branch 'master' into cleanup-state-transition 2019-01-28 13:33:50 -07:00
Danny Ryan d78fb66aac
Merge pull request #488 from ethereum/JustinDrake-patch-1
Reduce and revamp custody placeholder logic
2019-01-28 13:08:58 -07:00
Danny Ryan 4cb0ce94b1
Merge branch 'vbuterin-patch-11' into cleanup-state-transition 2019-01-28 12:21:18 -07:00
Justin f51ce8ff14
Further deemphasize "Casper" 2019-01-28 19:16:11 +00:00
Danny Ryan 053b8ec2a5
cleanup state transition organization and notes 2019-01-28 12:15:43 -07:00
Danny Ryan 9b7d94f07b
Apply suggestions from code review
Co-Authored-By: JustinDrake <drakefjustin@gmail.com>
2019-01-28 18:31:13 +00:00
vbuterin a14600e3a4
Edits
* Removed comment beside `latest_block_roots` "Needed to process attestations, older to newer" because it is no longer accurate
* Clarified per-slot processing
* Casper slashing -> attester slashing
2019-01-28 12:24:09 -06:00
Hsiao-Wei Wang 6bad4ed986
Merge branch 'master' into hwwhww/per_block 2019-01-29 01:49:41 +08:00
vbuterin 90e2a57614
Modular squareroot clarification 2019-01-28 10:28:05 -06:00
Danny Ryan b6fcf3272e
Merge branch 'master' into JustinDrake-patch-1 2019-01-28 09:15:08 -07:00
Danny Ryan a249ab4519
Merge pull request #492 from ethereum/end-of-epoch
epoch trans at end of epoch and fix finality conditions
2019-01-28 08:28:25 -07:00
Hsiao-Wei Wang ce73a8327f
Update specs/core/0_beacon-chain.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-28 08:26:48 -07:00
jannikluhn 4bedb16e21
Merge branch 'master' into ssz-var-length-list 2019-01-28 10:53:04 +01:00
vbuterin ca3d0b8b53
slot -> epoch 2019-01-27 23:36:38 -06:00
vbuterin 656eae6f6a
Minimum slot number, simplify excessive anti-underflow logic
Adds a minimum slot number large enough that integer underflows involving epochs and slots will not happen; simplifies some logic that was more complex to handle them.
2019-01-27 23:12:37 -06:00
Danny Ryan c9a2f9258e
pr feedback 2019-01-27 21:29:47 -07:00
Danny Ryan 7b9c033578
remove extra line 2019-01-27 20:40:30 -07:00
Danny Ryan 1947fc0ff3
pr feedback 2019-01-27 17:25:29 -07:00
Danny Ryan f9b53e8583
pr feedback 2019-01-27 17:20:15 -07:00
Hsiao-Wei Wang 41827d26ec
Add the brief of `per_block` processing, and nudge some wording 2019-01-28 01:49:15 +08:00
Danny Ryan ad46b9cb12
pr feedback 2019-01-27 10:31:01 -07:00
Danny Ryan b0e71f4c80
pr feedback 2019-01-27 10:23:28 -07:00
Danny Ryan e41eeeedb6
make randao_mixes per epoch 2019-01-27 10:22:27 -07:00
Danny Ryan 8fbaa25596
pr feedback 2019-01-27 10:01:04 -07:00
Danny Ryan 12619995bb
pr feedback 2019-01-27 10:00:03 -07:00
Danny Ryan 9d18760521
convert some functions to be per epoch 2019-01-27 09:56:26 -07:00
Danny Ryan e1e1e2359a
pr feedback 2019-01-27 07:54:46 -07:00
Danny Ryan 1b4c4109c3
Merge branch 'end-of-epoch' into prioritize-epochs 2019-01-27 07:34:00 -07:00
Danny Ryan 18273b088d
Merge branch 'master' into end-of-epoch 2019-01-27 07:07:52 -07:00
Justin 82ecc8c868
Update 0_beacon-chain.md 2019-01-27 09:01:11 +00:00
vbuterin fab0feeb29
Vyper contract 2048 -> 512 2019-01-26 16:47:18 -06:00
Danny Ryan 8da467df7c
pr feedback 2019-01-26 15:39:57 -07:00
Danny Ryan b1ea3b2667
address pr feedback 2019-01-26 15:27:50 -07:00
Justin d282a36c63
Update 0_beacon-chain.md 2019-01-26 19:27:22 +00:00
Justin aa909bddf3
Update 0_beacon-chain.md 2019-01-26 19:25:58 +00:00
Justin cfb1cb57b8
Update 0_beacon-chain.md 2019-01-26 19:25:18 +00:00
Danny Ryan 1a41078768 randao reveal is signed epoch number (#498) 2019-01-26 19:13:12 +00:00
Justin a81092627a
Update 0_beacon-chain.md 2019-01-26 19:10:21 +00:00
Justin c3aff31da8
Update 0_beacon-chain.md 2019-01-26 19:06:46 +00:00
Justin 726fa9481c
Merge branch 'master' into JustinDrake-patch-1 2019-01-26 19:03:46 +00:00
Justin 6e16cdc00e
Update 0_beacon-chain.md 2019-01-26 18:59:07 +00:00
Danny Ryan ae5dfab217
convert finality vars to epochs and do some more epohh cleaning 2019-01-26 08:16:32 -07:00
Danny Ryan c9494dbf88
change crosslink.slot to crosslink.epoch 2019-01-26 07:55:32 -07:00
Danny Ryan 0e90dd8ad0
add current_epoch helper 2019-01-26 07:31:09 -07:00
Paul Hauner 0b827a0447
Change `PENALIZED_WITHDRAWAL_TIME` variable
It's not in the "Constants" list and it is assigned to.
2019-01-26 21:38:27 +11:00
Hsiao-Wei Wang 8c91be9e74
Add custom type hinting for `get_active_index_root` 2019-01-26 16:07:15 +08:00
Hsiao-Wei Wang 78a4b82345
Merge branch 'master' into type_hinting 2019-01-26 16:04:23 +08:00
Danny Ryan feaf689c94
Apply suggestions from code review
Co-Authored-By: hwwhww <hwwang156@gmail.com>
2019-01-26 16:02:49 +08:00
Paul Hauner 235425aaf0
Fix field name error on eth1_data
`eth1_data_vote.data` > `eth1_data_vote.eth1_data`
2019-01-26 14:58:48 +11:00
Danny Ryan f943361a23
convert voting period to epochs 2019-01-25 17:40:44 -07:00
Danny Ryan a212038cd3
begin translation to epochs 2019-01-25 17:33:15 -07:00
Danny Ryan e34cfc8de8
fix preivous_epoch_start_slot to be based upon GENESIS_SLOT 2019-01-25 17:26:27 -07:00
Danny Ryan 6f830179c6
remove extra blank line 2019-01-25 16:50:15 -07:00
Danny Ryan ddf420ba39
work through issues with epochs, seeds, etc) 2019-01-25 16:07:54 -07:00
Danny Ryan cca2bf1fa6
Merge branch 'master' into end-of-epoch 2019-01-25 15:35:20 -07:00
Danny Ryan 8a58508057
Merge pull request #476 from ethereum/vbuterin-patch-2
Implement #459 (light client friendliness)
2019-01-25 15:30:27 -07:00
Danny Ryan 85d39af1ca
add missing period 2019-01-25 15:28:49 -07:00
Danny Ryan 5603772621
add missing period 2019-01-25 15:28:08 -07:00
Danny Ryan 86faacdcd2
clarify assignments in val reg not change 2019-01-25 15:27:27 -07:00
Danny Ryan f96cd871b1
update ordering of assignments 2019-01-25 15:25:19 -07:00
Danny Ryan f61d364352
clean up top language in validator registry section 2019-01-25 14:56:10 -07:00
Hsiao-Wei Wang 21cecba6bb
Update `get_children` def 2019-01-25 16:06:05 +08:00
Hsiao-Wei Wang f27905583f
PR feedback 2019-01-25 16:03:30 +08:00
Hsiao-Wei Wang 27eb0eb212
Merge branch 'master' into type_hinting 2019-01-25 15:15:08 +08:00
Hsiao-Wei Wang 22d4a21fb2
Merge pull request #482 from ethereum/get_shuffing-invariant
clarify get_shuffling invariant
2019-01-25 15:11:04 +08:00
Danny Ryan 0254bc8d17
pr feedback 2019-01-24 23:17:56 -07:00
Danny Ryan 8fa1fd774f
Merge pull request #444 from ethereum/honest-validator
phase 0 validator doc
2019-01-24 23:16:22 -07:00
Danny Ryan 1614f2a9d7
simplify slashing instructions in vlaidator guide 2019-01-24 23:11:40 -07:00
Danny Ryan a182fdaa6f
pr feedback 2019-01-24 22:07:41 -07:00
Hsiao-Wei Wang 25ee768b42
Merge pull request #481 from ChihChengLiang/fix-container-ssz
Fix #479, make `item_index == new_index` a check to perform
2019-01-24 18:46:12 +08:00
vbuterin 1b06e771d8
previous_deposit_root -> deposit_root 2019-01-24 03:25:13 -06:00
Chih Cheng Liang 45c064a2d6
remove all unnecessary newline 2019-01-24 16:24:05 +08:00
Chih Cheng Liang 5dfa4e005b
rename byte_order to byteorder 2019-01-24 16:12:43 +08:00
Chih Cheng Liang d41215aeec
rename Terminology to Variables and Functions 2019-01-24 16:11:45 +08:00
Chih Cheng Liang 14432e91a3
add code block to variable in the table 2019-01-24 16:11:04 +08:00
Chih Cheng Liang 88ffae6335
define deserialized_object and new_index 2019-01-24 16:08:56 +08:00
Chih Cheng Liang c2112f0bfc
PR feedback: remove unnecessary newline 2019-01-24 15:58:34 +08:00
Hsiao-Wei Wang 5bb02a9d09
Update specs/simple-serialize.md
Co-Authored-By: ChihChengLiang <chihchengliang@gmail.com>
2019-01-24 15:53:52 +08:00
vbuterin ac47c21918
Merge branch 'master' into vbuterin-patch-2 2019-01-23 22:33:59 -06:00
vbuterin df85857c2e
A few more state.slot -> current/previous/next epoch start slot changes 2019-01-23 20:35:26 -06:00
Hsiao-Wei Wang 59b301f7af
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-23 17:31:27 -06:00
Hsiao-Wei Wang b7c2f33dcb
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-23 17:26:11 -06:00
Hsiao-Wei Wang 4a566469a5
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-23 17:16:04 -06:00
Hsiao-Wei Wang 028eba903e
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-23 17:15:53 -06:00
Danny Ryan 1aceaeb793
reverse ordering of finality conditions 2019-01-23 17:14:38 -06:00
Danny Ryan b18de2c86c
clena up get_crosslink_committees_at_slots 2019-01-23 15:41:25 -06:00
Danny Ryan dd075edd06
epoch trans at end of epoch and fix finality conditions 2019-01-23 15:30:05 -06:00
Danny Ryan 847746286b
Merge pull request #486 from terenc3t/patch-37
Update previous_epoch_randao_mix at the beginning
2019-01-23 13:15:59 -06:00
Justin dfaf24c75e
Update 0_beacon-chain.md 2019-01-23 13:52:52 +00:00
Justin 6f3cb7e7e5
Update 0_beacon-chain.md 2019-01-23 13:28:43 +00:00
Justin 022dd0cc3d
Update 0_beacon-chain.md 2019-01-23 13:26:23 +00:00
Justin d1efd65d8a
Update 0_beacon-chain.md 2019-01-23 13:24:35 +00:00
Justin e3a5720c1b
Update 0_beacon-chain.md 2019-01-23 13:03:33 +00:00
Justin 1e48535edd
Update 0_beacon-chain.md 2019-01-23 12:57:06 +00:00
Justin ac85e06e81
Update 0_beacon-chain.md 2019-01-23 12:48:54 +00:00
Justin ee081e160c
Update 0_beacon-chain.md 2019-01-23 12:47:11 +00:00
Justin 696a6c140a
Update 0_beacon-chain.md 2019-01-23 12:40:59 +00:00
Chih Cheng Liang 6ac5608d0b
Explicit check bytes end 2019-01-23 20:14:25 +08:00
vbuterin c8b2755177
Added efficiency improvement (two fewer expected SSTOREs per deposit) 2019-01-23 06:11:55 -06:00
Justin 109ac89697
Update 0_beacon-chain.md 2019-01-23 09:57:48 +00:00
Danny Ryan f9097bfe8b
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-23 00:22:47 -06:00
Vitalik Buterin 722e201109 Updated deposit contract for gas efficiency 2019-01-23 00:05:50 -06:00
vbuterin 697545a9e0
Added entry_exit_effect_slot helper and moved index roots update 2019-01-22 22:47:07 -06:00
Dean Eigenmann 34a4396fa7
Update 0_beacon-chain.md 2019-01-22 23:10:12 +01:00
Dean Eigenmann 071537469e
Update 0_beacon-chain.md 2019-01-22 23:09:28 +01:00
Justin 6c824ffee4
Remove placeholders
Remove all custody and VDF placeholders (56 lines less!). A few notes on the placeholder fields and logic:

* All placeholder fields were dummy fields that can easily be restored in the phase 1 hard fork.
* One special case to the above is `custody_bit_0_validator_indices` in `SlashableVoteData` which was renamed to `validator_indices`. Renaming it back is *not* a spec change because SSZ field names are [no longer part of the spec](a9328157a8 (diff-8d8fe480a35579c7be2f976d9b321216)).
* The placeholder logic was written using generalised functions (e.g. `bls_verify_multiple` vs `bls_verify`, and `indices(slashable_vote_data)` vs `slashable_vote_data.validator_indices`). This generality was unnecessary because it was not triggered when all custody bits were 0. This means we can simplify the logic without being inconsistent with phase 1.

Rationale:

* Keep phase 0 (likely far harder to deliver than phase 1) as clean as possible
* Focus on upgrade paths and incremental releases
* Custody is still under research—keep the design space open
2019-01-22 20:45:30 +00:00
terence tsao 947e1b9520
Update 0_beacon-chain.md 2019-01-22 11:31:13 -08:00
terence tsao 1bc6c19dca
Update 0_beacon-chain.md 2019-01-22 10:56:01 -08:00
Jannik Luhn f8670e8069 SSZ: Remove note on efficiency 2019-01-22 17:18:21 +01:00
Jannik Luhn a5519a7d3b SSZ: List serialization with variable element size
Fix #232
2019-01-22 17:14:25 +01:00
Hsiao-Wei Wang c32a79f940
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 08:03:00 -06:00
Hsiao-Wei Wang 05e8d25a80
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:58:55 -06:00
Hsiao-Wei Wang daa1b6ebf1
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:58:29 -06:00
Hsiao-Wei Wang a934138d8b
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:58:10 -06:00
Hsiao-Wei Wang b7de018f4d
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:57:51 -06:00
Hsiao-Wei Wang 634740a2f2
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:56:44 -06:00