Commit Graph

467 Commits

Author SHA1 Message Date
protolambda e9d887be4d
Enable BLS in finality tests, use Milagro 2020-07-24 01:19:14 +02:00
Hsiao-Wei Wang b4c91efdbc
Add __init__.py 2020-07-24 04:25:53 +08:00
Hsiao-Wei Wang de15960185
Add finality tests to test vectors 2020-07-24 04:23:26 +08:00
Hsiao-Wei Wang bdde2e5889
Reorg test dir 2020-07-24 03:54:45 +08:00
Hsiao-Wei Wang e7f070d525
Use `hash_tree_root` to generate `ShardBlockHeader.body_root`
Include the mix-in length to the proof.
2020-07-24 02:09:25 +08:00
Danny Ryan 0692ac0172
bump VERSION.txt to 0.12.2 2020-07-23 10:28:02 -06:00
Hsiao-Wei Wang 33e56b5742
Apply Terence's suggestion: refactor on_shard_block interface 2020-07-22 22:48:52 +08:00
Hsiao-Wei Wang 4dcf5e2498
Add test case of different shards 2020-07-17 14:24:11 +08:00
Hsiao-Wei Wang 0b81c967fa
Add notes 2020-07-17 00:46:25 +08:00
Hsiao-Wei Wang 8fb96f1860
Enable more phase 0 tests to be compatible with phase 1 2020-07-17 00:10:04 +08:00
Hsiao-Wei Wang cf42fd4828
Rename `PHASE_1_GENESIS_SLOT` to `PHASE_1_FORK_SLOT` and set it to `Slot(0)` for testing. 2020-07-16 23:58:47 +08:00
Hsiao-Wei Wang 8e82ca5d1a
Merge branch 'dev' into hwwhww/new_int_to_bytes_dev 2020-07-16 01:36:19 +08:00
Hsiao-Wei Wang 6e3a7ad8f2
Merge branch 'dev' into hwwhww/strict-uint64-2 2020-07-15 23:02:51 +08:00
Hsiao-Wei Wang f6b1fe6172
Refactor tests and avoiding passing `shart_store` to helper functions 2020-07-15 19:07:39 +08:00
Hsiao-Wei Wang 2da331a345
Rename `test_on_shard_head.py` to `test_on_shard_block.py` 2020-07-15 19:01:20 +08:00
Hsiao-Wei Wang 43ef9aa294
Make ShardLatestMessage per shard per validator
1. Add `ShardLatestMessage` dataclass
2. To make it compatible with phase 0 tests and APIs, add `Store.shard_stores: Dict[Shard, ShardStore]`
3. Update `get_forkchoice_store` and `update_latest_messages`
2020-07-14 17:44:01 +08:00
Hsiao-Wei Wang 60f4bd2288
The AttesterSlashing tests for phase1 can be enabled now after #1889 2020-07-09 21:59:01 +08:00
protolambda 3c374b1e16
Update test gen to output phase 1 test vectors. Mainnet disabled for now. 2020-07-07 21:26:35 +02:00
Hsiao-Wei Wang d608be72c3
Merge pull request #1937 from ethereum/hwwhww/custody-block-test
Fix `ShardTransition.shard_data_roots` and add custody game block-level tests
2020-07-02 13:24:07 +08:00
Hsiao-Wei Wang a681163305
Merge pull request #1938 from ethereum/hwwhww/shard-block-tests-part2
Add more tests for `shard_state_transition`
2020-06-30 00:26:24 +08:00
Hsiao-Wei Wang 98a9facab6
PR feedback from Danny
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-06-30 00:16:00 +08:00
Danny Ryan e06bbd14f7
Merge pull request #1907 from ethereum/fix_deprecated_merkle_util
Fix deprecated utility code, avoid wrong helper function name, add tests
2020-06-29 08:31:05 -06:00
Hsiao-Wei Wang d3f2344e45
Add CustodySlashing block test and fix `get_attesting_indices` cache 2020-06-29 20:56:36 +08:00
Hsiao-Wei Wang 235175d937
Add `CustodyKeyReveal` and `EarlyDerivedSecretReveal` tests 2020-06-29 19:58:14 +08:00
Hsiao-Wei Wang c871733bf3
Fix yield block 2020-06-29 19:48:07 +08:00
protolambda 3b7617f51a
make extracted byte uint8 for bitshift, do not use negative slice indexing, avoid negative comparison in test 2020-06-26 16:14:27 +02:00
protolambda 3fb0257cbb
update remerkleable for uint and mypy improvements 2020-06-26 15:57:53 +02:00
Hsiao-Wei Wang a159a2da82
Merge pull request #1928 from ethereum/hwwhww/shard-block-tests
Add tests for `shard_state_transition` and some refactorings
2020-06-26 11:54:23 +08:00
Hsiao-Wei Wang 94c231cf98
Fix `ShardTransition.shard_data_roots` and add test
1. Fix `ShardTransition.shard_data_roots`: use `get_block_data_merkle_root` helper to calculate it.
2. Rework `get_valid_custody_chunk_response` testing helper: accept
`block_length_or_custody_data`
3. Add `test_with_custody_challenge_and_response` test
2020-06-26 01:46:45 +08:00
Hsiao-Wei Wang dc02bbc142
Add more shard block tests 2020-06-26 01:44:55 +08:00
Hsiao-Wei Wang a061758a66
Use `encode_bytes` to implement `int_to_bytes`
Rename `bytes_to_int` to `bytes_to_uint64`

