Commit Graph

2049 Commits

Author SHA1 Message Date
Danny Ryan dfdf3ab5cf
initial removal and cleanup of shard/crosslink from phase 0 2019-10-12 11:48:34 +09:00
Danny Ryan 3c3ae9ac02
enforce beacon state at epoch boundary slot 2019-10-05 07:22:20 +09:00
Danny Ryan dc4869349c
remove explicitly handling empty attestation 2019-10-05 06:56:54 +09:00
Danny Ryan a5fb9408ae
make beacon state for shard sate transition from current shard epoch 2019-09-30 13:15:03 +09:00
Danny Ryan 75fd6191ca
Merge branch 'JustinDrake-patch-23' into shard-chain-test 2019-09-30 11:44:13 +09:00
Danny Ryan b259d3518b
move assert to get_beacon_proposer_index 2019-09-30 11:34:28 +09:00
Danny Ryan b892d46f26
working through shard chain tests 2019-09-27 13:02:16 +09:00
Danny Ryan 86ed3937dc
fix a couple of minor shard chain bugs 2019-09-27 10:34:19 +09:00
Danny Ryan 131bf282be
Merge branch 'JustinDrake-patch-23' into shard-chain-test 2019-09-27 09:43:30 +09:00
Danny Ryan 9ce7a8e591
working through lint and format on shard chains 2019-09-27 09:41:12 +09:00
Justin Drake d4f48117d3 Rename ShardCheckpoint, double header size, verify proposer not slashed 2019-09-26 19:32:50 +01:00
Justin Drake fd759a2cca Remove flat containers and revert back to uint64 2019-09-25 21:51:35 +01:00
Danny Ryan 44bdf01948
Merge branch 'dev' into JustinDrake-patch-23 2019-09-25 14:17:26 -06:00
Justin 25efbe7458
Rename seed to epoch_seed as per Danny 2019-09-23 20:58:29 +01:00
Justin Drake e7db58cb7e
Rename ACTIVATION_EXIT_DELAY to MAX_SEED_LOOKAHEAD for phase 1 2019-09-23 12:48:41 -06:00
Justin a183125595
cleanups to get_seed
1) Put `domain_type` and `epoch` upfront. This pattern can be reused for signature domains.
2) Change `int_to_bytes(epoch, length=32)` to `int_to_bytes(epoch, length=8)` to match `uint64` length.
2019-09-23 12:48:41 -06:00
Justin Drake 47a818c705
Add domain_type to get_seed 2019-09-23 12:48:36 -06:00
Danny Ryan 114ffe3d6d
Merge pull request #1413 from ethereum/proposer-fix
Improve beacon proposer selection logic
2019-09-23 13:45:43 -05:00
Danny Ryan 834b811222
fix custody_subchunkify return type 2019-09-16 13:26:27 -06:00
Gregory Markou 794a2407a1
Update specs/core/1_custody-game.md
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2019-09-16 11:19:51 -04:00
Danny Ryan 9582814c62
clarify endianness 2019-09-16 09:58:09 -05:00
Gregory Markou 6d9dd04b50
Update 1_custody-game.md 2019-09-15 21:03:50 -04:00
Gregory Markou d66e6ca0b8
Update 1_custody-game.md
Fix table
2019-09-15 17:12:36 -04:00
Danny Ryan ea6a3b293c
add explicit comments for int_to_bytes and bytes_to_int 2019-09-07 14:03:32 -04:00
Justin 2a4957c6cc
Update 1_shard-data-chains.md 2019-09-05 20:07:25 +01:00
Justin c01d036ed1
Update 1_shard-data-chains.md 2019-09-03 22:49:33 +01:00
Justin 2b60c9cf90
Update 1_shard-data-chains.md 2019-09-03 22:45:13 +01:00
Justin 91e73c1f57
Deduplicate indices 2019-09-03 22:15:52 +01:00
Justin 2eda4c5dbc
Update 1_shard-data-chains.md 2019-09-03 22:09:47 +01:00
Justin 40dc062279
Update 1_shard-data-chains.md 2019-09-03 22:04:59 +01:00
Justin 225c740107
Apply suggestions from code review
Co-Authored-By: terence tsao <terence@prysmaticlabs.com>
2019-09-03 21:56:12 +01:00
Justin a0bbc940ce
Update 1_shard-data-chains.md 2019-09-03 19:27:30 +01:00
Justin c4297ae330
Update 1_shard-data-chains.md 2019-09-03 19:17:19 +01:00
Justin d1fe8f16fd
Deposit contract fixes (#1362) 2019-09-03 18:59:18 +01:00
Justin 3ef24870d6
Changes as per today's discussion
1) Make `ShardBlock` and `ShardState` flat containers (as opposed to plain containers)
2) Make Gwei deltas `int64` (as opposed `uint64`)
3) Make `older_committee_deltas` a `Vector` (as opposed to `List`)
4) Apply size fee on block body only (as opposed to block header and body)
5) Enshrine minimum "extra" block body fee for proposers (reusing `PROPOSER_REWARD_QUOTIENT`)
6) Fix bugs reported by @terencechain and @hwwhww 👍
2019-09-03 18:55:46 +01:00
vbuterin 834edc2dbc
Removed shard from genesis shard block 2019-09-03 13:44:50 +01:00
Danny Ryan 14496978f1
Merge pull request #1323 from ethereum/vbuterin-patch-13
Starting on phase 1 misc beacon changes
2019-09-02 10:02:51 -06:00
Justin 66c3c391d4
Update 1_shard-data-chains.md 2019-08-29 16:36:13 +01:00
Justin d7e628e08f
WIP! 2019-08-28 22:57:24 +01:00
Justin Drake c8c47e3986 Abstract away compute_proposer_index for phase 1 2019-08-28 10:22:34 +01:00
Danny Ryan d0b4dc2b01
remove bad length checks from process attestation; ensure committee count and committee size not equal 2019-08-27 09:16:02 -06:00
Justin 334d6c6bc7
Revamp 1_shard-data-chains.md
WIP!

