3364 Commits

Author SHA1 Message Date
tersec
8912196335
Fix Altair epoch processing and add/enable remaining epoch processing tests (#2619)
* fix Altair epoch state transitions

* re-enable and re-add near-complete Altair epoch processing test vectors: inactivity, justification & finalization, participation flag, slashings, and sync committee updates
2021-05-30 20:23:10 +00:00
tersec
820a6f65d5
use v1.1.0-alpha.6 test vectors (#2618)
* bump nim-eth2-vendors and use v1.1.0-alpha6 test vectors

* continue to download alpha 5 test vectors for const sanity checks
2021-05-30 09:51:01 +00:00
Jacek Sieka
60df17786e avoid reading legacy db on write
* don't consider legacy database when writing state - this read is slow
on kvstore
* avoid epoch transition when there's an exact match in cache already
* simplify init to only consider checkpoint states
2021-05-30 12:32:51 +03:00
Jacek Sieka
df7bc87af5 Pre-compute slot transition for clearance state
This way we perform the expensive epoch processing before the block
arrives.

Of course, this may lead to speculative misses which in turn lead to
replays - it's likely that in the case of a miss, we'll see a replay
regardless.
2021-05-30 12:04:09 +03:00
tersec
aa6177814e
re-enable state_transition() rollback in phase0 (#2613) 2021-05-29 03:54:56 +00:00
tersec
e8c62553ec
reorganize SSZ-based tests to support phase0 and altair (#2612)
* reorganize SSZ-based tests to support phase0 and altair

* label Altair SSZ consensus object tests as such

* update test summary
2021-05-28 20:32:26 +00:00
Jacek Sieka
2df8a3b28d
add more block processing durations (#2611) 2021-05-28 21:03:20 +02:00
Zahary Karadjov
0afb5be6b4 A simple script for fetching detailed deposit data 2021-05-28 19:34:20 +03:00
Jacek Sieka
7f52ffb8d9
clean up block processing (#2610)
* gossip_to_consensus -> block_processor (it's processing only blocks,
but not only from gossip)
* measure queue and validation time for blocks
* measure assignment and state loading times for updateStateData
* avoid some unnecessary block copies in block sync
* warn that database is corrupt if we hit tail without a state
2021-05-28 19:34:00 +03:00
tersec
c06ffc7804
proposed structure for altair (#2323)
* proposed structure for hf1

* refactor datatypes.nim into datatypes/{base, phase0, hf1}.nim

* hf1 is Altair

* some syncing with alpha 2

* adjust epoch processing to disambiguate access to RewardFlags

* relocate StateData to stay consistent with meaning phase 0 StateData

* passes v1.1.0 alpha 5 SSZ consensus object tests

* Altair block header test fixtures work

* fix slash_validator() so that Altair attester slashings, proposer slashings, and voluntary exit textures work

* deposit operation Altair test fixtures work

* slot sanity and all but a couple epoch transition tests switched to Altair

* attestation Altair test fixtures work

* Altair block sanity test fixtures work

* add working altair sync committee tests

* improve workarounds for sum-types-across-modules Nim bug; incorporate SignedBeaconBlock root reconstuction to SSZ byte reader
2021-05-28 15:25:58 +00:00
tersec
46c5a0110a
log doppelganger attestation signature; rm withState.HashedBeaconState uses (#2608) 2021-05-28 15:51:15 +03:00
Jacek Sieka
5be1f8bf93
Revert "increase sqlite cache size (#2607)"
This reverts commit f55c4bc40238be7fa6f0ad658bef38e8489a6d97.
2021-05-28 11:35:23 +02:00
Jacek Sieka
f55c4bc402
increase sqlite cache size (#2607)
This is a test to see how the prater nodes react
2021-05-27 21:16:04 +02:00
Jacek Sieka
d16da06c92 ncli_db: validator performance database tool
Record attestation performance per epoch in sqlite database
2021-05-27 19:14:26 +03:00
cheatfate
90e3fb246f Fix assertion crash when posting block via REST API. 2021-05-27 18:59:30 +03:00
Jacek Sieka
ab70f371e1
Revert "create new database in separate file (#2596)" (#2604)
This reverts commit eebc828778ea4fd6ce907cfee075153173b27b8f.

Adding a separate file turns out not to be enough. This PR reverts the
separate file change.

Another theory is that the large kvstore table causes cache thrashing -
all database connections share a common page cache which would explain
the poor performance of the separate file solution.
2021-05-27 12:59:42 +02:00
Mamy André-Ratsimbazafy
d05c9dbcf4 improve batch crypto sanity checks error reporting 2021-05-26 18:17:12 +03:00
Ștefan Talpalaru
9ddf7fea23 dist: use Ubuntu-18.04 to build ARM64 binaries 2021-05-26 16:51:06 +03:00
Ștefan Talpalaru
73e9448a1a dist: reduce debugging info size in official binaries
By moving from Nim's default of "-g3" to "-g1" we get binaries that are
half as large and still have enough debugging symbols for backtraces,
but not enough for GDB debugging.
2021-05-26 16:49:53 +03:00
Johann Bauer
c01357c47f
Book: Add instructions on how to download precompiled release (#2600) 2021-05-26 10:43:06 +02:00
Jacek Sieka
18d26071d8
hotfix migration
should have just kept the full copy-pasted dbseq init
2021-05-26 09:56:21 +02:00
Jacek Sieka
80ed54378c
nim-eth: fix commit 2021-05-26 09:40:08 +02:00
Jacek Sieka
eebc828778
create new database in separate file (#2596)
The V1 table structure shows great improvements in performance, but if
there's an old `kvstore` without rowid:s, these benefits are nullified:
reorgs during writes and deletes remain expensive (even if the
degradation is reduced somewhat).

This PR creates the tables in a new file instead, and uses the old file
as a read-only store - this has several interesting properties:

* the old database is left completely untouched - this guarantees that
downgrades work smooth (they'll only need to resync their missing
portions)
* starting sync after this PR means only a v1 database is created
* v0 databases stick around - no migration is performed (for now)

Future PR:s can introduce migration of the data from one database to
another - a simply copy will take hours which is downtime we want to
avoid - at that point, it might make sense to migrate straight to era
files instead.
2021-05-26 09:07:18 +02:00
tersec
d69e06e519
bump nim-eth2-scenarios to stop downloading v1.0.1 test vectors (#2598) 2021-05-24 19:31:48 +00:00
0xmiel
b7db2f0a29
Book edits (#2597)
* simplify beacon node quickstart

* remove extra emacs generated file

* focus sync info around slot start message

* sync edits

* log rotate edits + clarifications

* remove validator keys folder
2021-05-24 16:03:45 +02:00
tersec
3a59dc16c2
use v1.1.0 phase 0 test vectors (#2592)
* use v1.1.0 phase 0 test vectors

* re-export process_final_updates()
2021-05-24 10:42:40 +02:00
Jacek Sieka
584fcd50c1
ncli: fix inclusion distance statistic (#2587) 2021-05-24 10:40:45 +02:00
yslcrypto
038102cb92 update toc 2021-05-22 11:24:03 +02:00
yslcrypto
b1b16d1310 Merge branch 'unstable' of github.com:status-im/nim-beacon-chain into unstable 2021-05-22 11:17:15 +02:00
0xmiel
8c8fe92cd0
refocus guide around prater (#2593) 2021-05-22 11:16:44 +02:00
yslcrypto
b400243bda refocus guide around prater 2021-05-22 11:13:27 +02:00
tersec
056ff59595
bump eth2-testnets (#2589) 2021-05-21 13:09:35 +00:00
yslcrypto
7088ed8f89 update book toc 2021-05-21 14:54:36 +02:00
0xmiel
4131e0941f
Book updates may 21 (#2590)
* update deposit page

* edit keys.md

* edit connect-eth2.md

* remove extra emacs generated file

* update run a validator guide

* update system requirements

* update start-syncing.md
2021-05-21 14:49:12 +02:00
tersec
1c05865656
bump nim-eth2-scenarios to download v1.1.0-alpha.5 test vectors (#2588) 2021-05-21 10:54:59 +00:00
tersec
0b0bfd1de0
use StateData in place of BeaconState outside state transition code (#2551)
* use StateData in place of BeaconState outside state transition code

* propagate more StateData usage

* remove withStateVars().state

* wrap get_beacon_committee(BeaconState, ...) as gbc(StateData, ...)

* switch makeAttestation() to use StateData

* use StateData wrapper/dispatcher for get_committee_count_per_slot()

* convert AttestationCache.init(), weak subjectivity functions, and updateValidatorMetrics()

* add get_shuffled_active_validator_indices(StateData) and get_block_root_at_slot(StateData)

* switch makeAttestationData() to StateData

* sync AllTests-mainnet.md after rebase
2021-05-21 09:23:28 +00:00
cheatfate
be5661eebc Fix /api/eth/v1/validator/aggregate_and_proofs call 2021-05-21 09:47:13 +03:00
cheatfate
6869a1ad33 Convert all the tuples to objects because of de-serialization of tuples issue. 2021-05-21 09:47:13 +03:00
cheatfate
d61b5f46e1 Added missing redirection for POST /eth/v1/beacon/pool/attestations. 2021-05-20 19:42:08 +03:00
cheatfate
d4970e07d2 Use atSlot() instead of getBlockByXXX(). 2021-05-20 19:42:08 +03:00
Jacek Sieka
8dbd796401 prune validatorIndexFromPubKey table 2021-05-20 14:10:23 +03:00
Zahary Karadjov
acee2d3709
Remove an inappropriate merge artifact 2021-05-20 13:55:33 +03:00
Zahary Karadjov
dc49a51654
Merge stable into unstable (take 2) 2021-05-20 13:52:09 +03:00
Zahary Karadjov
b7aa30adfd
Merge stable into unstable 2021-05-20 13:50:40 +03:00
tersec
d8bb91d9a9
partially integrate eth1 merge changes (#2548)
* partially integrate eth1 merge changes

* use hexToSeqByte() and validate execution engine opaque transaction length

* remove incorrect REST serialization code
2021-05-20 10:44:13 +00:00
Johann Bauer
14c258db8b
Fix typo in book (#2580) 2021-05-20 12:41:33 +02:00
yslcrypto
5bf5804bc1 update faq 2021-05-19 16:29:57 +02:00
yslcrypto
8ca2329a20 minor restructure 2021-05-19 16:26:39 +02:00
yslcrypto
62a98e9c6d minor restructure 2021-05-19 16:21:05 +02:00
TennisBowling
d27c7b1f53
Add clarity to docs surrounding command line arguments, suggest data-dir when syncing, and polishing up for mainnet (#2527)
* mainnet

* add clarity to command line rules

* add datadir suggestion when syncing

* remind to pass with all calls

* noCommand added into troubleshooting

* review

Co-authored-by: 0xmiel <sacha.saint-leger@ethereum.org>

* review

Co-authored-by: 0xmiel <sacha.saint-leger@ethereum.org>

* review

Co-authored-by: 0xmiel <sacha.saint-leger@ethereum.org>

* review

Co-authored-by: 0xmiel <sacha.saint-leger@ethereum.org>

* typo

* /lib/systemd/system/ lets you enable on startup

Co-authored-by: 0xmiel <sacha.saint-leger@ethereum.org>
Co-authored-by: Jacek Sieka <arnetheduck@gmail.com>
Co-authored-by: 0xmiel <sacha@status.im>
2021-05-19 16:17:07 +02:00