Use `encode_bytes` to implement `int_to_bytes`

Rename `int_to_bytes` to `uint_to_bytes` and move it to `ssz_impl.py`
2020-06-25 20:20:39 +08:00
Hsiao-Wei Wang b239f6108c
Merge branch 'dev' into hwwhww/strict-uint64 2020-06-25 17:18:16 +08:00
Hsiao-Wei Wang 2a7b5f7e68
PR feedback from Danny: nuke optional beacon_parent_state 2020-06-25 11:14:25 +08:00
Hsiao-Wei Wang 79b6bc616d
PR feedback from danny 2020-06-25 10:58:04 +08:00
Hsiao-Wei Wang 661959c13e
Add `process_shard_block` verification 2020-06-24 18:18:50 +08:00
Hsiao-Wei Wang 4a46fb2a8a
Refactor phase 1 block tests a bit and add `shard_state_transition`
tests

1. Refacotr phase1/sanity/test_blocks.py
2. Add phase1/sanity/test_shard_blocks.py for testing `verify_shard_block_message` and `verify_shard_block_signature`
2020-06-24 18:08:26 +08:00
Hsiao-Wei Wang c4973792e2
Make `get_pending_shard_blocks` return `Sequence[SignedShardBlock]` 2020-06-24 12:50:27 +08:00
Hsiao-Wei Wang e4d4527845
Merge pull request #1921 from ethereum/hwwhww/shard-tests
Fix no winning root case + add tests + fix #1881
2020-06-24 11:21:23 +08:00
protolambda 4bf10be4ff
use BLS constant for special signature 2020-06-23 21:14:43 +02:00
protolambda ddddc4ba99
attester slashing with 0 indices and out of bounds indices 2020-06-23 02:06:27 +02:00
Danny Ryan e61efc14a3
Merge pull request #1886 from ethereum/fix_store_target_checkpoint_state
Fix store_target_checkpoint_state
2020-06-22 11:38:40 -06:00
Hsiao-Wei Wang 5357bddcf8
PR feedback: use `filter_participant_set` 2020-06-23 00:13:48 +08:00
Hsiao-Wei Wang 97d0048eaa
PR feedback: use condition to determine if the test should be skipped 2020-06-23 00:06:35 +08:00
Danny Ryan a1e3392d2f
add tests for on_attestation ceckpont state fix 2020-06-22 09:47:22 -06:00
Hsiao-Wei Wang 1a5016157a
Fix
1. To make it more compatible, update `is_on_time_attestation` argument: replace `attestation: Attestation` with `attestation_data:
AttestationData`
2. Fix `get_sample_shard_transition`
2020-06-19 23:46:01 +08:00
Hsiao-Wei Wang c28857e4e1
Fix `attestation.data.shard_head_root` bug 2020-06-19 23:34:51 +08:00
Hsiao-Wei Wang 80c6c0b5f1
valid==True for `run_successful_crosslink_tests` helper 2020-06-19 23:07:39 +08:00
Hsiao-Wei Wang b8caa6ee85
Add `test_wrong_shard_transition_root` 2020-06-19 22:52:38 +08:00
Hsiao-Wei Wang a9f8411a51
Verify all shard states 2020-06-19 22:42:18 +08:00
Hsiao-Wei Wang 37d1a0750d
Use `get_shard_winning_roots` to verify 2020-06-19 22:29:49 +08:00
Hsiao-Wei Wang 43605eebe8
Add `test_no_winning_root` 2020-06-19 22:21:29 +08:00
Hsiao-Wei Wang 3117cf3140
Refactor 2020-06-19 19:09:11 +08:00
Hsiao-Wei Wang ea59193157
Rename some `shard_blocks` to `shard_block_dict` 2020-06-19 18:11:28 +08:00
Hsiao-Wei Wang 76840c9178
Merge branch 'dev' into hwwhww/strict-uint64 2020-06-19 17:01:04 +08:00
Danny Ryan 948ad23f96
Merge branch 'dev' into epochwise_committee_count_per_slot 2020-06-18 09:44:02 -06:00
Danny Ryan 05453b786d
Merge pull request #1895 from ethereum/hwwhww/attestation-shard
Add `shard: Shard` field to `AttestationData`
2020-06-18 09:37:07 -06:00
Hsiao-Wei Wang ec25f78632
Update path 2020-06-18 14:55:50 +08:00
Hsiao-Wei Wang 27eb2e2579
Move testing files from */phase_0 to */phase0, */phase_1 to */phase1 2020-06-18 14:54:27 +08:00
Hsiao-Wei Wang 26c540fbf9
Fix `get_min_new_period_epochs` helper 2020-06-18 14:10:49 +08:00
protolambda 41ebd51aff
Merge branch 'dev' into hwwhww/strict-uint64 2020-06-18 02:49:09 +02:00
protolambda 3f765f55ca
Fix deprecated utility code, avoid wrong helper function name, add tests 2020-06-17 22:34:43 +02:00
protolambda 9b60a9b799
Avoid state usage in p2p validation, compute committee count per slot for epoch as a whole 2020-06-17 20:19:32 +02:00
Hsiao-Wei Wang 7117d2e75a
Merge pull request #1896 from lsankar4033/helper_tests
Add unit tests for `compute_fork_digest` and `compute_subnet_for_attestation`
2020-06-17 20:52:19 +08:00
Danny Ryan fbf10a0db3
fix tests 2020-06-16 22:32:09 -06:00
Danny Ryan a21f93646c
Merge pull request #1878 from ethereum/hwwhww/remove_digest
Remove `ShardState.transition_digest`
2020-06-16 16:40:52 -06:00
Danny Ryan 759185632f
Merge branch 'dev' into phase1-validator 2020-06-16 16:07:20 -06:00
Danny Ryan 2e0950560b
PR feedback 2020-06-16 16:03:36 -06:00
Hsiao-Wei Wang 7fba94a73d
Merge branch 'dev' into hwwhww/attestation-shard 2020-06-17 01:58:05 +08:00
Dankrad Feist 8186594dfe
Rename to get_sample_shard_transition 2020-06-16 14:57:06 +01:00
Dankrad Feist 2dee432536
Refactor getting Merkle root of data part of ByteList 2020-06-16 14:43:34 +01:00
Danny Ryan a0175ca1b3
Merge branch 'dankrad-custody-256bit' into dankrad-custody-0.01bit 2020-06-16 07:15:00 -06:00
lsankar4033 55e17fb1f7 Add compute_subnet_for_attestation unittest 2020-06-15 18:42:15 -07:00
Danny Ryan 01a69288b6
custody 0.01 testing cleanup 2020-06-15 15:33:05 -06:00
Hsiao-Wei Wang 3ee0761d17
Add `shard: Shard` field to `AttestationData` 2020-06-16 00:17:49 +08:00
Hsiao-Wei Wang be607e97f6
Merge branch 'dev' into phase1-validator 2020-06-15 21:09:43 +08:00
Hsiao-Wei Wang e80f6727dc
Merge branch 'dev' into dankrad-custody-256bit 2020-06-15 15:13:45 +08:00
Dankrad Feist f6d7dac30c
Change to 2**14 epoch (73 day) custody periods as per #1888 2020-06-13 15:15:37 +01:00
Dankrad Feist f857dbfac2
Custody tests 2020-06-12 22:47:45 +01:00
Dankrad Feist 04fb9926e8
Remove custody bits from phase 1 and tests 2020-06-12 17:16:08 +01:00
Dankrad Feist 65c3417f90
Fix replace_empty_or_append, remove assert False & test 2020-06-12 11:53:32 +01:00
Dankrad Feist bcfaa1b635
Fix tests 2020-06-12 11:07:44 +01:00
Hsiao-Wei Wang aa75fb0b69
Fix `MAX_SHARDS` and move config files to `configs/{network}/{fork}` 2020-06-12 00:47:36 +08:00
Hsiao-Wei Wang 6502cc1149
Separate config files by phases 2020-06-11 01:04:10 +08:00
Dankrad Feist e46d5effe4
Add test for slashing after failing to respond to custody chunk challenge 2020-06-10 17:20:42 +01:00
Hsiao-Wei Wang f0f7bda2ea
Fix tests 2020-06-10 02:44:09 +08:00
Danny Ryan 65a739fe41
Merge branch 'dev' into phase1-validator 2020-06-08 15:50:51 -06:00
Hsiao-Wei Wang 41cfa7fdf6
Merge branch 'dev' into dankrad-custody-256bit 2020-06-09 01:39:51 +08:00
Hsiao-Wei Wang 7e67aaeb35
Rename `build_shard_transitions_till_slot` to `get_shard_transitions` 2020-06-08 18:15:14 +08:00
lsankar4033 ffeecfbca5 Add test for compute_fork_digest 2020-06-05 20:26:11 -07:00
Hsiao-Wei Wang a4cc189f2b
Apply PR feedback from Danny 2020-06-06 05:19:46 +08:00
Danny Ryan 7f680dfca4
fix tests 2020-06-05 14:09:17 -06:00
Hsiao-Wei Wang a71c0a5ccc
Per #1704 discussion, remove `on_time_slot`: the given `beacon_state`
should be transitioned.
2020-06-06 02:39:47 +08:00
Hsiao-Wei Wang 2afa315cb3
clean leftover 2020-06-06 02:39:47 +08:00
Hsiao-Wei Wang 2d4788fe7d
Fix `verify_shard_block_message`
Add check for `block.beacon_parent_root` per Terence's suggestion

