1761 Commits

Author SHA1 Message Date
Jacek Sieka
592d6f65c3
bump (#1001) 2020-05-09 16:47:14 +02:00
Eugene Kabanov
55dfcc6783
Inspector native version. (#995) 2020-05-09 14:18:58 +00:00
tersec
093d298b2b
Increase finalization and finalization checking robustness (#990)
* fix some warnings related to beacon_node splitting; reimplement finalization verification more robustly; improve attestation pool block selection logic

* re-add missing import

* whitelist allowed state transition flags and make rollback/restore naming more consistent

* restore usage of update flags passed into skipAndUpdateState(...) in addition to the potential verifyFinalization flag

* switch rest of rollback -> restore
2020-05-09 12:43:15 +00:00
Ștefan Talpalaru
bc759ceec3
Merge branch 'metrics' into devel 2020-05-09 13:54:29 +02:00
Ștefan Talpalaru
c572f61129
bump vendor/nim-metrics 2020-05-09 01:13:57 +02:00
Ștefan Talpalaru
aa00e5ea61
Merge branch 'reuseaddr' into devel 2020-05-08 23:17:25 +02:00
Ștefan Talpalaru
fc9d6bc1b3
enable SO_REUSEADDR in libp2p transports 2020-05-08 21:50:20 +02:00
tersec
f0d02f5f29
return nonzero exit code on state transition failure (#996) 2020-05-08 16:16:44 +02:00
Jacek Sieka
c1aff83b8b
decrease sync chunk size (#988)
While mainnet performance is being worked on, this helps with the flow.
2020-05-08 08:17:40 +02:00
Eugene Kabanov
3ffd0d7216
Fix gossip messages not delivered. (#983) 2020-05-06 15:42:59 +00:00
Mamy Ratsimbazafy
621c2e38a6
Separate validator duties from the Beacon Node (#976)
* Separate validator duties from the Beacon Node

* remove duplicate MaxEmptySlotCOunt

* imports

* have beacnde properly compile
2020-05-06 13:23:45 +00:00
Jacek Sieka
a56e18bb0c
collect garbage at end of each slot (#975) 2020-05-06 12:01:19 +02:00
Ștefan Talpalaru
3f7f444ce7
Merge branch 'localtestnet' into devel 2020-05-06 00:41:58 +02:00
Ștefan Talpalaru
fa663be029
launch_local_testnet.sh: get the metrics out with "--grafana" 2020-05-06 00:02:39 +02:00
Ștefan Talpalaru
846f21a96a
Merge branch 'grafana' into devel 2020-05-05 23:05:37 +02:00
Ștefan Talpalaru
0289db0ff5
eth2_network_simulation: more Grafana metrics shown [skip ci] 2020-05-05 23:04:38 +02: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
01e9df97cb
cleanups (#962)
* remove broken serialized_sizes
* actually use sszdump module
* avoid bitops
* fix stack_sizes module name
2020-05-04 07:38:14 +02:00
Jacek Sieka
2449d4b479
cache empty slot state root (#961)
When replaying state transitions, for the slots that have a block, the
state root is taken from the block. For slots that lack a block, it's
currently calculated using hash_tree_root which is expensive.

Caching the empty slot state roots helps us avoid recalculating this
hash, meaning that for replay, hashes are never calculated. This turns
blocks into fairly lightweight "state-diffs"!

* avoid re-saving state when replaying blocks
* advance empty slots slot-by-slot and save root
* fix sim randomness
* fix sim genesis filename
* introduce `isEpoch` to check if a slot is an epoch slot
2020-05-03 19:44:04 +02:00
Ștefan Talpalaru
c3cdb399c0
Merge pull request #957 from status-im/localtestnet
launch_local_testnet.sh: avoid infinite waits
2020-05-02 20:57:43 +02:00
Ștefan Talpalaru
3ac01140c6
Merge pull request #959 from status-im/publish
Makefile: add "publish-book" target
2020-05-02 20:57:23 +02:00
Ștefan Talpalaru
150aeaee74
make schlesi: fix NIMFLAGS and verbosity handling 2020-05-02 16:58:42 +02:00
Ștefan Talpalaru
fa7d64c291
Makefile fix 2020-05-02 16:46:24 +02:00
Ștefan Talpalaru
43679bd04f
Makefile: add "publish-book" target
See https://github.com/rust-lang/mdBook/blob/master/book-example/src/continuous-integration.md#deploying-to-github-pages-manually
2020-05-02 16:30:34 +02:00
Ștefan Talpalaru
2e5db5b698
Merge pull request #958 from status-im/readme
Make gitbook for the manual
2020-05-02 15:36:21 +02:00
李婷婷
80795724f1 filling up contents from readme 2020-05-02 21:14:19 +08:00
Ștefan Talpalaru
1e7a4188d2
launch_local_testnet.sh: dump logs more often 2020-05-02 00:09:04 +02:00
Ștefan Talpalaru
11a36980a7
launch_local_testnet.sh: avoid infinite waits
and tail the logs on failure
2020-05-01 20:57:12 +02:00
Jacek Sieka
a3e098cf92
block pool simulator (#956)
* block pool simulator

like state_sim, but more
2020-05-01 17:51:24 +02:00
李婷婷
5ccb8c4cbc create gitbook 2020-05-01 22:00:43 +08:00
tersec
cf8e90615a
More state_transition unification (#953)
* remove incorrect/obsolete comment; deprecate BeaconState state transition functions

* remove deprecated state_transition(state: var BeaconState)

* add specific workarounds for state_transition() and process_slots() to nfuzz_block() and addTestBlock()
2020-04-30 18:27:17 +02:00
Jacek Sieka
e65f5c86da
vendor: bump (#954) 2020-04-30 18:27:04 +02:00
Ștefan Talpalaru
784c5e3d73
Jenkins: add timeouts to testnet finalisation tests (#947)
* Jenkins: add timeouts to testnet finalisation tests

- add nicer child process management to "launch_local_testnet.sh"
- correct a comment in "start.sh"

* the Jenkins worker's version of "timeout" doesn't support "-v"
2020-04-30 13:59:57 +00:00
tersec
cd939d4606
fix spec/beaconstate compile error in the presence of other PRs' SSZ tightening (#952) 2020-04-30 09:01:55 +00:00
tersec
3a56ddc5c4
begin removing plain BeaconState versions of state transition functions (#951)
* remove near-duplicate code paths: process_slot(), process_slots(), and state_transition() for BeaconState are now wrappers around the HashedBeaconState versions

* convert tests/test_state_transition.nim to use HashedBeaconState

* convert mocking infrastructure and spec_block/epoch_processing tests to use HashedBeaconBlock, and remove thus unused process_slot*(state: var BeaconState)
2020-04-30 08:44:19 +02:00
Jacek Sieka
c74ba5c0c6
ssz: move ref support outside (#943)
* ssz: move ref support outside

Instead of allocating ref's inside SSZ, move it to separate helper:

* makes `ref` allocations explicit
* less magic inside SSZ
* `ref` in nim generally means reference whereas SSZ was loading as
value - if a type indeed used references it would get copies instead of
references to a single value on roundtrip which is unexpected

TODO: EF tests would benefit from some refactoring since they all do the
same thing practically..

Co-authored-by: Zahary Karadjov <zahary@gmail.com>
2020-04-29 22:12:07 +02:00
tersec
7b840440bc
rm research/fork_choice_rule/ (#949) 2020-04-29 22:02:40 +02:00
cheatfate
49cc9a9961 Fix updateStatus should not raise exceptions. 2020-04-29 19:21:18 +03:00
tersec
57aba5d3a6
Switch block pool caches from BeaconChainDB to TableRefs (#945)
* refactor blook pool caches to directly use TableRef to avoid SSZ decoding, which was consuming 20% of profile on mainnet eth2_network_simulation

* use table's hasKeyOrPut

* bump eth2 spec reference to v0.11.1

* cache whole StateData objects and switch from expensive clear() to cheaper new object instantiation for caching

* remove scaffolding and stop re-assigning to part of StateData object

* 80-character lines
2020-04-29 16:58:44 +02:00
tersec
465553f921
re-enable mainnet attestation pool tests (#946)
* re-enable mainnet attestation pool tests; since https://github.com/status-im/nim-beacon-chain/pull/930 double CI state sim validators

* bump deposits spec ref to v0.11.1
2020-04-29 13:44:07 +02:00
Zahary Karadjov
fada11e1e9 Address review comments
* Create a json log named "nbc.log" only when the --dev-build option
  is specified to the connect_to_testnet script.

  This option is specified for the targets "testnet0", "testnet1"
  and "schlesi-dev"
2020-04-28 13:49:30 +03:00
Zahary Karadjov
667bdf066a Bump Chronicles to fix a minor bug; Add a placeholder for disabled topics 2020-04-28 13:49:30 +03:00
Zahary Karadjov
7237a370ba Implement https://github.com/status-im/nim-beacon-chain/issues/872
Please see the newly added 'schlesi-dev' Makefile target.
It demonstrates how the log level can be specified for individual topics.

Additionally, when connecting to testnets like 'schlesi' there will be
two additional log files produced in the working directory:

* json-log.txt
* text-log.txt (in the textblocks format)
2020-04-28 13:49:30 +03: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
80b538452e Updated the custom preset loader to the latest spec; Working makefile target for connecting to the Schlesi testnet 2020-04-27 23:22:54 +03:00
Viktor Kirilov
dcc70c5259 resolved final comment from review 2020-04-27 22:10:35 +03:00
Viktor Kirilov
8ef28c905d fixed commets from review 2020-04-27 22:10:35 +03:00
Viktor Kirilov
5ecba6df49 broadcasting and listening to the '_snappy' topics as well 2020-04-27 22:10:35 +03:00
Jacek Sieka
898df9ba45
kvstore: port to nim-eth (#938) 2020-04-27 18:36:28 +02:00
tersec
7790644e52
remove a pointless hash_tree_root(BeaconState) per node per proposed block (#933)
* remove a pointless hash_tree_root(BeaconBlock)

* use ref with putState
2020-04-27 12:47:49 +02:00