Commit Graph

4564 Commits

Author SHA1 Message Date
vbuterin 2a91b43eaf
Remove shard block chunking
Only store a 32 byte root for every shard block

Rationale: originally, I added shard block chunking (store 4 chunks for every shard block instead of one root) to facilitate construction of data availability roots. However, it turns out that there is an easier technique. Set the width of the data availability rectangle's rows to be 1/4 the max size of a shard block, so each block would fill multiple rows. Then, non-full blocks will generally create lots of zero rows. For example if the block bodies are `31415926535` and `897932` with a max size of 24 bytes, the rows might look like this:

```
31415926
53500000
00000000
89793200
00000000
00000000
```
Zero rows would extend rightward to complete zero rows, and when extending downward we can count the number of zero rows, and reduce the number of extra rows that we make, so we only make a new row for every nonzero row in the original data. This way we get only a close-to-optimal ~4-5x blowup in the data even if the data has zero rows in the middle.
2020-01-28 17:31:51 -07:00
Danny Ryan 7b76808a1c
Merge pull request #1600 from ethereum/master
Backport BLS test gen fix to dev
2020-01-27 19:07:12 -07:00
protolambda e118045a59
update remerkleable dependency 2020-01-28 02:31:39 +01:00
Danny Ryan 3daca54a21
Merge pull request #1599 from ethereum/fix-fast-aggregate-bls-test
Fix fast_aggregate_verify BLS tests
2020-01-27 17:51:33 -07:00
Ben Edgington b67aeee855
Fix fast_aggregate_verify BLS tests 2020-01-27 17:39:50 -07:00
protolambda 7848500ea9
spec packaging; implement review suggestions from hww 2020-01-25 22:10:03 +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
Diederik Loerakker 247a4eeab1
Merge pull request #1552 from ethereum/tree-based-ssz
Tree based spec SSZ implementation - remerkleable
2020-01-25 01:00:58 +01:00
protolambda d9f62f9303
Remerkleable - merkle tree based ssz for better and faster spec 2020-01-25 00:43:43 +01:00
Diederik Loerakker 8e5c1763ba
Merge pull request #1594 from ethereum/master-copy
Backport v0.10.1 to dev
2020-01-24 21:56:49 +01:00
Danny Ryan 67a4d5e659
Merge branch 'dev' into master-copy 2020-01-24 13:49:22 -07:00
Danny Ryan b74dd67fcf
Merge pull request #1589 from ethereum/v010x
Release `v0.10.1` to `master`
2020-01-23 13:17:31 -07:00
Jim McDonald d4ae00819a
Fix for increased seconds per slot 2020-01-23 13:08:52 -07:00
Danny Ryan 6a26b76858
Merge pull request #1504 from ethereum/phase1rebase
Phase 1 rebase
2020-01-23 12:09:17 -07:00
Danny Ryan 161c0a8bc1
remove unused code from bls generator file 2020-01-23 11:35:59 -07:00
protolambda 86b699bfd1
Merge branch 'dev' into phase1rebase 2020-01-23 19:24:03 +01:00
Diederik Loerakker 88026a8550
Merge pull request #1587 from ethereum/deposit-contract-test-pin
Deposit contract testing cleanup, manage python versions.
2020-01-23 19:11:09 +01:00
Danny Ryan ec00f6d9ea
Merge pull request #1575 from ethereum/broken-gens
Fix broken test generators
2020-01-23 10:36:53 -07:00
Danny Ryan 67763ae0e0
PR feedback 2020-01-23 10:32:12 -07:00
Danny Ryan 3b2c723ba5
Merge pull request #1590 from ethereum/port-minor-changes-from-dev
Port minor changes from dev for v0.10.1
2020-01-23 09:57:50 -07:00
Jim McDonald de1bb7bde1
Update for renamed constant 2020-01-23 09:55:04 -07:00
Hsiao-Wei Wang a13271af41
Fix BLS API description 2020-01-23 09:52:40 -07:00
Ben Edgington f8250b6a1a
Correct typo in heading level 2020-01-23 09:51:58 -07:00
Chih Cheng Liang 14cfc66c33
Fix p2p interface indentation 2020-01-23 09:51:38 -07:00
Danny Ryan 3b80e12fc3
only expose BLS tests for the used APIs 2020-01-22 17:56:50 -07:00
Danny Ryan eed3f6053d
Merge pull request #1580 from ethereum/fork-choice-fix-1574
Fork choice fix issue 1574
2020-01-22 16:56:00 -07:00
Danny Ryan d672c47aba
Merge pull request #1579 from ethereum/epochs-in-fork-choice
Properly handle skip slots in fork choice
2020-01-22 16:55:15 -07:00
Diederik Loerakker 4e8cf252b7
Merge pull request #1588 from mcdee/cfix
Fix `SLOTS_PER_ETH1_VOTING_PERIOD` constant with incorrect name
2020-01-23 00:33:27 +01:00
Diederik Loerakker 9f5f501e5b
Merge pull request #1586 from ethereum/fix-default-compute-domain
fix default value in compute_domain
2020-01-23 00:29:28 +01:00
Jim McDonald ebac603745
Update for renamed constant 2020-01-22 22:23:36 +00:00
Danny Ryan fe103394db
Merge pull request #1583 from sigp/kirk-baird-patch-02
Update BLS Link
2020-01-22 14:57:36 -07:00
Danny Ryan b357e43aab
clarifying comment on call to get_ancestor in on_block 2020-01-22 14:31:23 -07:00
Danny Ryan 83bea50772
Merge pull request #1581 from ethereum/exit-queue-default-fix
Exit queue epoch fix
2020-01-22 14:27:34 -07:00
protolambda 01f7c6c1e2
separate deposit contract compiler and tester, pin compiler to python 3.7. Upgrade others to 3.8 2020-01-22 19:41:19 +01:00
Danny Ryan e821476c07
explicitly use Optiona type for fork_version in compute_domain
Co-Authored-By: Carl Beekhuizen <carl@ethereum.org>
2020-01-22 11:38:50 -07:00
Danny Ryan dd9325d9fa
G2Basic to G2ProofOfPossession for private_to_public_key bls test generator
Co-Authored-By: Carl Beekhuizen <carl@ethereum.org>
2020-01-22 11:32:25 -07:00
Danny Ryan cf18b040b4
fix default value in compute_domain 2020-01-22 07:24:15 -07:00
Kirk Baird 601701241c
Update link
Signed-off-by: Kirk Baird <baird.k@outlook.com>
2020-01-22 11:04:45 +11:00
Danny Ryan f012844493
Add additional bls tests for IETF standards to bls gens 2020-01-21 11:19:31 -07:00
Danny Ryan 2015433fa1
revert exit queue epoch issue introduced in v0.10.0. add test to catch subtlety 2020-01-20 20:03:38 -07:00
Danny Ryan 00d3fb4fe6
fix issue 1574 by ensuring that justified checkpoint in store updates when finalized updates if needbe 2020-01-20 18:50:50 -07:00
Danny Ryan e98c1b4154
don't consider blocks with slots earlier than finalized in on_block fork choice (optimization) 2020-01-20 18:10:39 -07:00
Danny Ryan f1697d03e7
fix corner case to properly handle skipped slots in get_ancestor 2020-01-20 17:49:09 -07:00
Danny Ryan 2a0f680769
fix ssz_generic test generator 2020-01-16 11:15:44 -07:00
Danny Ryan 6e73df0692
fix broken bls generators 2020-01-16 11:09:58 -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
Danny Ryan c0b69e531f
cycle through committee indexes instead of through active shards when forming crosslinks 2020-01-15 17:43:11 -07:00
Danny Ryan 3c07b2c954
Make phase 0 fork choice more modular to more easily adopt for slight modifications in phase 1 2020-01-15 16:40:50 -07:00
Danny Ryan 08621a7973
Merge pull request #1567 from ethereum/fix_bls_api
[Minor] fix BLS API description
2020-01-15 14:21:15 -07:00
Danny Ryan 1756348e8d
Merge pull request #1569 from ChihChengLiang/minor-fix-indentation
[Minor] Fix p2p interface table level
2020-01-15 14:19:42 -07:00