Update `get_shard_transition`

1. Disable verification: it will be fix in v-guide
2. Use `on_time_slot` to compute offset_slots

Rework tests
2020-06-06 02:39:47 +08:00
Hsiao-Wei Wang a154d0c22b
Fix typo 2020-06-06 02:39:11 +08:00
Hsiao-Wei Wang ab42eee4c0
Update shard fork choice rule to be able to handle mainnet config 2020-06-06 02:39:11 +08:00
Hsiao-Wei Wang c9a53b8039
WIP test case 2020-06-06 02:39:07 +08:00
Danny Ryan b1ff00aab0
Merge branch 'dev' into phase1-validator 2020-06-03 12:18:17 -06:00
Danny Ryan 74204f795d
udpate validator guide to work with all updated phase 1 constructions 2020-06-03 12:16:39 -06:00
Hsiao-Wei Wang e1981a7bfd
`head_shard_root` -> `shard_head_root` 2020-06-04 01:00:52 +08:00
Hsiao-Wei Wang 58e75c27ed
Merge branch 'dev' into hwwhww/shard_fork_choice 2020-06-04 00:56:25 +08:00
Hsiao-Wei Wang eb21648146
Merge pull request #1858 from ethereum/hwwhww/get_start_shard
`get_start_shard` proposal
2020-06-04 00:46:12 +08:00
Hsiao-Wei Wang a685be3bbe
PR feedback from Danny
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2020-06-04 00:42:08 +08:00
Hsiao-Wei Wang 68e934bf15
Add `get_start_shard` unittests and update minimal config
1. Add unittests for testing `get_start_shard` with better granularity
2. Change `INITIAL_ACTIVE_SHARDS` from `4` to `2` for tight crosslinking
2020-06-03 23:08:38 +08:00
Danny Ryan 314dea97a5
bump VERSION.txt to 0.12.1 2020-06-02 17:26:26 -06:00
Danny Ryan 671fae6efe
change note about genesis delay in p2p spec to match new GENESIS_DELAY config value; fix tests 2020-06-02 11:09:42 -06:00
Danny Ryan d6435d0cbf
Merge branch 'dev' into dankrad-custody-256bit 2020-06-01 18:49:11 -06:00
Danny Ryan 3a4db69a20
Merge branch 'dev' into dankrad-custody-256bit 2020-06-01 18:45:22 -06:00
Hsiao-Wei Wang 30f72dd696
Fix `get_shard` and `compute_shard_from_committee_index` calls 2020-06-01 23:15:16 +08:00
Hsiao-Wei Wang 9567c238d4
Merge branch 'dev' into hwwhww/get_start_shard 2020-06-01 18:17:58 +08:00
Hsiao-Wei Wang 8e5db1b49f
Merge pull request #1856 from ethereum/hwwhww/verify_empty_shard_transition
Rework `Shard transition processing`
2020-06-01 17:47:00 +08:00
Hsiao-Wei Wang 8f570b461d
Merge pull request #1854 from ethereum/hwwhww/phase1_refactor
Some phase1 refactoring
2020-06-01 17:46:16 +08:00
Hsiao-Wei Wang 63de59d5f6
Merge branch 'dev' into hwwhww/shard_fork_choice_3 2020-05-30 03:57:17 +08:00
Hsiao-Wei Wang 870ad8b921
Fix test 2020-05-30 03:56:56 +08:00
Hsiao-Wei Wang cceeab2657
Combine `process_crosslinks` and `verify_empty_shard_transition` into `process_shard_transitions` 2020-05-30 03:13:20 +08:00
Hsiao-Wei Wang 2dc041807a
Implement `get_start_shard` 2020-05-30 01:26:00 +08:00
Hsiao-Wei Wang ca48963032
Rename `head_shard_root` to `shard_head_root` 2020-05-28 21:38:11 +08:00
Hsiao-Wei Wang c437578280
Add `shard` field to `ShardBlock` 2020-05-28 21:32:27 +08:00
Hsiao-Wei Wang 5e8457e62d
Fix phase1 on-time sign_indexed_attestation 2020-05-23 21:53:55 +08:00
Danny Ryan 7770accf96
Merge pull request #1803 from ethereum/fast-bls-option
BLS options for pyspec
2020-05-20 14:39:49 -06:00
Danny Ryan 61336a9c0b
add deposit_root to validator unit tets 2020-05-20 14:03:16 -06:00
Danny Ryan 96f785e84b
ensure only forward progress with eth1data voting 2020-05-20 13:56:43 -06:00
Hsiao-Wei Wang d92efdf071
Should have signed the attestions in `test_filtered_block_tree` test 2020-05-21 03:02:02 +08:00
Hsiao-Wei Wang 763d74bbf5
Just learned bls was disabled by default; fixing the tests 2020-05-21 02:52:24 +08:00
Hsiao-Wei Wang db1a90d2ee
`test_success_surround` changes the signing data of attestation, so it should be never_bls 2020-05-21 02:05:22 +08:00
Hsiao-Wei Wang f72d14a747
Bump `milagro_bls_binding` to 1.2.0
Also verify it in BLS test generator
2020-05-21 01:37:12 +08:00
Danny Ryan 943e51aef1
hww feedback for finality rewards fix 2020-05-20 10:12:57 -06:00
Hsiao-Wei Wang 21a4143d99
Merge branch 'dev' into fast-bls-option 2020-05-20 16:26:43 +08:00
Danny Ryan 95c3295eeb
move proposer negation to inactivity_penalty deltas 2020-05-19 17:17:20 -06:00
Danny Ryan 85e78223dd
ensure when performing optimally that you don't lose money during a leak 2020-05-19 16:51:46 -06:00
Danny Ryan 6d45afeefb
add some more random reawrds tests 2020-05-18 19:59:50 -06:00
protolambda 85f6712363
fix comments based on PR feedback 2020-05-19 03:42:58 +02:00
protolambda 97e54b85d6
fix cache for config change during runtime 2020-05-19 02:47:16 +02:00
protolambda 75a0d60eb3
cached epoch attestation preparation 2020-05-19 02:25:32 +02:00
protolambda 0f20d8a9ba
leak state decorator, and test pre-state caching 2020-05-19 01:56:20 +02:00
Danny Ryan 8060505743
refactor rewards/penalties tests to use a single structure 2020-05-18 16:00:59 -06:00
Danny Ryan 5da4fe37f8
Merge pull request #1821 from ethereum/rewards-with-inactive-vals
Rewards with not yet activated validators
2020-05-18 14:13:27 -06:00
Danny Ryan c5367295c3
Merge branch 'dev' into v012x 2020-05-18 13:32:24 -06:00
Danny Ryan b7cfa94cb4
Merge branch 'dev' into v0113-dev-merge 2020-05-18 13:22:16 -06:00
Danny Ryan 96b5733086
cleanup set some new deposits helper for rewards tests 2020-05-18 12:06:24 -06:00
Danny Ryan 97b6db4971
add rewards tests for validators not yet activated 2020-05-18 10:07:30 -06:00
Danny Ryan b975a92e90
ensure at least one validator is slashed for slashing rewards tests 2020-05-18 09:29:01 -06:00
Danny Ryan 4a86c39712
Merge pull request #1799 from ethereum/bls_v2
Update to IETF BLS draft-irtf-cfrg-bls-signature-02 + draft-irtf-cfrg-hash-to-curve-07
2020-05-18 07:35:49 -06:00
Danny Ryan 74c900f814
add conditoin that block must be later than latest_block_header 2020-05-15 16:43:53 -06:00
Hsiao-Wei Wang d27f2350a2
Update BLS test suite to BLS standard draft v2 format
1. Make sure that BLS -Verify APIs would only return `True` or `False` , no exceptions.
2. Use `eth2spec.utils.bls` instead of py_ecc for test generator
3. Add assertions in test generator
4. Add some special test cases for the -Verify APIs
5. Clean up the test format documents
2020-05-15 00:55:06 +08:00
Danny Ryan e7ae4be8a9
ensure that pre-state slot is less than block for all block tests 2020-05-13 17:25:39 -06:00
Danny Ryan 1d147037eb
write block tests for double slot proposal and genesis proposal 2020-05-13 11:52:04 -06:00
protolambda 68442c2eef
Update testing and restrict to incremental block transitions 2020-05-13 16:46:28 +02:00
protolambda b1c2c6e3a2
Default BLS to ON, keep CI BLS off for now, add milagro option 2020-05-11 19:18:49 +02:00
Danny Ryan 65108aeee0
start on_block just slots test at time 0 2020-05-11 11:17:48 -06:00
Danny Ryan 17f656cefe
Merge branch 'dev' into v012x 2020-05-11 10:41:35 -06:00
Danny Ryan 6474218fb1
Merge pull request #1747 from ethereum/rewards-rework
[Proposal] rework rewards/penalties to be more granular
2020-05-11 08:16:49 -06:00
Danny Ryan 1636360426
remove todo comment
Co-authored-by: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-05-11 08:09:07 -06:00
Hsiao-Wei Wang cdd0ed0f7b
Update to IETF BLS draft-irtf-cfrg-bls-signature-02 2020-05-09 11:48:48 +08:00
Danny Ryan 1137e0332d
move MAX_ATTESTER_SLASHINGS to 2, add multiple slashings per block tests 2020-05-08 10:43:11 -06:00
Nathaniel Jensen 38a5f41c30
[Minor] Fix config example to not assign a return value. 2020-05-08 20:12:44 +10:00
Danny Ryan 3a71c6d9bd
Merge branch 'dev' into v012x 2020-05-07 12:48:47 -06:00
Danny Ryan b317a7329f
Merge branch 'dev' into double-operations 2020-05-07 12:32:25 -06:00
Danny Ryan 4ad3d65d10
add multiple exits block sanity test 2020-05-07 12:23:37 -06:00
Danny Ryan ee7d11d18f
clean up proposer slashing tests and add a couple 2020-05-07 12:00:07 -06:00
Danny Ryan 12aa84fc8a
PR feedback 2020-05-07 10:47:20 -06:00
Danny Ryan 08652f543b
Merge branch 'v012x' into empty-bits-case 2020-05-07 10:17:26 -06:00
Danny Ryan 7625728fb8
Merge pull request #1742 from ethereum/ffg_lmd_vote_consistency
Added FFG-LMD vote consistency checks
2020-05-07 09:36:52 -06:00
Danny Ryan 4ffa0dba60
Apply suggestions from code review
"rewards/penalties" -> "deltas" in throughout test comments/descriptions

