Commit Graph

1434 Commits

Author SHA1 Message Date
Mamy Ratsimbazafy cbc998ed93
[Ready 1/2] Fork choice rewrite (#865)
* initial fork-choice refactor

* Add fork_choice test for "no votes"

* Initial test with voting: fix handling of unknown validators and parent blocks

* Fix tiebreak of votes

* Cleanup debugging traces

* Complexify the vote test

* fakeHash use the bigEndian repr of number + fix tiebreak for good

* Stash changes: found critical bug in nimcrypto `==` and var openarray

* Passing fork choice tests with varying votes

* Add FFG fork choice scenario + fork choice to the test suite

* Not sure why lmdb / rocksdb reappeared in rebase

* Add sanity checks to .nimble file + integrate fork choice tests to the test DB and test timing

* Cleanup debugging echos

* nimcrypto fix https://github.com/status-im/nim-beacon-chain/pull/864 as been merged, remove TODO comment

* Turn fork choice exception-free

* Cleanup "result" to ensure early return is properly used

* Add a comment on private/public error code vs Result

* result -> results following https://github.com/status-im/nim-beacon-chain/pull/866

* Address comments:
- raises: [Defect] doesn't work -> TODO
- process_attestation cannot fail
- try/except as expression pending Nim v1.2.0
- cleanup TODOs

* re-enable all sanity checks

* tag no raise for process_attestation

* use raises defect everywhere in fork choice and fix process_attestation test
2020-04-09 18:15:00 +02:00
Jacek Sieka 0f47c76b50
reenable block bls verification (#875)
* finalizing state_transition

* cleanup

Co-authored-by: Dustin Brody <tersec@users.noreply.github.com>
2020-04-09 09:41:02 +00:00
Ștefan Talpalaru 96431bfd86
post-merge fixes 2020-04-08 23:09:52 +02:00
Ștefan Talpalaru b574799088
Merge branch 'devel' 2020-04-08 22:54:18 +02:00
Ștefan Talpalaru fa969ef91e
Merge branch 'devel' of github.com:status-im/nim-beacon-chain into devel 2020-04-08 21:32:38 +02:00
Ștefan Talpalaru eec49191d4
Merge branch 'nim-1.2' into devel 2020-04-08 21:32:10 +02:00
Ștefan Talpalaru 5dde7e0e73
cleanup 2020-04-08 18:58:25 +02:00
Ștefan Talpalaru b7e6afa783
Merge branch 'devel' into nim-1.2 2020-04-08 18:54:41 +02:00
Dustin Brody 366da6df36 fix and refactor merkle_minimal sanity checks to run correctly and under CI 2020-04-08 15:40:02 +00:00
Ștefan Talpalaru a7fe5e4218
Azure: change NimBinaries cache key
- also bump submodules to match "devel"
2020-04-08 17:33:13 +02:00
Ștefan Talpalaru 2308dc9520
bump Nim target commit to latest devel 2020-04-08 14:36:03 +02:00
Ștefan Talpalaru 64e6713fde
Merge pull request #874 from status-im/feat/bump-libp2p
bump libp2p to lastet master
2020-04-08 00:28:12 +02:00
Dmitriy Ryajov f876ae574b fix compile error 2020-04-07 14:57:52 -06:00
Dmitriy Ryajov b2d2624d14 bump libp2p to lastet master 2020-04-07 14:23:48 -06:00
Zahary Karadjov 2930b65eb4
[skip ci] simple logging fix 2020-04-07 19:04:49 +03:00
Jacek Sieka b4fc641b8c result->results, bump bearssl 2020-04-07 12:08:59 +00:00
Dustin Brody 2771deadfc re-add test_interop to all_tests and mark several v0.10.1 phase 0 spec references as v0.11.1 2020-04-07 13:16:55 +03:00
Dustin Brody e7de8aae20 fix/restore 0.11.1 BeaconState genesis interop: (a) use GENESIS_FORK_VERSION properly in BeaconState init; (b) use GENESIS_FORK_VERSION to be compatible with zcli/zrnt initial eth1 deposits; (c) let List[foo] work with 64-bit ints, so BeaconState.validators SSZ-serializes properly; and (d) update test_interop to use new spec/crypto API 2020-04-07 13:16:55 +03:00
Mamy André-Ratsimbazafy d7ae86ecd9 bump nimcrypto: fix equality check of hashes 2020-04-07 05:35:46 +00:00
Jacek Sieka e1d18b431b
reraise defect in generic exception handler 2020-04-06 20:08:39 +02:00
Jacek Sieka 021e7d6528
bump modules 2020-04-06 18:37:12 +02:00
Jacek Sieka b9cc91aef8 keep up with nim-eth 2020-04-06 14:13:20 +03:00
Jacek Sieka 04cf6d30eb
vendor: bump nim-eth + fallout (#861) 2020-04-05 11:50:31 +02:00
Ștefan Talpalaru 0b922e25f0
Azure: fail fast on 32-bit 2020-04-04 19:22:20 +02:00
Ștefan Talpalaru 9249be7268
Azure: don't build the tools twice on 32-bit 2020-04-04 17:21:46 +02:00
Ștefan Talpalaru 01a5f43b6e
Azure: re-enable tests 2020-04-04 16:01:39 +02:00
Dustin Brody 60df05a420 mark several v0.10.1 spec references as v0.11.1-compatible 2020-04-04 13:43:04 +00:00
Dustin Brody f9e45dc121 document and temporary workaround for extended validation issue 2020-04-04 13:43:04 +00:00
Ștefan Talpalaru 011ed60feb
Azure: change cache key and comment out tests 2020-04-04 15:40:05 +02:00
Zahary Karadjov 9c46c99054
Re-enable testing 2020-04-03 23:28:12 +03:00
Zahary Karadjov e09183928f
Disable testing to allow the CI to cache the new Nim 2020-04-03 22:04:05 +03:00
Zahary Karadjov d3e225c461
Fix a stack overflow crash with the mainnet preset 2020-04-03 22:04:05 +03:00
Zahary Karadjov 779349c11d
Compile NBC with Nim 1.2 RC 2020-04-03 22:04:03 +03:00
Jacek Sieka d180724d41
Bump eth (#857)
* vendor: bump stew
* vendor: bump nim-eth
* vendor: bump web3 too
2020-04-03 11:12:38 +02:00
Ștefan Talpalaru 708ac80dae
Jenkins: reduce the local testnet's log level (#852) 2020-04-02 08:58:03 +00:00
Ștefan Talpalaru 57ec29062e
Merge branch 'bump' into devel 2020-04-02 00:16:32 +02:00
kdeme fc2fff249b Discv5: Don't pass ip address when external ip is not known 2020-04-02 00:52:34 +03:00
Ștefan Talpalaru eaf4594f77
bump submodules 2020-04-01 23:05:49 +02:00
Ștefan Talpalaru 3ccb2dcb88
Merge branch 'discv5-ip-checks' into bump 2020-04-01 22:48:17 +02:00
tersec ea59f2ecf2
comments-only changes: update a bunch of v0.10.1 spec references to v0.11.0 and explain rationale for extended validation design in code (#847) 2020-04-01 11:41:39 +00:00
Dmitriy Ryajov f811ed63be
use pkill in start.sh to fix mac os (#845) 2020-04-01 10:53:05 +00:00
tersec 6eb4f1f39d
initial attestation aggregation (#769)
* initial attestation aggregation

* fix usage of committee index, vs index in committee; uniformly set trailing/following distance; document how the only-broadcast-if mechanism works better and what aggregation already happens, not otherwise sufficiently clear; use correct BlockSlot across epoch boundaries

* address inconsistent notion of which slot in past to target for aggregate broadcast; follow 0.11.x aggregate broadcast p2p interface topic

* Fix get_slot_signature(...) call after get_domain(...) change required genesis_validators_root

* mark all spec references which aren't dealt with in other PRs as v0.11.1

* update two more spec refs to v0.11.1
2020-04-01 09:59:55 +00:00
tersec cd388bc9bb
extended validation (#812)
* initial extended validation setup

* flesh out all TODO items for attestation and beaconblock verification

* fix finalization and add chronicles debugging messages

* directly use blockPool.headState rather than pointlessly updating it and document this constraint

* fix logic relating to first-attestation checking; support validating blocks across multiple forks
2020-03-31 18:39:02 +00:00
Ștefan Talpalaru 79dd632777
Merge branch 'libbacktrace' into devel 2020-03-31 18:44:43 +02:00
Ștefan Talpalaru 3239b62904
move "--import:libbacktrace" to config.nims
This simplifies the `./env.sh nim c -r ...` scenario.
2020-03-31 14:53:41 +02:00
kdeme 8b9c8a692e
Discv5: Don't pass ip address when external ip is not known 2020-03-31 12:02:13 +02:00
tersec daabb1b5b2
complete all (non-semantic, comment-only) 0.11.0 -> 0.11.1 beacon chain spec updates, mark all beacon chain v0.11.0 spec references as v0.11.1, and remove now unnecessary/unused UpdateFlags vars from 4 test fixtures (#841) 2020-03-30 23:40:24 +00:00
Ștefan Talpalaru e37c12b810
Merge branch 'peerinfo' into devel 2020-03-30 19:55:24 +02:00
tersec f5f939bd31
0.11.1 beacon chain spec update (#836)
* initial 0.11.1 spec commit; no test regressions and finalizes in eth2_network_simulation

* with BLS 0.10/0.11 available, stop skipping attester slashing, proposer slashing, and voluntary exist operations fixture tests

* switch param orders to group state.{fork, genesis_validators_root}; bump spec/datatypes spec version for network purposes

* mark attestation construction and broadcast and some minimal/mainnet constants as 0.11.1-compatible; remove phase 1 sharding constants from minimal which don't exist in that preset
2020-03-30 11:31:44 +00:00
Ștefan Talpalaru 97abe77398
close unused PeerInfo instance
Should not be needed from the GC's point of view, but needed when
gathering Future.state statistics, due to `PeerInfo.lifefut`.
2020-03-30 00:23:01 +02:00