Commit Graph

253 Commits

Author SHA1 Message Date
protolambda 2cbc52b9dc
Implement review suggestions
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-04-06 03:17:07 +02:00
protolambda f7069510e6
update shard blob and headers types, implement shard blob slashings, update shard gossip validation 2021-04-06 02:23:43 +02:00
Danny Ryan b81c64fa15
Merge pull request #2287 from mbaxter/altair/change-altair-fork-default
Set tmp ALTAIR_FORK_SLOT to max value
2021-04-01 06:39:14 -06:00
Hsiao-Wei Wang 3391f991ac
Minor wording fixes 2021-03-30 13:48:40 +08:00
protolambda 7344442618
update merge and sharding configs to reflect fork slot placeholder, as in #2287 2021-03-30 01:53:36 +02:00
protolambda 07b7774241
misc. phase1 modules refactor updates 2021-03-30 01:46:02 +02:00
Diederik Loerakker 430627f290
Apply suggestions from @djrtwo
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
2021-03-30 01:33:17 +02:00
Meredith Baxter 346454627d Set altair fork slot to max value 2021-03-29 13:45:41 -04:00
protolambda 2bc3e814b0
rename to custody game 2021-03-27 01:58:39 +01:00
protolambda c225813f7d
split phase1 configs into feature configs 2021-03-27 00:46:04 +01:00
Hsiao-Wei Wang ae258bc335
Update config files, add `DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF` and `DOMAIN_CONTRIBUTION_AND_PROOF` 2021-03-23 20:52:03 +08:00
Danny Ryan d49cddc1d8
Merge pull request #2255 from ralexstokes/update-subcommittee-name
Use different name for constant for sync committee aggregates
2021-03-22 11:34:32 -06:00
protolambda 4a82a375ae
avoid altair fork version collision, update test prep, fix genesis state creator bug 2021-03-21 22:07:28 +01:00
Alex Stokes 484fae3c2b
update constant name 2021-03-19 07:59:49 -06:00
Alex Stokes 208a658305
Use different name for constant for sync committee aggregates 2021-03-18 15:53:57 -06:00
Danny Ryan 4afb6533a2
suffix ALTAIR on update constants 2021-03-15 11:46:53 -06:00
Danny Ryan b8bf7f0f80
Merge pull request #2236 from ethereum/justin_altair_cleanups
Altair cosmetic cleanups plus a couple substantive changes
2021-03-15 08:57:35 -06:00
Justin Drake e7ebd08d69 Altair cosmetic cleanups plus a couple substantive changes 2021-03-15 11:08:41 +00:00
Hsiao-Wei Wang 1824bdf181
Update Altair configs 2021-03-13 01:21:04 +08:00
Danny Ryan 65dcf897c2
Merge pull request #2147 from ethereum/lightclient-sync-exe
Make `sync-protocol.md` pass the linter and add basic tests
2021-03-12 07:52:45 -07:00
Hsiao-Wei Wang c34eae33d0
Merge branch 'dev' into lightclient-sync-exe 2021-03-12 00:49:29 +08:00
Danny Ryan 79f351cfca
Merge branch 'dev' into leak-scores 2021-03-11 09:28:58 -07:00
Hsiao-Wei Wang b44e576e95
LIGHTCLIENT_PATCH/HF1 -> ALTAIR 2021-03-11 21:32:00 +08:00
Hsiao-Wei Wang 69489d1541
Rename folders and file names to `altair` 2021-03-11 21:12:46 +08:00
Hsiao-Wei Wang 2de64cbda1
Add `process_light_client_update` tests 2021-03-11 21:06:58 +08:00
Danny Ryan e2abdb74ae
port testing 2021-03-09 15:41:28 -07:00
Danny Ryan deace8768e
port @justindrake's general cleanups from #2212 2021-03-01 19:41:28 -07:00
Danny Ryan 2b8b0d9e2b
update penalty config values for hf1 2021-02-11 15:55:43 -07:00
Hsiao-Wei Wang 002dfaa891
Set minimal config's `SYNC_COMMITTEE_SIZE` to 32 2021-01-13 19:15:32 +08:00
Hsiao-Wei Wang 50765edc30
Set minimal config's `EPOCHS_PER_SYNC_COMMITTEE_PERIOD` to 8 2021-01-13 15:11:38 +08:00
Hsiao-Wei Wang acfe49e3f3
executable light client patch: beacon-chain.md (#2141)
* Bump remerkleable to 0.1.18

* Disable `sync-protocol.md` for now. Make linter pass

* Enable lightclient tests

* Use *new* `optional_fast_aggregate_verify`

* Fix ToC and codespell

* Do not run phase1 tests with Lightclient patch

* Fix the Eth1Data casting bug. Add a workaround.

* Fix `run_on_attestation` testing helper

* Revert

* Rename `optional_fast_aggregate_verify` to `eth2_fast_aggregate_verify`

* Apply Proto's suggestion

* Apply Danny's suggestion

* Fixing tests

* Fix after rebasing

* Rename `LIGHTCLIENT` -> `LIGHTCLIENT_PATCH`

* New doctoc

* Add lightclient patch configs

* fix gitignore light client patch generator output

* Upgrade state for light client patch

* Add `lightclient-fork.md` to deal the fork boundary and fix
`process_block_header`

* Misc cleanups

1) Add a summary note for every function that is changed.
2) Avoid changing `process_block` (instead only change `process_block_header`).
3) Rename `G2_INFINITY_POINT_SIG` to `G2_POINT_AT_INFINITY` to avoid `SIG` contraction.
4) Misc cleanups