* Significant simplifications
* A few bug fixes
* Lots of cleanups and reorganising (making it consistent with `0_beacon-chain.md`)
* Likely a few bugs introduced
2019-08-27 14:58:28 +01:00
Hsiao-Wei Wang 979fa38ae8
fix linter error 2019-08-27 20:10:55 +08:00
Hsiao-Wei Wang 17702e6d88
Shard slot -> slot for PHASE_1_FORK_SLOT part2 2019-08-27 20:10:39 +08:00
vbuterin 0f2e814c63
Shard slot -> slot for PHASE_1_FORK_SLOT 2019-08-27 13:19:04 +02:00
vbuterin 0b38ff0fe2
Update specs/core/1_beacon-chain-misc.md
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2019-08-27 13:17:38 +02:00
vbuterin ab4820ced6
Update specs/core/1_beacon-chain-misc.md
Co-Authored-By: John Adler <adlerjohn@users.noreply.github.com>
2019-08-27 13:13:47 +02:00
Danny Ryan ffdc36920e
lint 2019-08-26 08:55:50 -06:00
vbuterin f1caa85aaf
Update specs/core/1_beacon-chain-misc.md
Co-Authored-By: John Adler <adlerjohn@users.noreply.github.com>
2019-08-26 10:09:43 +02:00
vbuterin 9b3cb306e3
Update specs/core/1_beacon-chain-misc.md
Co-Authored-By: John Adler <adlerjohn@users.noreply.github.com>
2019-08-26 10:09:13 +02:00
Hsiao-Wei Wang 01af8e6297
Use `get_previous_power_of_two` from merkle proofs spec 2019-08-25 17:19:19 +08:00
Hsiao-Wei Wang 178dd23314
`MINOR_REWARD_QUOTIENT` for rewarding the proposer for including shard receipt proof
Co-Authored-By: vbuterin <v@buterin.com>
2019-08-24 20:26:35 +08:00
vbuterin a509c68c30
Update specs/core/0_beacon-chain.md 2019-08-24 13:55:35 +02:00
vbuterin 7175ac5593
Update specs/core/0_beacon-chain.md 2019-08-24 13:55:18 +02:00
vbuterin fb59160e6a
Persistent -> period, process_shard_receipt: add _proofs 2019-08-24 13:54:48 +02:00
vbuterin b6d854de09
Fix ToC 2019-08-24 13:50:57 +02:00
Danny Ryan 6923bdc46a
remove Optional None from get_generalized_index. instead throw 2019-08-23 14:49:19 -06:00
Danny Ryan a4f86a8b24
Merge branch 'dev' into vbuterin-patch-13 2019-08-23 14:18:00 -06:00
Hsiao-Wei Wang f8d9b0d283
Merge branch 'dev' into roots-removal 2019-08-24 03:10:02 +08:00
Hsiao-Wei Wang 17043891ff
Fix some mypy errors 2019-08-24 03:03:00 +08:00
Hsiao-Wei Wang bcdbf7dfc7
Fix some flake8 errors 2019-08-24 02:44:22 +08:00
Hsiao-Wei Wang 72b9781051
Merge branch 'dev' into vbuterin-patch-13 2019-08-24 02:37:19 +08:00
Danny Ryan 56954ec508
fix adding fields to phase 1 ssz objects 2019-08-23 12:16:57 -06:00
Danny Ryan 1392c931d0
add GeneralizedIndex to custom types 2019-08-23 12:00:01 -06:00
vbuterin c1f2e92ad1
Update specs/core/1_beacon-chain-misc.md
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2019-08-23 12:33:25 +02:00
Justin Drake df6e531d74 Improve beacon proposer selection logic 2019-08-20 11:37:27 +02:00
Martin Lundfall a843e9aeeb specs/ fix links 2019-08-19 13:47:09 +02:00
vbuterin e4a18f6fa4
Made persistent committee roots a vector 2019-08-15 12:51:11 +02:00
vbuterin 8255091e40
ShardReceipt -> ShardReceiptProof 2019-08-14 23:35:26 +02:00
vbuterin fd24308d19
Update specs/core/1_beacon-chain-misc.md 2019-08-14 23:32:10 +02:00
vbuterin d424863fc0
Update specs/core/1_beacon-chain-misc.md 2019-08-14 23:32:01 +02:00
vbuterin 49a008df60
Update specs/core/1_beacon-chain-misc.md 2019-08-14 23:31:55 +02:00
vbuterin 4f92e7fe30
Update specs/core/1_beacon-chain-misc.md 2019-08-14 23:31:48 +02:00
vbuterin 0cf454547b
Update specs/core/1_beacon-chain-misc.md 2019-08-14 23:27:25 +02:00
vbuterin f9849ca562
Update specs/core/1_beacon-chain-misc.md
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2019-08-13 06:14:51 -04:00
vbuterin cb3e0f2146
Update specs/core/1_beacon-chain-misc.md
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2019-08-13 06:12:51 -04:00
Danny Ryan c224af999e
MAX_PERSISTENT_COMMITTEE_SIZE -> TARGET_PERSISTENT_COMMITTEE_SIZE 2019-08-12 19:05:16 -06:00
Hsiao-Wei Wang d84c902bb1
Merge branch 'dev' into v082_backport 2019-08-12 01:47:24 +08:00
Hsiao-Wei Wang 8ac5ea20be
Merge pull request #1353 from mcdee/dev
Add link from DepositData reference to definition
2019-08-12 01:08:04 +08:00
dankrad b345dc0f5f Legendre custody construction (#1305)
* Stab at Legendre custody construction + some tests

* Fix some problems and fix function puller to remove phase0 only lines in phase1

* Pass the linter

* Add headings

* Fix domain for BLS stub

* Change Jacobi to Legendre

* n -> q to clarify notation

* Headings

* Another missing heading

* Custody subchunks via padding

* Fix max_reveal_lateness stuff

* Better names for reveal period functions

* Better parametrization of max_reveal_lateness computation and tests for custody reveal processing

* Fix linter

* Allow challenging for one period after the custody reveal, shorter periods for minimal tests

* Fix lint

* Fix linter error
2019-08-11 13:05:17 -04:00
Hsiao-Wei Wang 40fbcd3d59
Merge branch 'dev' into v082_backport 2019-08-12 00:58:20 +08:00
Hsiao-Wei Wang a0b8e9bbc7
Merge branch 'dev' into vbuterin-patch-13 2019-08-12 00:40:16 +08:00
Hsiao-Wei Wang 01d58eb1c6
Merge branch 'dev' into v082_backport 2019-08-12 00:18:25 +08:00
vbuterin 36a2283052
Shard receipts cannot penalize withdrawn validators 2019-08-11 23:18:48 +08:00
vbuterin 7132778a69
Added compact committee class 2019-08-11 23:18:48 +08:00
Danny Ryan 0fa4491c41
lint 2019-08-11 23:18:48 +08:00
Danny Ryan 6560bc42d2
Apply suggestions from code review
Co-Authored-By: Carl Beekhuizen <carl@ethereum.org>
2019-08-11 23:18:48 +08:00
Danny Ryan 2ae7323183
use codeblock syntax for misc beacon updates 2019-08-11 23:18:48 +08:00
Danny Ryan a273d9e09d
minor rename of beacon chain misc to conform to other files 2019-08-11 23:18:48 +08:00
vbuterin b9fddfe310
Made code work with #1186 2019-08-11 23:18:48 +08:00
vbuterin fab37e747a
Fixed position of Classes 2019-08-11 23:18:47 +08:00
vbuterin 5dad213457
Fixed up ToC 2019-08-11 23:18:47 +08:00
vbuterin 3f20aca65e
Added comments and ToC 2019-08-11 23:18:47 +08:00
vbuterin caadc0d234
Update 1_beacon_chain_misc.md 2019-08-11 23:18:47 +08:00
vbuterin fe9fe8a151
[WIP] add receipt processing to phase 1 beacon chain 2019-08-11 23:18:47 +08:00
vbuterin 3dc7430ae9
Starting on phase 1 misc beacon changes 2019-08-11 23:18:47 +08:00
Hsiao-Wei Wang 5290b62465
Fix + refactor `is_valid_beacon_attestation` and add basic test 2019-08-11 22:24:21 +08:00
Jim McDonald 0e7287eda5 Add link from DepositData reference to definition 2019-08-09 19:09:04 +01:00
Hsiao-Wei Wang 095cfe6633
Fix build_spec and typo 2019-08-07 19:29:24 +08:00
vbuterin cb92aa91dd
Include state root blocks in crosslink data in non-block slots
Also adds `total_bytes` to state. The goal is to facilitate easier fraud proofs, so that one needs to simply check two adjacent headers in a crosslink and their respective bodies to verify a fraud proof.
2019-08-05 14:37:38 -04:00
vbuterin ddd43ad99d
<= becomes < 2019-08-02 09:40:49 -04:00
vbuterin c29d85aafb
Update specs/core/1_shard-data-chains.md
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2019-08-02 09:40:26 -04:00
Justin Drake 26641aa699 Remove light client infrastructure (better stuff to be added in phase 1) 2019-08-01 17:03:23 +01:00
Hsiao-Wei Wang 4163053cca
Clean up type hintings, especially `reward` is denominated in uint, and `fee` is in `Gwei` 2019-08-01 16:45:01 +08:00
Hsiao-Wei Wang ce3df38028
Some updates:
1. Clean up configurations
2. Add `HISTORY_ACCUMULATOR_VECTOR`
3. Add `validate_state_root` flag in `shard_state_transition` for testing
4. Rename `history_acc` to `history_accumulator`
2019-08-01 14:17:05 +08:00
Hsiao-Wei Wang 7a4a136d6c
Fix `later_committee` 2019-08-01 13:32:37 +08:00
vbuterin 52705f6fab
Quick fix 2019-07-31 21:28:07 -04:00
vbuterin b57aed2380
A few fixes 2019-07-31 21:26:47 -04:00
vbuterin e08c365e2f
Update specs/core/1_shard-data-chains.md
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2019-07-31 17:25:55 -04:00
Hsiao-Wei Wang 13d6a31c5c
misc fix 2019-08-01 00:27:31 +08:00
Hsiao-Wei Wang fe2adfa0e2
Fix many typos and lint errors 2019-07-31 18:18:07 +08:00
Hsiao-Wei Wang f263b71875
ZERO_HASH -> Hash() 2019-07-31 17:50:55 +08:00
Hsiao-Wei Wang 058e63654d
Fix typo 2019-07-31 17:44:33 +08:00
vbuterin 4b2b5815c9
Add shard state transition function 2019-07-29 16:43:55 -04:00
dankrad ab156f31b1
Merge pull request #1283 from ethereum/n_zero
Clarify the illegal SSZ types
2019-07-29 17:40:38 +01:00
vbuterin de9b4f2d6d
Attestation changes + persistent committee changes (#1294)
* Minimal attestation simplification

* minor fix

* Make the tests pass

* Decrease `PLACEHOLDER`, Use `compute_epoch_of_shard_slot`

* Fix proposer signature name and use get_seed() to calculate current_shuffling_seed

* Fix linter error

* Add the WIP `test_is_valid_shard_block`

* Add `get_shard_block_attester_committee`

* Simplified committee selection

* Added some helpers and simplified

* Update specs/core/1_shard-data-chains.md

* Update 1_shard-data-chains.md

* Simplified switchover epochs, changed block structure, changed crosslink structure

* Update 1_shard-data-chains.md

* Moved balance dependency to proposer selection

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>

* Update specs/core/1_shard-data-chains.md

* Fixed shard header flattening

* Update specs/core/1_shard-data-chains.md

* Minor fixes

* Update specs/core/1_shard-data-chains.md

* Update specs/core/1_shard-data-chains.md

Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>

* cleanup testing and lint

* return none if not active validators in persistent committee

* only allow active validators as shard proposer
2019-07-29 09:47:35 -04:00
Diederik Loerakker d791e9f7e8
Merge pull request #1319 from ethereum/compact_committees-shard
Fix start shard for compact committees root
2019-07-25 21:40:06 +02:00
Diederik Loerakker e20f5eb455
Merge pull request #1317 from ethereum/attestation-bit-lengths
Check attestation bit lengths
2019-07-25 21:17:39 +02:00
Danny Ryan 1ec20f6c1f
do not reset start_shard until after processing compact root 2019-07-25 12:59:38 -06:00
Justin 3f75f1e2c3
Update 0_beacon-chain.md 2019-07-25 19:32:56 +01:00
Danny Ryan bd69dc7e3c
add tests for bit lengths 2019-07-25 12:28:29 -06:00
Hsiao-Wei Wang f336e7ffb3
Rename `is_empty` to `is_zero` 2019-07-25 17:32:27 +08:00
Danny Ryan f9f722c505
Merge pull request #1306 from ethereum/old_latest_message
Found by Cem Özer: Ignore older latest messages in attesting balance
2019-07-24 20:03:23 -06:00
Chih Cheng Liang 9c6ba9cd0f
Fix md table 2019-07-24 13:39:04 +08:00
Danny Ryan 43a0ca4eeb
check bit lengths 2019-07-22 07:13:07 -06:00
protolambda 01af304403
Found by Cem Özer: Ignore older latest messages in attesting balance sum, instead of assertion error 2019-07-20 02:13:52 +02:00
Diederik Loerakker 866d3f30cc
Merge pull request #1299 from ethereum/master
backport v0.8.1 to dev
2019-07-15 19:34:51 +02:00
protolambda ef659144b4
make zero hash representation clear, fixes #1282 2019-07-15 02:05:16 +02:00
Danny Ryan 8970b71ca4
ensure min_seed_lookahead functions properly 2019-07-14 16:05:51 -06:00
Danny Ryan 9401383317
Merge pull request #1275 from ethereum/minor-cosmetics
Minor cosmetic fixes
2019-07-14 15:36:24 -06:00
Danny Ryan 6dc306700b avoid overflow in slashing penalty calculation (#1286)
Change presentation to avoid uint64 overflow in slashing penalty calculation. (Factor out `EFFECTIVE_BALANCE_INCREMENT` from `validator.effective_balance`.)
2019-07-11 09:53:51 +01:00
Alex Stokes 4def681a4e
Remove another unnecessary list materialization 2019-07-10 17:05:49 -07:00
Alex Stokes b80d6e0495
Avoid unnecessary materialization of list
There is a realization of a `list` in the `get_unslashed_attesting_indices` helper that is unnecessary.

The functionality in this PR is the same so this change should only really be cosmetic wrt the spec.
2019-07-10 17:00:11 -07:00
Danny Ryan 57c0eee197
Merge pull request #1285 from decanus/patch-24
Update 0_beacon-chain.md
2019-07-10 12:34:53 -06:00
Dean Eigenmann 0eadf61631
Update 0_beacon-chain.md 2019-07-10 13:11:34 -04:00
Justin Drake 591f9658d3 Copy edit 2019-07-05 15:04:57 +01:00
Justin Drake c8c810c0e1 Minor fixes 2019-07-05 15:03:37 +01:00
Hsiao-Wei Wang 733653f169
Update some missing type hinting of phase 1 2019-07-04 20:52:58 +08:00
Hsiao-Wei Wang bc39f39d5d
Move `SECONDS_PER_SLOT` back to 0_beacon_chain spec so that the "duration" notes make more sense 2019-07-04 20:41:00 +08:00
Hsiao-Wei Wang b3d65368a1
`PERSISTENT_COMMITTEE_PERIOD` has been defined in phase 0 2019-07-04 20:38:18 +08:00
Dean Eigenmann f8fa6f0046
Update 0_beacon-chain.md 2019-07-02 05:43:17 +02:00
Dean Eigenmann ea2f577a8d
Update 0_beacon-chain.md 2019-07-02 05:31:49 +02:00
Danny Ryan 4ea79ee13b
Merge pull request #1257 from ethereum/scale-inclusion-reward
scale inclusion reward properly
2019-06-30 23:08:05 -05:00
Danny Ryan de95f54c4f
Merge pull request #1256 from ethereum/misc_fix
[meta] Fix ToC of SSZ spec and  Use relative inner repo link
2019-06-30 22:49:31 -05:00
Danny Ryan 126591b2f9
scale inclusion reward properly 2019-06-30 22:34:35 -05:00
Danny Ryan 63d4653453
remove unnecessary casting 2019-06-30 22:29:02 -05:00
Hsiao-Wei Wang 93fc81e761
Use relative inner repo link 2019-07-01 11:22:18 +08:00
Danny Ryan 476dbdb153
add time param back tp units 2019-06-30 22:14:53 -05:00
Danny Ryan e1030843d6
Merge branch 'dev' into last-minute-cleanups-2 2019-06-30 22:11:48 -05:00
Danny Ryan 350b9d79ae
Merge pull request #1250 from ethereum/fork_choice_rule_test
Fix `justified_checkpoint` update
2019-06-30 22:03:27 -05:00