Co-authored-by: Diederik Loerakker <proto@protolambda.com>
2020-05-05 16:31:40 -06:00
Danny Ryan f0742b2f2d
add exited tests for rewards. make some valiators exited/withdrawable in slashed tests 2020-05-05 16:28:29 -06:00
Danny Ryan 4f401133e1
address PR feedback from @protolambda 2020-05-05 15:37:14 -06:00
Danny Ryan b109e7da5a
add test for inconsistent head and target in attestation fork choice 2020-05-05 14:46:02 -06:00
Danny Ryan b2dfb6cebe
PR feedback from @hwwhww 2020-05-05 13:33:44 -06:00
Danny Ryan d26cfd2e59
Apply suggestions from code review from @hwwhww
Co-authored-by: Hsiao-Wei Wang <hwwang156@gmail.com>
2020-05-05 13:08:41 -06:00
Danny Ryan 38f29ba0a8
remove PERSISTENT_COMMITTEE_PERIOD in favor of SHARD_COMMITTEE_PERIOD 2020-05-05 11:44:53 -06:00
Danny Ryan 5b3ed8a3e7
bump VERSION.txt to 0.12.0 2020-05-05 09:45:24 -06:00
Danny Ryan b2c36112f6
Merge branch 'dev' into v012x 2020-05-05 09:44:27 -06:00
Danny Ryan f35106d9ee
add comment for helper -- has_enouh_for_reward 2020-05-05 09:43:25 -06:00
Hsiao-Wei Wang 79b1b4bdbe
Add `(shard, shard_root)` to `LatestMessage` 2020-05-05 21:42:18 +08:00
Hsiao-Wei Wang 8fafb6a9e5
Make `ShardStore` an independent object 2020-05-05 21:42:06 +08:00
Hsiao-Wei Wang cddf9cf114
Refactor 2020-05-05 21:42:00 +08:00
Hsiao-Wei Wang dab5a936c4
wip shard fork choice rule 2020-05-05 21:41:46 +08:00
Hsiao-Wei Wang f4334d1522
Delete outdated helper 2020-05-05 15:28:12 +08:00
Hsiao-Wei Wang ee4c866575
Merge branch 'dev' into dankrad-custody-256bit-merging 2020-05-05 15:22:36 +08:00
Danny Ryan 8f569a8ddc
add inactivity penalty deltas tests 2020-05-04 20:58:42 -06:00
Danny Ryan 5194c1f2d2
add test_get_inclusion_delay_deltas 2020-05-04 17:00:43 -06:00
Danny Ryan a7354bd358
Merge branch 'dev' into rewards-rework 2020-05-04 13:34:35 -06:00
Danny Ryan eda249957e
basic generators work 2020-05-04 13:20:32 -06:00
Hsiao-Wei Wang 977cd73379
Refactor the tests 2020-05-02 02:32:37 +08:00
Hsiao-Wei Wang 524ba166d1
[squashed] shard chain updates wip
Fix wrong field names

