Zahary Karadjov
ee7c2c9dff
Unify the bootstrap nodes handling code
...
We no longer discriminate between ENR, MultiAddress or ENode
bootstrap records (all of them are remapped to ENodes).
The discovery loop will stochastically try to reconnect to
accidentally disconnected nodes.
2020-02-18 12:53:49 +02:00
Dustin Brody
e13846bec6
allow beacon_node to verify finalization when appropriate, and enable by default for make eth2_network_simulation
2020-02-17 22:00:41 +00:00
Mamy André-Ratsimbazafy
37446302b2
Use the new nim-eth2-scenarios path for the test vectors
2020-02-17 15:26:11 +00:00
Mamy André-Ratsimbazafy
59bfc1c7b5
Rebrand "fixtures" -> scenario + move to "vendor"
2020-02-17 15:26:11 +00:00
Ștefan Talpalaru
98160d3227
tests/simulation/start.sh: refactoring [skip ci]
...
to avoid NIMFLAGS duplication
2020-02-14 13:35:23 +01:00
Dustin Brody
04f63da2cc
print messages for skipped tests
2020-02-11 15:38:41 +00:00
Dustin Brody
ebc8630d5a
finish conversion of manual iteration to automatic iteration over EF test vectors per section
2020-02-11 15:38:41 +00:00
tersec
09d735212d
initial refactoring of block sanity test runner, with several new tests ( #736 )
...
* initial refactoring of block sanity test runner, with several new tests enabled
* remove trailing whitespace
2020-02-07 08:11:26 +01:00
tersec
989559cd2d
set block header tests to automatically enumerate all relevant tests ( #717 )
...
* set block header tests to automatically enumerate all relevant tests
* add several attester slashing tests and run all tests by default, rather than only explicitly listed test vectors
* print something relating to skipped tests
* set voluntary exits to automatically enumerate all tests
2020-02-06 12:41:06 +01:00
Jacek Sieka
cd1c8155bf
shorter epochs in sim
2020-02-06 12:11:51 +01: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
ba9c90c0a1
switch attestations, proposer slashings, and slots sanity tests to automatically iterate across all available test vectors rather than hard-coding them
2020-02-04 21:54:42 +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
Zahary Karadjov
d634eba3fd
Produce a json log file in the data dir of each node in the local network sim
2020-02-04 16:09:21 +01:00
Zahary Karadjov
0d9503ee49
Allow run-time switching to the TRACE log level
2020-02-03 17:06:35 +01:00
Dustin Brody
2591be8796
re-organize/shuffle proposer_slashing operations test runner for easy consistency-with-alphabetical-GitHub checking
2020-01-30 12:42:21 +00:00
Dustin Brody
9748b2606e
update attestations and voluntary exit operations test to 0.10.1
2020-01-30 11:19:48 +00:00
Dustin Brody
45dd12cf3f
update process_deposit() to actually check is_valid_merkle_branch() unless skipValidation specified
2020-01-30 09:31:08 +00:00
cheatfate
98dc701473
Add PeerPool.addPeer async version and tests.
2020-01-29 15:28:41 +00:00
cheatfate
8b229d68ad
Add testutil and timedTest.
2020-01-29 15:28:41 +00:00
cheatfate
3b809616ec
Add SyncManager tests to test suite.
2020-01-29 15:28:41 +00:00
cheatfate
db20fc1172
Fix SyncQueue push(data) bug.
...
Rename lastSlot to HeadSlot.
Add failure test.
2020-01-29 15:28:41 +00:00
cheatfate
73dc72583f
Initial commit.
2020-01-29 15:28:41 +00:00
Zahary Karadjov
1f1a244f3f
Implement more checks and wire up the invalid SSZ tests
2020-01-29 10:10:28 +02:00
Zahary Karadjov
28de477f9e
Apply review suggestions
2020-01-27 20:02:09 +02:00
Zahary Karadjov
f30604db28
cp -l is not portable enough (not working on macOS)
2020-01-27 20:02:09 +02:00
Zahary Karadjov
81f031ea1b
Allow mixing daemon and native libp2p builds in local sim
2020-01-27 20:02:09 +02:00
Zahary Karadjov
84c238ca8b
Add Tmux support for the local network sim
...
To use tmux, just set the USE_TMUX env variable to 'yes' or '1'
2020-01-27 20:02:09 +02:00
Dustin Brody
dab107fa1e
more 0.10.1 updates
2020-01-27 12:50:54 +00:00
Mamy Ratsimbazafy
1ba2cebd85
v0.10.1 (test vectors + unchanged parts) ( #696 )
...
* update to 0.10.1
* SSZ Generic and nbench uses the v0.10.1 fixtures
* Tests + spec links: v0.10.0 -> v0.10.1
* Add v0.10.1 TODO in get_latest_attesting_balance (forkchoice)
* SSZ Bytes are now ByteList
* Remove nim-result submodules that was leftover/added by mistake in the branch
2020-01-27 10:56:32 +00:00
Jacek Sieka
270c25c8b8
drop rlpx support ( #679 )
2020-01-24 09:32:52 +01: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
2a67ac3c05
trie -> kv store
...
* simplify data storage to key-value, tries are not relevant for NBC
* locked-down version of lmdb dependency
* easier to build / maintain on various platforms
2020-01-20 13:39:37 +00: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
Dustin Brody
8eaebf7163
update to spec version 0.10.0
2020-01-14 18:17:16 +00:00
Dustin Brody
8090a15cc2
fix UnusedImport warning
2020-01-07 18:06:20 +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
Dustin Brody
3e7d56a66f
update test suite to 0.9.4 vectors
2019-12-20 16:37:36 +00:00
Mamy Ratsimbazafy
106352aff3
Nbench - Flexible benchmarking of Nimbus internals ( #641 )
...
* nbench PoC
* Remove the yaml files from the example scenarios
* update README with current status
* Add an alternative implementation that uses defer
* Forgot to add the old proc body
* slots-processing
* allow benching state_transition failures
* Add Attestations processing (workaround confutils bug:
- https://github.com/status-im/nim-confutils/issues/10
- https://github.com/status-im/nim-confutils/issues/11
- https://github.com/status-im/nim-confutils/issues/12
* Add CLI command in the readme
* Filter report and add notes about CPU cycles
* Report averages
* Add debugecho style time/cycle print
* Report when we skip BLS and state root verification
* Update to 0.9.3
* Generalize scenario parsing
* Support all block processing scenarios
* parallel bench runner PoC
* gitBetter load issues reporting (the load issues were invalid signature and expected to fail)
2019-12-20 17:14:43 +01:00
Dustin Brody
417f96213d
fix genesis interop by fixing deposit signature handling; add TRACE-level compilation to CI
2019-12-20 15:26:48 +00:00
Jacek Sieka
746659bdc6
bump stew, fix warnings ( #655 )
2019-12-20 14:25:33 +01: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
ea4afd7454
mark 19 more 0.9.2-compatible entities as 0.9.3-compatible
2019-12-19 11:46:30 +00:00
Dustin Brody
27bf8908a9
mark a couple dozen functions and data structures as 0.9.3; fix TRACE-level compiling; stop downloading 0.9.2 test vectors; update cosmetic/display spec versions in test suite
2019-12-17 16:51:46 +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
Mamy André-Ratsimbazafy
eeadafa46b
Test vector 0.9.3
2019-12-13 09:45:12 +01:00
Zahary Karadjov
889031453f
The beacon node can be compiled with the LibP2P native back-end
...
This hasn't been tested yet even in local sim.
2019-12-10 15:02:16 +02:00
Zahary Karadjov
8ab0248209
Revert "tighten a few imports"
...
This reverts commit b24a9200d9
.
2019-12-10 02:18:47 +02:00
Jacek Sieka
b24a9200d9
tighten a few imports
2019-12-09 12:58:28 +00:00
Dustin Brody
eef040954c
remove unused hasSigningRoot(...); stop running time-consuming-but-stubbed-out tests; add timing for peer connection tests
2019-12-06 16:48:32 +00:00
Dustin Brody
570de0839d
measure/find slow tests ( #624 )
2019-12-05 11:27:00 +01:00
Dustin Brody
c762c0232d
render get_beacon_proposer_index(...) return value an option and remove overly aggressive assertion formerly causing crashes when missing validators ( #617 )
...
* render get_beacon_proposer_index(...) return value an option and remove overly aggressive assertion formerly causing crashes when missing validators
* follow addBlock(...) after refactoring
* [skip ci] fix typo
2019-12-04 11:49:59 +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
afc0686b36
save ssz dummps during processing ( #471 )
2019-12-03 11:32:27 +00:00
Ștefan Talpalaru
84c189fd1b
Nim 1.0.4 ( #604 )
...
* Nim 1.0.4
* Azure: try to fix cache key
* mock_validator_keys.nim: fix index out of bounds
* Travis: make Nim building verbose
2019-11-29 10:17:18 +01: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
Dustin Brody
45b7595ba1
state_sim optimizations ( #597 )
...
* switch out quadratically scaling and wasteful attestation in state_sim to attest only to exactly the correct slots; avoid pointless committee index interconversion for 9-10x increase in state_sim speed at d:release, 60k validators, and validate=off
* remove debugechos
2019-11-27 23:48:12 +01:00
cheatfate
fa22ba22b9
PeerPool initial commit.
2019-11-26 17:16:55 +00:00
Zahary Karadjov
1099548775
Restore the number of simulation nodes to 4; More block pool tracing [skip ci]
2019-11-26 19:02:56 +02:00
Zahary Karadjov
85d9df3853
Make the tests green
2019-11-26 02:45:25 +02:00
Zahary Karadjov
8b89bbe391
Fix off-by-one error in syncing
2019-11-26 02:45:25 +02:00
Zahary Karadjov
1d8bfd8c0d
Allow overriding the bootstrap node in run_node.sh
2019-11-26 02:45:25 +02:00
Zahary Karadjov
8de4d38e4e
More tracing
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
f6de87b80e
remove O(n^2) eth1 deposit processing and scaffolding comparing it with O(n) deposit processing; re-enable now-viable-to-run genesis state initialization tests with around 16,384 validators
2019-11-25 14:48:59 +00:00
Dustin Brody
fa2a703a17
switch more funcs and procs from global to module scope; create scaffolding for non-O(n^2) eth1 deposit processing with assertions for equivalent functionality; fix a few more shellcheck warnings
2019-11-25 14:48:59 +00:00
Mamy André-Ratsimbazafy
ea241e407d
use doAssert in static proc ( https://github.com/status-im/nim-beacon-chain/pull/585#discussion_r350073704 ) closes #582
2019-11-25 11:09:36 +01:00
Dustin Brody
a8de94ad05
add validator_leaving logging at debug chronicles level for all call paths to initiate_validator_exit(...)
2019-11-25 09:08:15 +00:00
Dustin Brody
8d9fdb0afd
miscellanous cleanups and removing a few funcs/procs from unnecessary global scopes
2019-11-25 09:08:15 +00:00
Mamy Ratsimbazafy
22adccc917
support List in reportDiff and comment out BLS and shuffling tests ( #585 )
...
* support List in report diff
* Json tests were removed but walkDirRec lull-ed us into thinking we were passing them :/
2019-11-24 11:46:45 +01:00
Mamy Ratsimbazafy
1938379bcd
Automated beacon constant checks ( #583 )
...
* Fix SSZ bitlist deserialization super silly bug
* Add an automated sanity checks of the beacon chain constants
* Remove SSZ consensus skipping procs [skip ci]
* Add phase 1 domains
* Fix mainnet constants
* Add missing phase 1 constants on minimal (they are not needed somehow on mainnet)
* Rebase artifact: constants were defined twice
2019-11-22 20:56:39 +01:00
Dustin Brody
edfd65fd5d
stop download 0.9.1 test vectors; finish 0.9.2 update, primarily via fixing preset constants; remove a couple 0.19.6 shims
2019-11-22 16:41:43 +00:00
Dustin Brody
f5b8931fad
switch assert(...) to doAssert(...) and minor cleanup
2019-11-22 16:39:05 +00:00
Dustin Brody
41fa377638
mark all non-changed 0.9.1 items as 0.9.2 ( #576 )
2019-11-22 09:29:04 +01:00
Mamy Ratsimbazafy
69e15a48a4
bump v0.9.2 test vectors ( #575 )
2019-11-22 00:23:41 +01:00
Dustin Brody
85f2596604
re-enable all_tests.nim mainnet tests
2019-11-21 19:40:35 +02:00
Jacek Sieka
7c6d87051a
simplify validator api ( #573 )
...
* avoid passing whole state to validator api (easier when it goes
out-of-process)
* clean up some cruft
2019-11-21 10:57:59 +01:00
Dustin Brody
c0f009908c
re-enable test_interop based on zcli with 0.9.1 specs and update initialize_beacon_state_from_eth1(...) to 0.9.1 ( #569 )
...
* re-enable test_interop based on zcli with 0.9.1 specs and update initialize_beacon_state_from_eth1(...) to 0.9.1
* switch many procs to funcs
* fix import os.nim instead; ospaths is deprecated [Deprecated] warnings
2019-11-21 09:15:10 +00:00
Mamy Ratsimbazafy
bb0979f232
Ssz fixes ( #566 )
...
* SSZ signature from EF are always opaque blobs (security issue - https://github.com/status-im/nim-beacon-chain/issues/555 )
Enable
- Attestation
- Beaconstate (minimal only)
- Deposit
- DepositData
- ProposerSlashing
Updates #518
* mv debug_ssz to helpers
* Small reorg of the list types
* Fix IndexedAttestation, AttesterSlashing and BeaconBlock
* Deactivate on mainnet: AttesterSlashing, BeaconBlockBody, IndexedAttestation, Attestation, BeaconBlock
* Fix Validators on minimal and mainnet
2019-11-19 12:04:51 +01:00
Dustin Brody
2749cb14a6
convert mostly-uncompiled verify_merkle_branch(...) calls to newer is_valid_merkle_branch(...) name; re-enable several lines of deposit testing code and outline roadmap for completion
2019-11-18 17:35:58 +00:00
Dustin Brody
d8590bbffc
fix several warnings and hints
2019-11-18 17:35:58 +00:00
Dustin Brody
6f87c8fd89
verify that state_sim is justifying and finalizing; fix 3 more warnings; rename crosslink_committee_cache to beacon_committee_cache; fix O(n^2) usage of get_base_reward(...)
2019-11-18 17:35:58 +00:00
Dustin Brody
3f958d3529
Merge branch 'master' into bat
2019-11-14 19:37:47 +00:00
Dustin Brody
7e70d16da9
remove BeaconStateNew and associated testing scaffolding/infrastructure
2019-11-14 20:03:08 +01:00
Dustin Brody
96dcb1cf95
Remove shard-relating code
2019-11-14 19:48:12 +01:00
Dustin Brody
cd45b8b43f
mockAttestationData(...)/mockAttestationImpl(...) changes also match exactly
2019-11-14 19:09:18 +01:00
Dustin Brody
c08698bffe
scaffolding to remove last vestiges of get_committee_count(...), SHARD_COUNT, and rest of that 0.8.x infrastructure; this demonstrates equivalence between two, before discarding old code
2019-11-14 18:37:51 +01:00
Dustin Brody
b4850fbb06
remove XDeclaredButNotUsed spam
2019-11-14 15:58:31 +00:00
Mamy André-Ratsimbazafy
f98dd9b1bf
Bump: only keep 0.9.1 tests, remove LFS
2019-11-14 12:48:34 +00: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
Dustin Brody
24ade89e33
don't download 0.9.0 test vectors
2019-11-13 14:30:21 +00:00
Dustin Brody
5a54c823d8
update to 0.9.1: don't try to run removed tests; re-add 1.5 tests (one only in minimal); remove bls_verify_multiple(...) and AttestationDataAndCustodyBit; and update process_attester_slashing(...), get_indexed_attestation(...), and is_valid_indexed_attestation(...)
2019-11-13 13:49:38 +00:00
Zahary Karadjov
f40675509a
Make all testnet env file values optional [skip CI]
...
Also removes some usages of SHARD_COUNT
2019-11-12 23:43:38 +00:00