Commit Graph

1206 Commits

Author SHA1 Message Date
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