* Update block.py

* Update beacon-chain.md

* Fix typo "minimal" -> "mainnet"

Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>

* Use the new `BeaconBlockHeader` instead of phase 0 version

* Update config files

* Move `sync_committee_bits` and `sync_committee_signature` back to `BeaconBlockBody`

Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Justin <drakefjustin@gmail.com>
Co-authored-by: Marin Petrunić <mpetrunic@users.noreply.github.com>
2020-12-15 13:18:20 +08:00
Danny Ryan 7589af8e8d
remove wip notice on phase 0 specs 2020-11-04 09:30:29 -06:00
Danny Ryan cd7b1056b4
add mainnet deposit contract address and min genesis time 2020-11-04 09:11:52 -06:00
Danny Ryan 91deacbf9c
double eth1data params 2020-10-07 18:52:47 -06:00
Danny Ryan 157f7e8ef4
upgrade config to mainnet values 2020-09-28 12:56:08 -06:00
Hsiao-Wei Wang 5374890da0
Merge branch 'dev' into testgenphase1 2020-09-17 21:11:49 +08:00
Hsiao-Wei Wang 2befe90032
Remove the unused `MAX_EPOCHS_PER_CROSSLINK` 2020-09-15 13:23:42 +08:00
protolambda 28137a6176
Merge branch 'dev' into testgenphase1 2020-09-09 23:43:26 +02:00
Hsiao-Wei Wang c995da420e
Update config files 2020-09-03 21:39:00 +08:00
Hsiao-Wei Wang 6289664260
Update testing context
1. Add `with_configs` decorator to assign available configs
2. Add `only_full_crosslink` decorator to detect if the configuation can
do full crosslinking
3. Add `context.is_pytest` flag: True if calling via pytest. False if
calling from test generator.
2020-08-12 21:50:14 +08:00
Hsiao-Wei Wang bd5346b624
Merge pull request #1989 from ethereum/enable-bls-citest
Enable Milagro BLS in CI
2020-07-29 23:54:53 +08:00
Hsiao-Wei Wang b58633ce5d
Quick fix the phase 1 configurations and tests (#1990)
* Quick fix the configurations

* Remove the unused `CUSTODY_RESPONSE_DEADLINE`
2020-07-29 02:06:25 +08:00
Hsiao-Wei Wang b1eb157539
Merge branch 'dev' into hwwhww/phase-1-fork-slot 2020-07-28 23:59:19 +08:00
Danny Ryan 9193a23f8e
add chain id and netowrk id to config 2020-07-23 12:05:22 -06: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
Danny Ryan 759185632f
Merge branch 'dev' into phase1-validator 2020-06-16 16:07:20 -06:00
Hsiao-Wei Wang 5e5a951c6f
Fix conflicts 2020-06-16 23:49:41 +08:00
Danny Ryan a0175ca1b3
Merge branch 'dankrad-custody-256bit' into dankrad-custody-0.01bit 2020-06-16 07:15:00 -06:00
Danny Ryan 97d50b381b
minor fixes in config comments 2020-06-15 08:11:15 -06:00
Hsiao-Wei Wang 458d343497
Fix configs and put domain types to the same table 2020-06-15 21:15:11 +08:00
Hsiao-Wei Wang 8697b30eea
Fix configuration 2020-06-15 15:30:32 +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
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 85ec791935
Sync with beacon-chain spec 2020-06-11 01:04:14 +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 41cfa7fdf6
Merge branch 'dev' into dankrad-custody-256bit 2020-06-09 01:39:51 +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 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
Raw Pong Ghmoa d5ed78e974
reflect changes in minimal.yaml 2020-06-02 10:55:35 -06:00
Raw Pong Ghmoa b3f2d81ad5
reflect changes in mainnet.yaml 2020-06-02 10:55:25 -06:00
Danny Ryan 3a4db69a20
Merge branch 'dev' into dankrad-custody-256bit 2020-06-01 18:45:22 -06:00
Danny Ryan 3f0e58a8ed
add chunk challenge and response to block and operations 2020-05-19 07:50:05 -06:00
Danny Ryan 1137e0332d
move MAX_ATTESTER_SLASHINGS to 2, add multiple slashings per block tests 2020-05-08 10:43:11 -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 b2c36112f6
Merge branch 'dev' into v012x 2020-05-05 09:44:27 -06:00
Hsiao-Wei Wang ee4c866575
Merge branch 'dev' into dankrad-custody-256bit-merging 2020-05-05 15:22:36 +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
Dankrad Feist 0e2931b9b3
All tests passed 2020-04-28 01:09:20 +01:00
Hsiao-Wei Wang d311248d35
Increase `EPOCHS_PER_ETH1_VOTING_PERIOD` from `2` to `4` for testing eth1 votes consensus 2020-04-27 22:18:43 +08:00
Dankrad Feist ab2ee0e2c2
Restoring chunk challenges and testing 2020-04-24 17:06:27 +01:00
Hsiao-Wei Wang c10e59bdf7
Fix `INACTIVITY_PENALTY_QUOTIENT`
The amount of inactivity penalty was adjusted to half since we were applying penalty for missing FFG target and source. But now we only apply it for missing target, so `INACTIVITY_PENALTY_QUOTIENT` should be `2**24`.
2020-04-08 10:32:16 +08:00
Hsiao-Wei Wang 071f6b5126
Gasprice rework: use `MIN_GASPRICE` as the initial gasprice and change `MIN_GASPRICE` to 8 gwei 2020-03-31 22:09:20 +08: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
protolambda 2d7a292d36
eth1 vote period constant in epochs: update configs, phase1, tests 2020-03-10 18:36:53 +01:00
Danny Ryan 33e7680836
make hysteresis calculations configurable 2020-03-03 10:58:47 -07:00
Danny Ryan eec57f29b7
add explicit instrucutions for construction of signed_aggregate_and_proof. add DOMAIN_SELECTION_PROOF and DOMAIN_AGGREGATE_AND_PROOF 2020-02-11 15:45:51 -07:00
Danny Ryan 7a412534d9
remove test_shard_blocks (outdated) and reduce PERSISTENT_COMMITTEE_PERIOD in minimal config 2020-01-15 18:17:07 -07:00
protolambda e6f98eb041
minor config style fixes 2020-01-14 02:26:15 +01:00
protolambda 702b253361
update configs for phase1 2020-01-13 19:50:36 +01:00
protolambda 140129ec51
Merge dev into phase1 refactor, update BLS phase1 2020-01-09 14:56:06 +01:00
Danny Ryan c3f7f0bc2b
Merge pull request #1556 from ethereum/constant-genesis-slot
move GENESIS_SLOT/EPOCH to constants
2020-01-06 17:28:06 -07:00
protolambda ce84ddd207
initial update of phase1 section of configs 2020-01-06 00:24:06 +01:00
Danny Ryan 50c8727ae7
make genesis delay configurable 2020-01-05 15:29:23 -07:00
Danny Ryan 8515aec7aa
move GENESIS_SLOT/EPOCH to constants as they are not truly configurable 2020-01-05 15:07:41 -07:00
Danny Ryan 5ac0d12205
Merge pull request #1553 from ethereum/eth1-caching
`get_eth1_data` uses timestamp instead of block height
2020-01-05 14:44:47 -07:00
Danny Ryan 6dbc02031d
add GENESIS_FORK_VERSION and make associated modifications to support configuration of this variable 2020-01-03 17:48:03 -07:00
Danny Ryan 261b6c0d23
modify get_eth1_data to use timestamp instead of block height 2020-01-03 16:57:04 -07:00
Danny Ryan c9f52d0099
Merge branch 'dev' into phase1rebase 2020-01-03 07:49:23 -07:00
Danny Ryan 3e96b43894
Merge pull request #1467 from ethereum/reduce-genesis-count
reduce genesis validator count for mainnet config
2019-11-18 13:30:04 -07:00
Danny Ryan 398b11c26c
add validator constants to config 2019-11-12 08:42:57 -07:00
Danny Ryan b376a1387c
minor fix to comment in mainnet config 2019-11-08 11:34:14 -07:00
Danny Ryan 9ddae15e2e
reduce genesis validator count for mainnet config 2019-11-06 20:32:25 -07:00
Danny Ryan 97d7cf5190
further test bounce attack 2019-11-05 10:58:45 -07:00
Danny Ryan 43132a3082
[reopen] Eth2 shorthand standardized (#1452)
* Update README.md

* Update README.md

* Update p2p-interface.md

* Update simple-serialize.md

* Update README.md

* Update initialization.md

* Update README.md

* Update 0_beacon-chain-validator.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2019-10-28 15:53:10 +08:00
Danny Ryan 70c2063cfa
PR feedback 2019-10-24 21:49:07 +09:00
Danny Ryan e86ff1ead7
minor fix to mainnet config comments
Co-Authored-By: Cayman <caymannava@gmail.com>
2019-10-20 00:43:36 -05:00
Danny Ryan a11b01296b
update constants for phase 0 simplification 2019-10-20 12:53:03 +08:00
Danny Ryan 437a65d3e1
cleanup wrt Justin's comments 2019-10-17 17:47:51 +09:00
Danny Ryan 6208e74d3f
get crosslink committees by slot 2019-10-13 21:52:58 +09:00
Danny Ryan d8431f8476
add start index back in 2019-10-13 13:53:43 +09:00
Danny Ryan c392db3b9b
fix max epochs var 2019-10-12 14:44:53 +09:00
Danny Ryan 1fbf7f8e0d
fix config files 2019-10-12 13:54:51 +09:00
Danny Ryan d98cabf7e7
fix get crosslink committee and finalitytests 2019-10-12 13:06:52 +09:00
Justin Drake e7db58cb7e
Rename ACTIVATION_EXIT_DELAY to MAX_SEED_LOOKAHEAD for phase 1 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
Hsiao-Wei Wang 17702e6d88
Shard slot -> slot for PHASE_1_FORK_SLOT part2 2019-08-27 20:10:39 +08:00
Hsiao-Wei Wang d84c902bb1
Merge branch 'dev' into v082_backport 2019-08-12 01:47:24 +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 3aba05e252
Add simple tests for `shard_state_transition` 2019-08-01 14:19:08 +08:00
protolambda b73625fbf1
update test generation code (work in progress), improve the simplicity of configuration in context of forks, and update docs 2019-07-25 23:13:33 +02:00
Hsiao-Wei Wang ff96eea3ac
Add phase 1 domain to constant_presets files 2019-07-04 20:46:47 +08:00
Danny Ryan ce336d4a39
last few config fixes to match spec 2019-06-30 22:31:14 -06:00
Hsiao-Wei Wang 83a68feac6
Merge branch 'dev' into last-minute-cleanups-2 2019-07-01 09:36:13 +08:00
protolambda fdd1fd5b2c
make config values reflect the withdrawal prefix is a byte 2019-07-01 00:26:46 +02:00
protolambda e53063c08d
type BLS domain and domain type 2019-06-30 22:12:49 +02:00
Danny Ryan 2f43f9c339
Merge pull request #1202 from ethereum/test_genesis
Add `test_genesis.py` and fix `is_genesis_trigger`
2019-06-29 23:31:32 -05:00
protolambda 4d5d5971e2
fix genesis tests; sign deposit-datas, and lower min validator count for testing 2019-06-30 02:10:18 +02:00
Justin Drake 3a5872f8e4 Cleanups and fixes 2019-06-29 21:29:10 +01:00
Hsiao-Wei Wang d4755653ff
Merge branch 'deposit-root' into test_genesis 2019-06-30 01:33:29 +08:00
Danny Ryan b88ab250fa
Merge branch 'dev' into committee-roots 2019-06-28 12:07:50 -06:00
vbuterin c764202a57 Slashing penalty calculation change (#1217)
If the exit queue is very long, then a validator may take many months to exit. With the code as currently written, however, self-slashing is a potentially lucrative route to get one's money out faster, because one can exit in 36 days.

This PR changes it so that slashing can only extend your withdrawal time, not contract it. Also, instead of the slashed balances used to calculate one's slashing penalty being those in `[withdrawal - 54 days ... withdrawal - 18 days]`, we now run the penalization algorithm once every 36 days that a validator is slashed but not withdrawn, so that it covers the 36-day period where the validator was actually slashed.  It also moves the minimum slashing penalty to the `slash_validator` function so that it is only applied once.

We also simplify the `slashed_balances` logic to be per-epoch.
2019-06-28 14:35:26 +01:00
Justin Drake bcfe383e25 WIP 2019-06-27 08:44:44 +01:00
protolambda a62d0261ca
merge with dev, fixed now 2019-06-27 01:31:10 +02:00
protolambda 82ae180490
clean up list limit constants 2019-06-24 23:38:36 +02:00
Hsiao-Wei Wang b51011568a
Merge branch 'dev' into test_genesis 2019-06-21 22:13:46 -06:00
Hsiao-Wei Wang ac34221f55
Fix `is_genesis_trigger` and add test case 2019-06-21 16:30:31 -06:00
Danny Ryan e15a649f37
reduce MAX_EPOCHS_PER_CROSSLINK in minimal config for testing purposes 2019-06-21 15:34:36 -06:00
Danny Ryan 29dbe1b880 Increase historical length and cleanups (#1196)
* increase historical length and a few cleanups
2019-06-19 20:59:44 +01:00
Danny Ryan 89d9d80b1c
move BASE_REWARDS_PER_EPOCH to constants 2019-06-17 16:12:47 -06:00
Danny Ryan 207eb808a0
split constants vs configuration 2019-06-17 15:19:44 -06:00
Danny Ryan a6230425b8
Merge branch 'dev' into container-cleanup 2019-06-14 10:36:41 -06:00
protolambda 2d636ddf5a
BLS withdrawal byte is formatted as int now, but still one byte. Justin changed spec, now fix tests + configs 2019-06-11 17:27:34 +02:00
protolambda 481c9664be
update naming of 2 constants, fix comments in minimal config (mainnet time estimates do not hold with different amount of slots per epoch) 2019-06-11 17:07:48 +02:00
Justin Drake 565f61dfaa Cleanup containers 2019-06-09 20:41:21 +01:00
Carl Beekhuizen 35c03c5f3e
Adds review suggestions I missed 2019-06-06 11:45:22 +02:00
Carl Beekhuizen 271f615873
Dramatically speed up tests 2019-05-22 12:40:57 +02:00
Justin 7ba13aa4c5
Merge branch 'dev' into JustinDrake-patch-21 2019-05-06 17:48:09 +01:00
JSON d1c96c1e0d Doc standardization (#1039) 2019-05-06 16:30:32 +01:00
Justin Drake 5fb32fd19b Fix tests 2019-05-05 12:10:39 +01:00
protolambda 15ad1fca07
update configs 2019-04-26 15:57:20 +08:00
protolambda 6888d9f36b
update config constants 2019-04-24 19:30:13 +10:00
Diederik Loerakker 92e4bba7df small constants update to reflect new genesis slot, and rename block sig domain (#978) 2019-04-22 16:38:44 +10:00
Diederik Loerakker dbb112b237 update constants for eth1 data voting to match spec (#952) 2019-04-17 15:23:14 +10:00
Diederik Loerakker f78f3a62f0 update constants to match latest dev (#933) 2019-04-16 14:57:57 +10:00
protolambda 18d54fa1f8
fix deposit contract placeholder address length 2019-04-14 19:38:37 +10:00
protolambda d7b7640221
overhaul shuffling tests, focus on swap-or-not shuffle 2019-04-11 18:33:46 +10:00
protolambda db91c7fe9e
Work for new pyspec based test generators 2019-04-10 21:45:46 +10:00