Commit Graph

340 Commits

Author SHA1 Message Date
Michael Sproul cc5b172da3 Test deposit top-up with inconsistent withdrawal credentials (#1133)
* Simplify deposits

* Avoid divisions by zero

Possible fix to avoid four cases of divisions by zero:

* `return state.validator_registry[index].effective_balance // adjusted_quotient // BASE_REWARDS_PER_EPOCH`
* `rewards[index] += get_base_reward(state, index) * attesting_balance // total_balance`
* `validator.effective_balance * min(total_penalties * 3, total_balance) // total_balance`
* `rewards[index] += base_reward * attesting_balance // committee_balance`

See also #1107.

* fix deposit test for new index handling

* tests: deposit with inconsistent withdrawal credentials

* Update README.md

* Update 0_beacon-chain.md

* Fix linter errors

* Update test_process_deposit.py

* fix deposit test

* fix lint
2019-05-29 20:38:55 -06:00
Danny Ryan f0314bec52
Merge branch 'dev' into JustinDrake-patch-13 2019-05-29 20:15:17 -06:00
Hsiao-Wei Wang 6ec59867ef
Fix linter errors 2019-05-30 09:53:46 +08:00
Danny Ryan 6286fb3fb5
Merge branch 'dev' into JustinDrake-patch-13 2019-05-28 18:15:33 -06:00
Vitalik Buterin 053d6e7805 Simplified hash tree root 2019-05-28 14:33:12 -04:00
Vitalik Buterin 4955c40a7b merge 2019-05-28 09:44:53 -04:00
protolambda 401dba3230
Merge branch 'bls-setting' into v06x-to-dev 2019-05-28 15:38:08 +02:00
protolambda 6ffd41650b
suggestion from hww, reduce into one bls_setting key 2019-05-28 15:35:00 +02:00
Vitalik Buterin 19601df572 Starting work on partials 2019-05-28 09:30:35 -04:00
Hsiao-Wei Wang f0ceefc36d
Make `test_libs/pyspec/tests` pass
1. Use `typing_inspect` library to check if it's `typing.List[Any]`. Use it in `is_list_type`.
2. Add `__hash__`, `__eq__`, `__repr__` methods to some classes.
2019-05-28 13:57:42 +08:00
Hsiao-Wei Wang 00ffaf4d71
Fix ssz path 2019-05-28 12:37:41 +08:00
protolambda 5e28adf556
bugfix: don't forget about var-length bytes getting a length mixin 2019-05-28 00:51:27 +02:00
protolambda 9e61cc2ed3
bugfix: typing edge-case: python bool is subclass of int. 2019-05-28 00:45:13 +02:00
protolambda 0e9a047b1d
Merge branch 'dev' into ssz-impl-rework 2019-05-28 00:42:35 +02:00
Danny Ryan 47f3df6d0a
fix deposit test for new index handling 2019-05-27 16:40:00 -06:00
protolambda d023d2d20f
lots of bugfixes 2019-05-27 23:40:05 +02:00
protolambda 0f79ed709b
update yaml encoder/decoder and obj randomizer for typed ssz usage 2019-05-27 22:19:18 +02:00
protolambda c68944bd53
separate type (direct) from kinds (alias incl) 2019-05-27 22:18:34 +02:00
protolambda 87b3466eae
update encoder and decoder for reading from parsed data 2019-05-27 21:46:14 +02:00
protolambda d63b553a2d
efficiency bugfix in bytes encoding, improve typing doc + bugfix 2019-05-27 21:45:47 +02:00
protolambda f3088884b3
Minor adjustments + getting the beacon spec doc ready 2019-05-27 20:29:53 +02:00
Danny Ryan d3d8b36365
Merge branch 'dev' into v06x-to-dev 2019-05-27 11:09:52 -06:00
protolambda d5eab257d0
improve impl, box less used integer types, use uint64 as default 2019-05-27 18:01:46 +02:00
Danny Ryan 8d420c0780
fix prestate for process registry updates 2019-05-27 08:38:37 -06:00
Vitalik Buterin e14f789779 Presentation edits 2019-05-27 08:07:00 -04:00
Vitalik Buterin 5b6a98b107 Some updates 2019-05-25 14:06:42 -04:00
Carl Beekhuizen c4b9c6372c
Merge in state_transition.py 2019-05-25 15:54:14 +02:00
protolambda ed4416ba34
update SSZ implementation 2019-05-25 00:05:03 +02:00
protolambda b12031b48d
not signed by default 2019-05-24 18:38:51 +02:00
protolambda 321baf79f4
fix missing imports from earlier code suggestion 2019-05-24 15:03:03 +02:00
protolambda 73f0f74fb0
run process yield-from test pattern 2019-05-24 14:58:06 +02:00
Carl Beekhuizen d41bc67ec8
merge dev -> dankrad-patch-7 2019-05-24 14:56:10 +02:00
Diederik Loerakker f2e3cd01aa
Update test_libs/pyspec/eth2spec/test/epoch_processing/test_process_crosslinks.py
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2019-05-24 08:34:14 -04:00
protolambda 57dd9fc4ff
fix syntax 2019-05-24 01:15:49 +02:00
protolambda f98a8d534e
update epoch processing tests to conform to processing pattern, add docs for epoch sub-transition testing 2019-05-23 23:50:58 +02:00
protolambda 21c48b574f
move sanity tests, separate slot tests 2019-05-23 23:32:21 +02:00
protolambda 1bbab9aa00
more direct in what is happening in test utils 2019-05-23 22:28:11 +02:00
protolambda f0c9e7a395
ignore just the one crosslinks case that is incompatible with mainnet 2019-05-23 22:26:36 +02:00
Danny Ryan 3500bde594
only sign in test_double_late_crosslink when necessary 2019-05-23 11:01:07 -06:00
protolambda 754d972108
implement epoch processing test-gen, bugfix tests 2019-05-23 15:13:37 +02:00
protolambda 958f71bb68
minor underflow fix for proposer slashing test 2019-05-22 21:03:46 +02:00
protolambda 58fd712607
fix style issue with deposit processing helper 2019-05-22 20:50:18 +02:00
Carl Beekhuizen 271f615873
Dramatically speed up tests 2019-05-22 12:40:57 +02:00
Carl Beekhuizen 9058647b67
flake8v3.7->flake8v3.5 2019-05-22 10:28:03 +02:00
Danny Ryan dad89ae926
minor lint 2019-05-21 23:20:12 -06:00
Danny Ryan 2c79e584c2
minor lint 2019-05-21 22:42:47 -06:00
protolambda 7d3147d418
add inconsistent bitfields test 2019-05-22 04:19:54 +02:00
protolambda 6b5f4b44ea
avoid zero constant for deposits fork-version, just default to it 2019-05-22 01:39:20 +02:00
protolambda a4363ba096
tests for invalid signatures 2019-05-22 00:52:57 +02:00
protolambda 12af078a6c
make decorators return wrapped fn results properly 2019-05-21 23:03:59 +02:00
protolambda 0e136b1104
update yaml and eth-utils dependencies 2019-05-21 22:55:22 +02:00
protolambda 8303c58aa4
bugfix, make BLS wrapper propagate test output properly 2019-05-21 22:53:46 +02:00
protolambda cfc037fe75
tags applied after generation of vector (and only if), make BLS decorator 2019-05-21 22:28:47 +02:00
protolambda ee9c1d911f
test tagging pattern 2019-05-21 21:51:28 +02:00
protolambda 4d08e9d7d6
signed block header 2019-05-21 21:22:32 +02:00
Danny Ryan 847fcf52cc
utilize bls_domain directly for deposits 2019-05-21 11:30:38 -06:00
Carl Beekhuizen 24c4d21d5e
Minor edits + PEP8 2019-05-21 12:41:24 +02:00
Carl Beekhuizen 6b062405c9
merge dev -> carl-exec-phase1 2019-05-20 20:59:08 +02:00
protolambda ab251d4797
make tests work fast + bls signed optionally 2019-05-20 20:44:54 +02:00
protolambda b0aea2a111
bugfix block proc transfer test 2019-05-20 19:38:18 +02:00
Carl Beekhuizen 65b0701f8c
Helpers depend on spec version and p1 tests work 2019-05-20 18:14:37 +02:00
Carl Beekhuizen b68c471a54
Moves spec to global variable 2019-05-20 17:08:03 +02:00
Carl Beekhuizen cfed4bb41c
Adds missing functions 2019-05-20 10:50:07 +02:00
Danny Ryan 4c5e054883
fix previous crosslink root test 2019-05-19 16:11:39 -06:00
Danny Ryan 62f8d19ffc
add some attestation crosslink tests 2019-05-19 16:06:10 -06:00
Danny Ryan a2108741e8
fix tests with new starT_epoch and end_epoch in Crosslink 2019-05-19 15:47:59 -06:00
protolambda 90bcbd6ff4
fix attester slashing test 2019-05-17 21:56:41 +02:00
protolambda a10aba4bb9
make valid attest creation fill aggregate bitfield 2019-05-17 21:36:17 +02:00
protolambda 0f00b43698
reduce validator key count again, fix valid attestation creation - snippet from Danny 2019-05-17 21:26:18 +02:00
protolambda 08d0ff9336
fix attestation aggregate bitfields 2019-05-17 21:20:09 +02:00
protolambda 183e3a5153
minor refactor import fix 2019-05-17 21:02:00 +02:00
protolambda f937dec2a1
more keys, more validators, fix import 2019-05-17 20:54:34 +02:00
protolambda 62999d8ded
import fixes + fix import loop + fix minor signing things 2019-05-17 20:31:21 +02:00
Carl Beekhuizen 306a613c8a
Simplify minimal SSZ again 2019-05-16 21:01:32 +02:00
Carl Beekhuizen 3e085947b7
Linted :) 2019-05-16 12:38:50 +02:00
Carl Beekhuizen b1711b4ff1
Implements parameterised phase1 tests 2019-05-16 12:10:08 +02:00
Carl Beekhuizen 1b2e7c1b6e
Passes spec & helpers module to tests phase0 2019-05-16 11:07:21 +02:00
protolambda eea6c8f645
voluntary exit testing sigs 2019-05-15 23:26:05 +02:00
protolambda 9f00e4f0e4
sign transfers 2019-05-15 21:07:44 +02:00
protolambda 32efe49b33
proposer slashing signing 2019-05-15 21:07:24 +02:00
protolambda 242bb8c912
sign deposits 2019-05-15 20:50:20 +02:00
protolambda b92a9d8857
sign block headers 2019-05-15 20:50:11 +02:00
protolambda a9069cbf9e
attester slashing signing 2019-05-15 19:53:35 +02:00
protolambda 4dad74eec3
attestation signing 2019-05-15 19:47:50 +02:00
protolambda 8a43ec0132
add signing methods 2019-05-15 19:31:02 +02:00
protolambda 5c3e760c28
update remaining imports 2019-05-15 18:58:12 +02:00
protolambda e07f1bc98f
update imports to new helpers + fix up imports 2019-05-15 18:45:25 +02:00
protolambda a4e22639f3
fix/update bls funcs for testing 2019-05-15 18:37:11 +02:00
protolambda 51c82c5b81
clean up helpers, make helpers pkg 2019-05-15 18:36:32 +02:00
protolambda ce4daea201
Merge branch 'bls-test-deco' into tests-with-sigs 2019-05-15 17:41:04 +02:00
Carl Beekhuizen becda4f463
Several changes before I break everything 2019-05-15 16:26:49 +02:00
Carl Beekhuizen 77b29f4960
Early derived secret testing 2019-05-15 15:17:01 +02:00
Carl Beekhuizen f3742566f7
The new test structure starts to take shape 2019-05-15 15:02:27 +02:00
Carl Beekhuizen c10fb92776
Merge dev -> dankrad-p-7 2019-05-15 10:36:01 +02:00
protolambda 904e2e9c0c
BLS on/off deco 2019-05-13 23:15:02 +02:00
Danny Ryan 27c8e41b32
Merge branch 'dev' into JustinDrake-patch-14 2019-05-13 16:29:29 -04:00
protolambda 08faa86d70
POC ssz types spec build + update spec defs, typing still needs work 2019-05-12 23:56:53 +02:00
protolambda 761c9e55fe
SSZ impl. rework started, see issue 1064 2019-05-12 23:16:17 +02:00
protolambda 4f3f68bc12
signatures in tests, most block-ops updated, still many to go 2019-05-11 21:31:37 +02:00
protolambda 680017f69c
voluntary exit test case: invalid, exit in future 2019-05-11 18:33:41 +02:00
protolambda 636a45a415
voluntary exit test case: invalid index 2019-05-11 18:31:05 +02:00
protolambda 17d057e503
improve transfer testing 2019-05-11 18:24:30 +02:00
protolambda b4be220a48
new attestation tests
Co-Authored-By: Dmitry S <zilm13@users.noreply.github.com>
2019-05-11 17:52:44 +02:00
protolambda a39623a95a
fix test tooling bug 2019-05-11 17:51:02 +02:00
protolambda 3189cf0079
new proposer slashing tests
Co-Authored-By: jannikluhn <jannik@brainbot.com>
2019-05-11 17:01:12 +02:00
Hsiao-Wei Wang e1343f99bb
Fix pyspec/eth2spec/debug lint 2019-05-09 14:34:23 +08:00
Dankrad Feist ec230f443a
Merge branch 'dev' into dankrad-patch-7
# Conflicts:
#	specs/core/1_custody-game.md
#	specs/core/1_shard-data-chains.md
2019-05-09 01:00:25 +01:00
Dankrad Feist 3217938b6f
Re-add early derived secret reveal tests 2019-05-08 23:48:12 +01:00
Dankrad Feist 6ab55efd3d
Phase 0 tests work on phase 1, yay :) 2019-05-08 23:30:08 +01:00
protolambda d9baee2481
move tests to standard pkg/test folder, enable conftest options with soft-import, update readme and makefile 2019-05-08 18:14:47 +02:00
protolambda f9539ed1ab
move tests, update operations test vector generation 2019-05-08 17:33:09 +02:00
Danny Ryan 33e5b98f17
Merge branch 'dev' into JustinDrake-patch-10 2019-05-08 08:42:47 -06:00
Danny Ryan 513c44bd3d
add back in empty attestation test 2019-05-08 08:38:14 -06:00
protolambda 683fe0062f
fix blocks 2019-05-07 18:38:58 +02:00
Dankrad Feist 1db49f4c98
Merge branch 'dev' into dankrad-patch-7
# Conflicts:
#	specs/core/1_custody-game.md
2019-05-07 12:27:24 +01:00
Dankrad Feist a604d03dff
Basic phase 1 pulling + correcting syntax errors in phase 1 2019-05-07 12:13:22 +01:00
Justin 9eeca0cdbd
Merge branch 'dev' into JustinDrake-patch-14 2019-05-07 10:16:38 +01:00
Danny Ryan 8e619f8ab9
port finality tests to new format. still has excessive deepcopies 2019-05-06 16:23:31 -06:00
Danny Ryan e5a50bc8a0
finish port of test_sanity to new format 2019-05-06 16:12:13 -06:00
Justin Drake ea60fb632c More renaming 2019-05-06 20:49:46 +01:00
Justin Drake f4db9ebae0 Renamings triggered by HW comment 2019-05-06 18:26:14 +01:00
Justin 7ba13aa4c5
Merge branch 'dev' into JustinDrake-patch-21 2019-05-06 17:48:09 +01:00
protolambda d2afed847a
fix deposit testing generalization 2019-05-06 18:05:40 +02:00
protolambda 89a2bd2bea
work on sanity tests 2019-05-06 17:43:02 +02:00
JSON d1c96c1e0d Doc standardization (#1039) 2019-05-06 16:30:32 +01:00
protolambda 1722d58067
updat epoch processing tests 2019-05-06 17:10:43 +02:00
protolambda 922a30a619
update voluntary exit tests 2019-05-06 16:51:46 +02:00
protolambda 4820ac9d1a
update transfer tests 2019-05-06 16:35:01 +02:00
protolambda 802f2710c3
clean import, update proposer slashing test 2019-05-06 16:30:13 +02:00
protolambda 90a56e2f5b
update deposit testing 2019-05-06 16:24:11 +02:00
protolambda 9ff52193b1
update block header testing 2019-05-06 16:23:53 +02:00
protolambda 61c0ddbcbb
update attester slashing testing 2019-05-06 16:23:33 +02:00
protolambda 7bbf9ed3fc
update attestation testing 2019-05-06 16:23:15 +02:00
protolambda dcedfc350a
move out spec state test deco 2019-05-06 16:22:51 +02:00
protolambda a8d8da25fd
fix wording and improve encoding logic 2019-05-06 15:40:18 +02:00
protolambda 8b24abde31
implement spectest decorator, update attestation tests 2019-05-06 00:31:57 +02:00
Justin Drake 5fb32fd19b Fix tests 2019-05-05 12:10:39 +01:00
Danny Ryan f57d6fa28e
Merge pull request #1038 from ethereum/master
backport v0.6.1 into dev
2019-05-03 16:28:24 -06:00
Danny Ryan c011feb3c7
Merge pull request #1024 from ethereum/sos_ssz_py
implement SOS serialization in minimal_ssz.py
2019-05-03 15:43:07 -06:00
Justin Drake 197a7200ef Add HW and Danny comments 2019-05-03 21:21:42 +01:00
dankrad c0f3453093 RANDAO reveal slashing, custody period staggering and integration of custody and RANDAO reveals (#880)
* Add RandaoRevealSlashing for early Randao reveals

* add some randao reveal slashing tests

* Unifying RANDAO reveal slashing and Custody reveal slashing; implemented more lenient penalty for not-to-early reveals

* Fix custody reveal domain

* Also test exposed_randao_reveals

* Re-add exposed_randao_reveals to validator initialization

* Fix tests

* Unified Randao Reveal slashing mechanism and Custody Reveal,
CUSTODY_PERIOD_TO_RANDAO_PADDING = EPOCHS_PER_CUSTODY_PERIOD

* Move exposed_randao_reveals into separate data structure to keep validator record clean

* new shiny staggered custody periods

* Fixes style and type hinting

* removes whitespace

* Cleans up multi-line conditionals

* Make RANDAO key reveal penalties proportional to block rewards

* Minor typos

* Minor typos

* Fixes off-by one error

* Removes unnecicary whitepsace

* Clean up comments; add test for key reveal too far in the future

* Reduce the CUSTODY_PERIOD_TO_RANDAO_PADDING again

* Fix max_proposer_slot_reward

* Fix types

* Move test

* Fix RandaoKeyReveal tests

* Move all RANDAO key reveal to phase 1

* Factor out signature checking

* Some fixes

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>

* Addressing Vitalik's suggestions: Separate RANDAO and Custody key reveals; append the cleanup of RANDAO reveals instead of adding a new function

* Remove remnants of verify_custody_key

* RandaoKeyReveal -> EarlyDerivedSecretReveal

* Make penalty proportional to number of secrets already exposed

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>
2019-05-03 17:30:55 +08:00
Justin Drake 973f072235 Remove unnecessary test 2019-05-02 09:25:29 +01:00
protolambda bbaa1417a8
remove incorrect unnecessary offset 2019-05-02 09:16:01 +02:00
Danny Ryan 6242e54c0a
Merge branch 'JustinDrake-patch-11' of github.com:ethereum/eth2.0-specs into JustinDrake-patch-11 2019-05-01 17:06:23 -06:00
protolambda 524d7b09ba
implement SOS serialization in minimal_ssz.py 2019-05-02 00:34:17 +02:00
Danny Ryan ef72b7ec20
Merge branch 'master' into vbuterin-patch-2 2019-05-01 16:19:21 -06:00
Diederik Loerakker 9d1ec584d3
Merge pull request #1022 from ethereum/revert-981-only_setup_py
Revert 981 only setup py to master
2019-05-02 01:25:14 +08:00
Justin Drake 5df79d7565 Get rid of state_transition.py 2019-05-01 13:14:10 +01:00
Justin Drake 591a2b47c8 Simplify state_transition.py 2019-05-01 12:08:15 +01:00
Hsiao-Wei Wang 5f341ae493
Move `get_state_root` to `pyspec/tests/helpers.py` 2019-05-01 17:06:02 +08:00