Zahary Karadjov
c4af4e2f35
Working test suite with run-time presets
2020-07-08 02:02:14 +03:00
Jacek Sieka
f3e92762e3
add tests for unviable blocks ( #1271 )
...
* add tests for unviable blocks
also enable finalization tests in all test configs - they're plenty fast
now
also fix newClone for non-rvo cases. sigh.
* fixes
2020-07-01 19:00:14 +02:00
Mamy Ratsimbazafy
902093f57c
Revert "Dual headed fork choice [Reloaded] ( #1223 )" ( #1234 )
...
This reverts commit 6836d41ebd
.
2020-06-25 11:36:03 +02:00
Mamy Ratsimbazafy
6836d41ebd
Dual headed fork choice [Reloaded] ( #1223 )
...
* Dual headed fork choice
* fix finalizedEpoch not moving
* reduce fork choice verbosity
* Add failing tests due to pruning
* Properly handle duplicate blocks in sync
* test_block_pool also add a test for duplicate blocks
* comments addressing review
2020-06-24 20:24:36 +02:00
tersec
807b920c19
state_transition implements the spec fairly directly ( #1220 )
2020-06-23 13:54:24 +00:00
Eugene Kabanov
4436c85ff7
Forward sync refactoring. ( #1191 )
...
* Forward sync refactoring.
Rename Quarantine.pending to Quarantine.orphans.
Removing "old" fields.
* Fix test's FetchRecord.
* Fix `checkResponse` to not allow duplicates in response.
2020-06-18 12:03:36 +02:00
Jacek Sieka
42832cefa8
Small fixes ( #1165 )
...
* random fixes
* create dump dir on startup
* don't crash on failure to write dump
* fix a few `uint64` instances being used when indexing arrays - this
should be a compile error but isn't due to compiler bugs
* fix standalone test_block_pool compilation
* add signed block processing in ncli
* reuse cache entry instead of allocating a new one
* allow for small clock disparities when validating blocks
2020-06-12 18:43:20 +02:00
Dustin Brody
74dc2fffa6
3x blocksim speedup by using EpochRef in attestation pool addResolved(...)
2020-06-05 13:02:35 +00:00
Dustin Brody
3cb7896bab
12x speedup on state sim with 100k validators sans BLS by caching get_beacon_proposer_index(...)
2020-06-04 17:07:51 +00:00
Jacek Sieka
f06df1cea6
remove some copies
...
* in makeBeaconBlock - use rollback instead
* in tests - this helps state_sim give more accurate data and makes it
30% faster
* fix some usages of raw BeaconState
2020-05-22 17:15:35 +00:00
Jacek Sieka
7fbb8c0bc2
return block result details ( #1049 )
2020-05-21 19:08:31 +02:00
Ștefan Talpalaru
383b22795c
bump submodules ( #1043 )
2020-05-20 06:57:39 +02:00
Dustin Brody
f4d38611ef
check that process_slots() succeeds
2020-05-19 17:16:55 +00:00
Dustin Brody
6c941b1ff7
spec v0.11.3 update
2020-05-19 17:16:55 +00:00
Dustin Brody
d6c76f6b2f
re-enable all but the finalization tests for block pool in mainnet presets
2020-05-14 16:33:11 +00:00
tersec
c548b90a0e
default preset update; rm process_slots(BeaconState); some BLS skipping disabled ( #963 )
...
* re-enable BLS validation for block sanity tests
* update default preset to mainnet; remove process_slots(state: var BeaconState)
* bump spec ref to v0.11.1
* bump all v0.11.1 spec references except the actually changed is_valid_indexed_attestation(...) in spec/beaconstate to v0.11.2
* remove stack-risky/low-ROI doAssert
2020-05-04 21:07:18 +00:00
Jacek Sieka
28d6cd2524
avoid memory allocations and copies when loading states ( #942 )
...
* rolls back some of the ref changes
* adds utility to calculate stack sizes
* works around bugs in nim exception handling and rvo
2020-04-28 10:08:32 +02:00
Zahary Karadjov
4e9fa51ae9
Introduce BeaconNodeRef and use it in all the right places
2020-04-26 13:04:53 +03:00
Zahary Karadjov
fdcbfdff05
Pass the test suite with a BeaconState ref type
2020-04-26 13:04:53 +03:00
tersec
62e3c250c0
fix warnings ( #914 )
2020-04-22 07:53:30 +02:00
Jacek Sieka
da988e4e40
more block range request updates
...
* handle skip == 0 gracefully
* avoid memory allocation at expense of more complex API
* add more tests
* log block request results
2020-04-21 11:07:27 +03:00
Jacek Sieka
fccce85f0d
simplify block request
...
this matches the intended spec behaviour
2020-04-21 11:07:27 +03:00
Dustin Brody
f49dbf68e6
refactor some Merkle proof generation code outside tests; remove unused variables/functions
2020-04-15 09:59:49 +00:00
tersec
d25d674502
Remove more warnings, both deprecations and unused imports ( #884 )
...
* fix warnings by switching from deprecated chronos API addTimer(...) to setTimer(...) and removing especially some unnecessary chronicles and extras imports from test suite modules
* update a couple v0.10.1 spec references to v0.11.1
2020-04-11 19:41:50 +02:00
Jacek Sieka
afa08c8e3c
crypto: cleanup ( #882 )
...
* crypto: cleanup
* fix several Defect-on-user-input
* make crypto interface more similar to secp
* use `crypto.nim` in all of nbc
* digest: raises
* fix
* vendor
2020-04-11 10:51:07 +02:00
tersec
31bf8fa408
remove all but one UnusedImport warning ( #881 )
...
* remove all but one UnusedImport warning
* bump a few more spec version references from v0.10.1 to v0.11.1
* more v0.10.1 spec reference updates/removals
* yet more v0.10.1 spec reference updates
2020-04-10 16:06:24 +02:00
Jacek Sieka
689bcf71c4
clean up block creation
...
* consistently use state at new block slot to produce block
* factor out signature funcs
* fix missing block application test
2020-03-22 11:15:07 +00:00
Zed
6ba7b4b117
Generate markdown test reports
2020-03-13 14:38:59 +00:00
Dustin Brody
0d3de00714
remove unused imports
2020-03-11 10:50:55 +00:00
Jacek Sieka
fb9c4fabf4
fix state rewind
...
* rewind fast path comparison was not taking skipped slots into account
properly
* less messy blockref creation
2020-02-05 19:24:07 +00:00
Dustin Brody
1ffc2df23d
add a couple new deposit tests; fix the false-positive BLS verifications while keeping all but two tests working, despite mismatched 0.9/0.10 BLS standards; better-factor the skipping of BLS validation and Merkle tree validation
2020-02-04 18:39:38 +00:00
Jacek Sieka
d9c98b15c8
fix block pool finalization point init
2020-01-23 14:34:58 +02:00
Jacek Sieka
95437e103a
disable state pruning
...
* fix crash when state root is present but state is missing
* fix state root removal when state is removed
* fix block pool initialization which needs tail state
* remove tail block pruning
* incomplete - fork states are not pruned
* incomplete - fork blocks are not pruned
* incomplete - empty slot states are not pruned
* unknown - tail/finalized block on empty slot might be incorrect
2020-01-22 19:45:38 +02:00
Jacek Sieka
6cfa28e1f5
fix finalization cleanup
...
* add block pool finalization test
2020-01-21 15:53:53 +02:00
Jacek Sieka
7a8054d36d
clean up block pool
...
* remove BlockPool.blocksBySlot (unused)
* simplify head pruning condition
* add head list smoke tests
* additional logging
2020-01-21 00:54:23 +02:00
Jacek Sieka
860be026e1
fix block pool init head selection
...
the head state is not necessarily saved in the database, so we need to
make sure we update things to the correct place
2020-01-15 12:17:49 +00:00
Jacek Sieka
148527c716
slot fixes
...
* fix slot time navigation, add tests
* skip block proposal if head is more recent already - shouldn't happen
* use correct head when attesting to previous blocks
* log slot start/end processing
2019-12-23 17:56:56 +00:00
Dustin Brody
46de726e3d
mark all compatible 0.9.3 functions and data structures as 0.9.4
2019-12-20 17:24:42 +00:00
Jacek Sieka
07c37517ea
disable block/attestation pool tests in mainnet
2019-12-19 16:17:45 +00:00
Jacek Sieka
b994da78a7
Move some attestation/block logic out of beacon node
...
* state data cache in block pool
* keep head state around
* more attestation logic in attestation pool
* first fork choice tests (!)
* fix fork choice (it's still likely broken / out of date)
2019-12-19 16:17:45 +00:00
Dustin Brody
c824416f56
initial 0.9.3 spec update
2019-12-17 00:06:03 +02:00
Jacek Sieka
c66ca39cee
update heads when adding resolved blocks
2019-12-16 12:18:08 +02:00
Dustin Brody
570de0839d
measure/find slow tests ( #624 )
2019-12-05 11:27:00 +01:00
Dustin Brody
6b56e19572
initial refactor of testutil to delineate between less and more expensive dependencies; make now-monotonic timing available across test suite, not just in state_sim
2019-12-04 00:34:43 +02:00
Jacek Sieka
2a728d9468
fix stack overflow in isAncestor recursion
2019-11-28 17:36:07 +02:00
Dustin Brody
8f2e523d26
remove a few hints and warnings ( #603 )
2019-11-28 13:50:19 +01:00
Zahary Karadjov
8b89bbe391
Fix off-by-one error in syncing
2019-11-26 02:45:25 +02:00
Dustin Brody
1494bcc262
replace links to Apache and MIT licenses with HTTPS versions ( #592 )
2019-11-25 16:30:02 +01:00
Dustin Brody
df1d00f13a
remove UnusedImport spam ( #549 )
...
* remove UnusedImport spam
* re-add random import to beacon_node
2019-11-14 11:47:55 +01:00
Jacek Sieka
9cfbdb5e16
more interop fixes
...
* fix eth1 interop block hash
* update initialize_beacon_state_from_eth1 to 0.8.3
2019-09-02 22:14:18 +03:00