Fix `build_attestation_data` and other PR feedback from Danny and
Terence

1. Rename `get_previous_slot` to `compute_previous_slot`
2. Break down `build_empty_block` into
`get_state_and_beacon_parent_root_at_slot`, use it in
`build_shard_block`
3. Set defult `slot` to `shard_state.slot + 1` in `build_shard_block`

Update `verify_shard_block_message`: check beacon_parent_root at fork
choice rule stage instead of state transition

Fix  `beacon-chain.md`

1. Fix typo `attestation.slot == state.slot` -> `attestation.data.slot == state.slot` in `is_winning_attestation`
2. Check `verify_shard_transition_false_positives` **after** `process_operations`
3. Fix `shard_attestations` filter in `process_crosslinks`: since attestations come from block, should use `attestation.data.slot + MIN_ATTESTATION_INCLUSION_DELAY == state.slot`
4. [TBD] Allow empty `light_client_signature` to make the tests pass
5. [TBD] Add `is_shard_attestation`, filter out empty `ShardTransition()`

Rework `test_process_crosslink`

Add basic phase 1 `test_blocks`

Add more test cases

Revert `is_shard_attestation` and fix test cases backward compatibility.

Remove `test_process_beacon_block_no_shard_transition` and consider it as invalid case.
2020-05-02 02:32:31 +08:00
Hsiao-Wei Wang 85d5a9abaf
[squashed] shard chain updates wip
PR feedback from Danny and some refactor

1. Add stub `PHASE_1_GENESIS_SLOT`
2. Rename `get_updated_gasprice`  to `compute_updated_gasprice`
3. Rename `compute_shard_data_roots` to `compute_shard_body_roots`

Apply shard transition for the skipped slots

Refactor `shard_state_transition`

Get `beacon_parent_root` from offset slot

Add more test

Add `verify_shard_block_message`

Add `> 0`

Keep `beacon_parent_block` unchanged in `is_valid_fraud_proof`

Remove some lines

Fix type

Refactor + simplify skipped slot processing
2020-05-02 02:31:54 +08:00
Hsiao-Wei Wang e645d6b5fa
Rename `build_empty_shard_block` to `build_shard_block` 2020-05-02 02:31:53 +08:00
Hsiao-Wei Wang 4e8a7ff115
[squashed] shard transition wip
Fix the wrong `get_shard_proposer_index` parameters order

Phase 1 WIP

Add shard transition basic test

Fix lint error

Fix
2020-05-02 02:31:10 +08:00
protolambda 45ad270f76
test double proposer slashings and exits 2020-05-01 19:14:01 +02:00
protolambda 47ed5b6500
Fix rewards testing for empty/weird participation cases, adding more as well 2020-05-01 16:18:43 +02:00
protolambda 09cae4b3cc
Handle empty-aggregation-bits case, and add tests. See #1713 2020-05-01 15:17:41 +02:00
Dankrad Feist b82496fd11
Rename file 2020-05-01 00:19:25 +01:00
Dankrad Feist d30f11a781
Fix lint 2020-05-01 00:16:00 +01:00
Danny Ryan cd27e5e045
add tests for source, target, head 2020-04-29 10:23:12 -06:00
Danny Ryan 5f18dd778c
add baseline get_target_deltas tests 2020-04-28 19:26:14 -06:00
Hsiao-Wei Wang fa66475da4
Move `sanity` to under `phase_0` 2020-04-29 00:04:44 +08:00
Dankrad Feist 0e2931b9b3
All tests passed 2020-04-28 01:09:20 +01:00
Dankrad Feist 2449db1bb6
Phase 1 block tests are working 2020-04-27 16:08:49 +01:00
Hsiao-Wei Wang 2dbc333270
Make `compute_new_state_root` a pure function 2020-04-27 22:18:43 +08:00
Hsiao-Wei Wang 70bd73d2b5
Apply PR feedback from @djrtwo
Fix get_eth1_vote test cases
2020-04-27 22:18:41 +08:00
Hsiao-Wei Wang 8adc15e83d
Add validator guide tests
1. "Beacon chain responsibilities: Attesting"
2. "Beacon chain responsibilities: Attestation aggregation"
2020-04-27 21:47:25 +08:00
Hsiao-Wei Wang bdae27e317
Add bls.AggregatePKs helper 2020-04-27 21:47:25 +08:00
Hsiao-Wei Wang 303d7d5adb
Add validator guide tests
1. "Becoming a validator"
2. "Validator assignments"
3. "Beacon chain responsibilities: Block proposal"
2020-04-27 21:47:25 +08:00
Danny Ryan fde9b410f0
Merge pull request #1752 from ethereum/dev
sync v0.11.2 to `v012x`
2020-04-24 11:36:17 -06:00
Danny Ryan 56535e3dbe
bump version to v0.11.2 2020-04-24 10:21:47 -06:00
Dankrad Feist ab2ee0e2c2
Restoring chunk challenges and testing 2020-04-24 17:06:27 +01:00
Hsiao-Wei Wang 3575b18cd4
Fix `config_util.py` typing 2020-04-17 23:55:42 +08:00
Hsiao-Wei Wang cafd98b9e8
Fix utils.hash_function typing 2020-04-17 23:55:32 +08:00
protolambda 13d1303db8
update remerkleable; mul/div bound checks, update config loading 2020-04-06 18:40:09 +02:00
Danny Ryan c3e5ddaabc
Merge branch 'dev' into phase1-tests 2020-04-03 09:54:34 -06:00
Danny Ryan 246b46771e
address @hwwhww feedback 2020-04-03 09:46:57 -06:00
Danny Ryan f2c2da95ed
add compute_offset_slots 2020-04-03 09:19:56 -06:00
Hsiao-Wei Wang 3f87cea435
Use constants phase names 2020-04-02 15:09:47 +08:00
Hsiao-Wei Wang a890d1f6a0
Use constant variables to define phase name/ID 2020-04-02 15:09:25 +08:00
Danny Ryan 073f78efa1
Merge branch 'dev' into phase1-tests 2020-03-29 17:04:25 -06:00
Danny Ryan ba67165da2
bump version to 0.11.1 2020-03-27 12:24:43 -06:00
protolambda c00d8e30ad
Merge branch 'v011x' into fix-memoization 2020-03-23 21:06:58 +01:00
protolambda 33f8f4936d
Fix base-reward memoization bug, improve memoization with LRU, and improve misc rewards test 2020-03-20 21:15:13 +01:00
Danny Ryan 0a9b306d60
PR feedback from @hwwhww 2020-03-18 09:55:09 -06:00
Danny Ryan e2ef4365e2
min total balance is now EFFECTIVE_BALANCE_INCREMENT. update testing 2020-03-16 11:19:21 -06:00
Danny Ryan 1293320675
Merge branch 'dev' into phase1-tests 2020-03-12 07:12:41 -06:00
Danny Ryan 36e48fba99
enforce must match target to match head to avoid perverse incentive path 2020-03-11 12:51:05 -06:00
Danny Ryan 8eae0f0b46
Merge pull request #1647 from ethereum/bump-version
bump version to v0.11.0 for coming release
2020-03-11 12:21:17 -06:00
Danny Ryan e2918c6364
Merge pull request #1626 from ethereum/proposer-index
add proposer index to BeaconBlock
2020-03-10 15:10:07 -06:00
Danny Ryan 3b7704a78f
Merge pull request #1649 from ethereum/eth1-voting-period-in-epochs
Eth1 voting period in epochs [updated for configs/phase1/tests compat.]
2020-03-10 13:24:03 -06:00
Danny Ryan 1c9ca3c168
Merge pull request #1635 from ethereum/rewards-overflow
handle rewards overflow
2020-03-10 13:23:21 -06:00
protolambda 2d7a292d36
eth1 vote period constant in epochs: update configs, phase1, tests 2020-03-10 18:36:53 +01:00
Hsiao-Wei Wang 882b9ee035
Merge branch 'dev' into rewards-overflow 2020-03-11 00:41:17 +08:00
Danny Ryan 7d4997f0af
bump version to v0.11.0 for coming release 2020-03-09 12:03:12 -06:00
Danny Ryan 7e04989e29
add genesis_validators_root to beaconstate and utilize in sig domain separation as well as fork separation 2020-03-05 09:21:32 -07:00
Danny Ryan 33e7680836
make hysteresis calculations configurable 2020-03-03 10:58:47 -07:00
Danny Ryan 2d4ec7d52f
add REWARD_OVERFLOW_INCREMENT to avoid overflow in rewards calculation 2020-03-03 10:23:08 -07:00
Danny Ryan 0122081d05
hysteresis to -0.25/+1.25 2020-03-02 15:55:01 -07:00
Danny Ryan 186d4258b6
fix shard offsets 2020-02-28 13:20:37 -06:00
Danny Ryan 63687e6f34
fix YAML parsed list of ints 2020-02-28 13:02:20 -06:00
Danny Ryan 9718d206a7
fix attester slahsing test 2020-02-26 11:20:19 -06:00
Danny Ryan 4c1fc9bffa
work through phase 1 tests 2020-02-22 12:06:31 -06:00
Danny Ryan 97fa3741af
working through test issues 2020-02-22 09:30:33 -06:00
Danny Ryan ceb6633eb9
working through phase 1 attestation testing 2020-02-22 09:24:14 -06:00
Danny Ryan d414aac933
rework process_attestation and work through tests 2020-02-22 09:22:49 -06:00
protolambda aa451778f9
work in progress test improvements 2020-02-20 11:34:50 -08:00
protolambda c1076097c3
wip work to improve tests 2020-02-20 11:33:42 -08:00
Danny Ryan 71be8940b6
add a couple more sanity block tests for added rpoposer_index 2020-02-18 12:56:37 -06:00
Danny Ryan a02aac43c2
adjust hysteresis to avoid initial over-deposit incentive 2020-02-18 12:36:20 -06:00
Danny Ryan 757f5a31dd
add proposer index and add/modify tests 2020-02-18 11:38:17 -06:00
Danny Ryan 129aa02cb3
support tests with SLOTS_PER_EPOCH * 256 vals 2020-02-10 17:56:05 -07:00
protolambda 305a54847c
more explicit about version file location 2020-02-08 23:59:08 +01:00
protolambda 1a16e9a3ab
version eth2spec 2020-02-05 18:38:21 +01:00
protolambda 340549aed6
spec version -> spec fork 2020-01-31 11:52:30 +01:00
protolambda 675d404c38
Package eth2spec for tooling and experimentation
See tests/core/pyspec/README.md for usage description.

This commit:
- refactors config loading to be part of the pyspec package
- updates requirements and main files to use new config loading
- cleans up the build script
- converts the build script to a distutil command
- runs pyspec build as part of build package command
- provides pyspecdev command to get editable spec python files
2020-01-25 01:57:11 +01:00