Dustin Brody
05d1d1246a
bump a couple more eth2 phase0 spec refs to v0.11.1
2020-04-17 16:37:52 +03:00
Dustin Brody
943a7da610
bump some eth2 phase0 spec refs to v0.11.1
2020-04-17 16:37:52 +03:00
Dustin Brody
4f970a067a
fix variable offset bounding/comparison
2020-04-17 16:37:52 +03:00
Dustin Brody
71e802c740
harden SSZ reader
2020-04-17 16:37:52 +03:00
Jacek Sieka
8b6c51e78d
secp: convenience api ( #897 )
2020-04-17 15:29:49 +02:00
Zahary Karadjov
a4830976ab
hotfix: fix the selecting of the syncing protocol handlers
2020-04-16 15:01:19 +03:00
Ștefan Talpalaru
7b8d6ea61c
bump vendor/nimbus-build-system ( #894 )
...
* bump vendor/nimbus-build-system
* change beacon_node banner
* beacon_node: update copyright years
* version.nim is imported in beacon_chain.nimble
2020-04-16 00:20:27 +02:00
Zahary Karadjov
c44d66c697
Fix more typos
2020-04-16 01:01:18 +03:00
Zahary Karadjov
99f9bc4eee
Fix the inspector build
2020-04-16 01:01:18 +03:00
Zahary Karadjov
672f690bf6
Implement most of the v0.11.1 networking changes
2020-04-16 01:01:18 +03:00
Zahary Karadjov
8d639d9bd7
Avoid accidental memory allocations in SSZ
2020-04-16 01:01:18 +03:00
Zahary Karadjov
22e5f8165e
Don't use `defer` in eth2_network to avoid https://github.com/nim-lang/Nim/issues/13899
2020-04-16 01:01:18 +03:00
Zahary Karadjov
f34fd46e3a
Add snappy and protobuf-serialization; Use the latest FastStreams API
2020-04-16 01:01:18 +03:00
Dustin Brody
d559f4ee89
create distinct CommitteeIndex type
2020-04-15 09:59:49 +00:00
Dustin Brody
f49dbf68e6
refactor some Merkle proof generation code outside tests; remove unused variables/functions
2020-04-15 09:59:49 +00:00
Jacek Sieka
8eafa6e094
fork: push defect ( #888 )
2020-04-15 11:21:22 +02:00
Ștefan Talpalaru
b7a32a17ba
bump submodules
...
and remove failing syncManagerGroupRecoveryTest
2020-04-14 18:21:56 +02:00
Viktor Kirilov
cab68c28ef
fixed name in logging - was causing confusing (and wrong) output regarding the filalized slots
2020-04-13 18:17:24 +03: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
tersec
ccbbce79a9
Mostly remove skipMerkleValidation by fixing Merkle proof construction/usage ( #879 )
...
* refactor and fix merkle proof construction in test suite and thereby remove most remaining skipMerkleValidation flags, now unnecessary
* a few non-semantic comment update/removals
2020-04-10 15:59:17 +02:00
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
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
Jacek Sieka
e1d18b431b
reraise defect in generic exception handler
2020-04-06 20:08:39 +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
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
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
kdeme
fc2fff249b
Discv5: Don't pass ip address when external ip is not known
2020-04-02 00:52:34 +03: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
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
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
Zahary Karadjov
46e395c647
Switch to GossipSub
2020-03-25 23:32:05 +02:00
Zahary Karadjov
22876da593
Fix gcsafety issues in the test suite
2020-03-24 22:14:40 +02:00
Zahary Karadjov
86a3bea1ec
Use the latest Chronos and Libp2p
2020-03-24 22:14:40 +02:00
kdeme
b80a5b90df
Adjustments to store bootnode enrs in discovery object + bump nim-eth
2020-03-24 22:14:40 +02:00
Zahary Karadjov
f2434139e9
Hotfix: Don't report failure to connect to bootstrap node due to the initial sync taking more than 30 seconds
2020-03-23 22:29:50 +02:00
cheatfate
d63e4870e6
Fix Stream EOF problem.
2020-03-23 22:21:27 +02:00
zah
bd5400aea4
Oops, change back the default network_type in the master branch
2020-03-23 18:19:31 +02:00
Zahary Karadjov
64fbad1efa
Some build fixes required for pushing testnet0
2020-03-23 16:13:11 +02:00
Zahary Karadjov
46a3009c63
Restore the address file feature (and use it for synchronization in local sim)
2020-03-23 14:59:33 +02:00
Zahary Karadjov
4623aa81ec
Clean up some obsolete code
2020-03-23 14:59:33 +02:00
Zahary Karadjov
d5e4e640b4
Merge libp2p_backend into eth2_network
2020-03-23 14:59:33 +02:00
Zahary Karadjov
0c018cb68a
Mechanically remove all mentions of the daemon from the code
2020-03-23 14:59:33 +02:00
Zahary Karadjov
8300cee131
Merge the contents of backends_common in libp2p_backend
2020-03-23 14:59:33 +02:00
Zahary Karadjov
5868afe341
Restore compilation with -d:p2pdump
2020-03-22 19:28:11 +02:00
Zahary Karadjov
286d6e14da
Attempt to fix the Travis ARM build
2020-03-22 19:00:09 +02:00
Zahary Karadjov
1d78a43724
Don't return Option[BlockRef] because BlockRef is a ref type
2020-03-22 19:00:09 +02:00
Zahary Karadjov
d2b7ee27de
The RPC service listens on localhost by default
2020-03-22 19:00:09 +02:00
Zahary Karadjov
7d2381240f
Bump nim-eth and nim-json-rpc
2020-03-22 19:00:09 +02:00
Zahary Karadjov
19847bbd20
Remove some warnings
2020-03-22 19:00:09 +02:00
Zahary Karadjov
5a2a52869e
Add a RPC proc similar to /spec/eth2_config
2020-03-22 19:00:09 +02:00
Zahary Karadjov
adcec61081
Initial implementation of a JSON-RPC service
2020-03-22 19:00:09 +02:00
tersec
53e4b0a26c
complete (except for get_domain(...)) 0.11.0 beacon chain spec update ( #822 )
...
* complete (except for get_domain(...)) 0.11.0 beacon chain spec update
* mark compute_start_slot_at_epoch(...), is_active_validator(...), compute_signing_root(...), and get_seed(...) as 0.11.0
2020-03-22 16:03:07 +00: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
Mamy Ratsimbazafy
ccace9a034
Fix shortlog crypto ( #818 )
...
* fix shortlogs of crypto types
* Valid signature without a "real: " prefix tag
* remove 0x prefix
2020-03-19 17:18:48 +01:00
Dustin Brody
f7ecd09e95
mark aggregate(...), AttesterSlashing, IndexedAttestation, AttestationData, Deposit, DepositData, VoluntaryExit, BeaconBlock, BeaconBlockHeader, BeaconState, HistoricalBatch, Fork, SigningRoot, SignedVoluntaryExit, SignedBeaconBlock, SignedBeaconBlockHeader, get_current_epoch(...), and get_randao_mix(...) as 0.11.0
2020-03-17 12:06:56 +02:00
Dustin Brody
cae1c0fd1a
address beacon_node TODO regarding missing proposer index; mark initiate_validator_exit(...), is_eligible_for_activation_queue(...), Attestation, DepositMessage, BeaconBlockBody, PendingAttestation, Eth1Data, and integer_squareroot(...) as 0.11.0
2020-03-17 12:06:56 +02:00
Dustin Brody
ebcde664e5
mark decrease_balance(...), get_validator_churn_limit(...), network spec version, Checkpoint, compute_epoch_at_slot(...), get_active_validator_indices(...), and get_committee_count_at_slot(...) as 0.11.0
2020-03-17 12:06:56 +02:00
Dustin Brody
313109c743
align process_block(...) name with spec; fix beacon chain proposer index generation when some validators aren't active to fix the two regressing 0.11.0 block sanity tests
2020-03-17 12:06:56 +02:00
Dustin Brody
11300fc290
fix finalization
2020-03-17 12:06:56 +02:00
Dustin Brody
6068dd960b
initial 0.11.0 spec version update
2020-03-17 12:06:56 +02:00
tersec
33687c3e41
remove lmdb ( #809 )
2020-03-14 11:33:37 +01:00
Mamy André-Ratsimbazafy
2aae54a15f
Fix serialization of deposits
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
c1c7435808
Skip tests:
...
- EF - attester slashings - 2 tests
- EF - sanity blocks - 1 test
- NBC - attestation - 1 test
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
88002ddb02
Fix ambiguous call newKeyPair
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
28dc8a6a29
Fix mock signatures/validator keys and stack smashing
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
65d668c3f6
Update validator keygen
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
14bc9e60ca
"init" should handle fake/invalid pubkeys and signatures
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
3c140d0c3d
Try to solve the stack smashing / discriminant changes object branch
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
31bd13a5d3
init for mainchain_monitor
2020-03-13 12:20:41 +00:00
Mamy André-Ratsimbazafy
bfd4df912e
Update to BLS v0.10.1
2020-03-13 12:20:41 +00:00
Ștefan Talpalaru
ab0879958a
don't log message content in P2PStream.readMsgBytes()
...
because it adds too much noise to the trace logs
2020-03-12 13:50:21 +02:00
cheatfate
d802fa593c
Add pubsub message logging.
...
Initial commit of logtrace tool.
2020-03-11 17:26:30 +00:00
Dustin Brody
0d3de00714
remove unused imports
2020-03-11 10:50:55 +00:00
tersec
a327c82820
Revert "finalizing state_transition ( #792 )"
...
This reverts commit 91d75bdfdd
.
2020-03-10 16:44:42 +00:00
Joao Gabriel Carvalho
91d75bdfdd
finalizing state_transition ( #792 )
2020-03-10 12:19:00 +01:00
Jacek Sieka
7902d070cd
prefer endians2
2020-03-05 18:13:28 +02:00
Jacek Sieka
9a3db7a81f
[WIP] Fake bls at runtime ( #735 )
...
* Initial implementation of runtime bls skipping.
Add libnfuzz skipBLSValidation handling, check that it propagates.
* Rename skipBLSValidation -> skipBlsValidation, start skipStateRootValidation
* Replace skipValidation flags with more granular flags.
Also added skipBlockParentRootValidation flag
Mainly replaced with skipBlsValidation but also StateRoot or
BlockParentRootValidation flags where appropriate.
* Adjust interop test to pass when skipping merkle validation.
* Stop skipping validation for mainchain_monitor.
* Remove comment.
* Also skipMerkleValidation for test_beacon_chain_db.
2020-03-05 13:52:10 +01:00
kdeme
c382c6434a
Use peerPool len + fix removal of peerPool on disconnect
2020-03-05 13:17:34 +02:00
kdeme
02717a6354
Use randomNodes from discv5 instead of lookup
2020-03-05 13:17:34 +02:00
Joao Gabriel Carvalho
91f87b55b4
SignedBeaconBlock in state_transition ( #773 )
...
* using SignedBeaconBlock in state_transition
2020-02-29 16:15:44 +01:00
cheatfate
ab1a08084b
One more attempt to fix compilation error.
2020-02-28 14:44:41 +02:00
cheatfate
278b91d6ce
Supporting 2 backends is hell.
2020-02-28 14:44:41 +02:00
cheatfate
5ae0026f72
Fix one more compilation error.
2020-02-28 14:44:41 +02:00
cheatfate
dd316e04d1
Fix one more compilation error.
2020-02-28 14:44:41 +02:00
cheatfate
0f0a839444
Fix compilation errors.
2020-02-28 14:44:41 +02:00
cheatfate
547c8a44d0
Replace Table[PeerID, Peer] with PeerPool.
...
Add `score` Peer.
2020-02-28 14:44:41 +02:00
Ștefan Talpalaru
c2c570fcb0
bump submodules
...
plus a few small modifications
2020-02-26 01:14:20 +01:00
Dustin Brody
3d99c7b28e
mark some spec functions .used. to avoid warnings; misc cleanups
2020-02-25 09:17:06 +00:00
Zahary Karadjov
fa0f3b4468
Use the specified extip address in the advertised ENR records
2020-02-22 20:54:15 +02:00
Dustin Brody
425b0e13da
remove potential error condition in getAttestationTopic; subscribe to all topics in parallel; add test cases for larger-than-ATTESTATION_SUBNET_COUNT committee indexes
2020-02-21 19:44:03 +00:00
Dustin Brody
62584b633e
update relevant portions of attestation aggregation spec version; tweak inspector
2020-02-21 19:44:03 +00:00
Dustin Brody
a8567cafb5
mark out where/how AttestationData and Attestation construction are honest validator-compliant
2020-02-21 19:44:03 +00:00
Dustin Brody
32872c7ee6
bump spec version to 0.10.1 (more accurate than 0.10.0); fix inspector building
2020-02-21 19:44:03 +00:00
Dustin Brody
6c87af9aab
split attestation beacon topic per honest validator spec
2020-02-21 19:44:03 +00:00
Dustin Brody
bced5ca656
implement is_proposer(...)
2020-02-21 19:44:03 +00:00
Dustin Brody
4782ae06e6
implement get_committee_assignment(...) by spec transcription
2020-02-21 19:44:03 +00:00
Dmitriy Ryajov
08915ed597
bump libp2p and increase bootstrap timeout
2020-02-21 12:03:19 -06:00
Jacek Sieka
c25f8d4adf
sqlite kvstore backend ( #749 )
2020-02-20 11:49:34 +01:00
Zahary Karadjov
9e58e22761
[skip ci] remove an obsolete comment
2020-02-20 10:58:38 +02:00
cheatfate
5742299c94
Fix freezes in connection initialization.
2020-02-20 10:58:38 +02:00
Zahary Karadjov
880b981a0a
Don't wait for 10 seconds when connecting to the network
2020-02-19 12:45:34 +02:00
Zahary Karadjov
55886ff0ac
More proper fix replacing hotfix 052a6ac3bc
...
nim-eth was bumped to take advantage of a fixed `==` for public eth keys
2020-02-19 11:59:38 +02:00
Zahary Karadjov
3b9e9fefa8
Make the persistent network keys compatible with the Go daemon
...
The daemon requires its key file to be encoded as ProtoBuf value
with a proper `key scheme` discriminator.
2020-02-19 10:58:10 +02:00
Zahary Karadjov
1b1cd915db
Support ENR boot records with the Go daemon
2020-02-19 10:26:32 +02:00
Zahary Karadjov
052a6ac3bc
Hotfix: disable the bootstrap node connectivity check
...
This used to behave properly before the rebase, but currently
it forces the bootstrap node to exit, because it ends up being
launched with an ENR list telling it to connect to itself.
The root cause will be investigated in a follow-up PR.
2020-02-18 20:42:25 +02:00
Zahary Karadjov
57811dce89
Don't log unwanted lines in beacon_node --help
2020-02-18 12:53:49 +02:00
Zahary Karadjov
b2d5aba749
Advertise the TCP port of the bootstrap node properly
2020-02-18 12:53:49 +02:00
Zahary Karadjov
2a3e40e298
Fix test_discovery_helpers
2020-02-18 12:53:49 +02:00
Zahary Karadjov
2c814db750
Temporary switch to supporting only ENR bootstrap addresses
...
Turns out the DiscV5 code relies heavily on the presence of ENR
records at the moment, so we cannot drive it with ENodes. @kdeme
is working on refactoring that will relax these requirements.
2020-02-18 12:53:49 +02:00
Zahary Karadjov
7f395e554a
WIP Working local network sim with discovery
...
* The bootstrap_nodes.txt file in the node's data dir is now optional
* Log more data on start-up
* Use the latest ENR APIs
* Fix simulation build errors
2020-02-18 12:53:49 +02:00
Zahary Karadjov
d2f59ebab9
Switch to ENR records in the bootstrap_nodes.txt file
2020-02-18 12:53:49 +02:00
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
Zahary Karadjov
4fb654f2af
Remove some SSZ compilation warnings
2020-02-18 12:53:49 +02:00
Zahary Karadjov
a620c83916
Handle status bar spanning multiple lines (relevant for the Tmux network sim)
2020-02-18 12:53:49 +02:00
Dustin Brody
bde1eefdcf
improve option naming
2020-02-17 22:00:41 +00: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
Jacek Sieka
d99ce1bcf0
fix json compile
2020-02-08 19:42:45 +01:00
Jacek Sieka
521b0ed6ba
Clean 20200205 ( #729 )
...
* beacon node code cleanup
* rudimentary error checking on mainnet monitor
* start client even when sending deposit
* work around missing block number exception
* connect to testnet with web3 url
* pretty-print digests in json
2020-02-07 08:13:38 +01: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
Jacek Sieka
7efd113a75
store empty slot states also
2020-02-05 19:24:07 +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
Dmitriy Ryajov
b39f36b49b
use floodsub instead of gossipsub
2020-02-05 17:20:04 +01: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
Dustin Brody
e4922cb177
implement compute_signing_root() and mark some functions as 0.10.1-compatible
2020-02-04 12:24:30 +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
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
182593ccb5
Tenative fix for the test suite
2020-01-29 10:10:28 +02:00
Zahary Karadjov
2a3c237bbb
Handle malformed SSZ inputs properly
2020-01-29 10:10:28 +02:00
Dustin Brody
60b1775879
update check_attestation/process_attestation() to 0.10.1 and fill in missing check
2020-01-28 12:07:33 +02:00
Dustin Brody
3efbe36c30
additional 0.10.1 updates where already-implemented code is already done
2020-01-27 12:50:54 +00: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
7dc2434e0d
clean up attestation logging
2020-01-23 18:48:26 +01:00
Ștefan Talpalaru
9cade2a5c4
LMDB: fix comment
2020-01-23 18:23:27 +02: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
Dustin Brody
50f633209c
mark a couple dozen 0.9.2/0.9.4 spec locations as still consistent with 0.10.0; no functional changes
2020-01-22 13:03:45 +00:00
Jacek Sieka
6cfa28e1f5
fix finalization cleanup
...
* add block pool finalization test
2020-01-21 15:53:53 +02:00
Zahary Karadjov
0743b3507c
Fix the build after the rebase
2020-01-21 01:26:57 +02:00
Zahary Karadjov
63b98f0334
Less confusing debug logging
2020-01-21 01:26:57 +02:00
Zahary Karadjov
c65575d105
Improved logging related to bootstrap nodes
2020-01-21 01:26:57 +02:00
Zahary Karadjov
589a3f06df
Fix an error introduced during rebasing
2020-01-21 01:26:57 +02:00
Zahary Karadjov
4848b12050
Detect and use Lighthouse's boot_enr.yaml files
2020-01-21 01:26:57 +02:00
Zahary Karadjov
07d329acb8
Wire-up the peer dialing loop and introduce --max-peers option
2020-01-21 01:26:57 +02:00
Zahary Karadjov
52878405b7
Integrate Discovery V5 and support ENR bootstrap records
2020-01-21 01:26:57 +02:00
Zahary Karadjov
74fc34eef2
Restore some constants to pass the constants & presets test
2020-01-21 01:26:57 +02:00
Zahary Karadjov
7e356b3fa6
Restore compilation with trace-level logging; Fixes #642
2020-01-21 01:26:57 +02:00
Zahary Karadjov
095b271bd4
Implement a loader for custom const presets
...
The loader has been tested with the presets published by Lighthouse.
You can try connecting to one of their testnets by running:
cd nim-beacon-chain
./connect-to-testnet lighthouse/testnet0
2020-01-21 01:26:57 +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
Ștefan Talpalaru
14e1e3af52
LMDB: create db dir
2020-01-20 13:39:37 +00:00
Ștefan Talpalaru
7113259137
lmdb: 32-bit Windows fixes
2020-01-20 13:39:37 +00: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
d853d7c024
remove SigKey.init (unused, fixes #664 )
2020-01-18 10:22:17 +01:00
Jacek Sieka
3439763a9e
fix beacon node init
...
* update forkversion correctly
* ensure supplied state snapshot starts at genesis - we don't support
anything else
* more database sanity checks
2020-01-17 21:26:28 +00:00
Dustin Brody
c301e5d42f
mark 49 0.9.2/0.9.4 spec functions/data types as 0.10.0
2020-01-15 12:34:16 +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
Mamy André-Ratsimbazafy
b49003988a
Add Epoch Processing to nbench
2020-01-15 10:03:56 +00:00
Dustin Brody
8eaebf7163
update to spec version 0.10.0
2020-01-14 18:17:16 +00:00
Ștefan Talpalaru
2f68ee0ffe
new libp2p API
2020-01-13 20:26:19 +01:00
Ștefan Talpalaru
5d1e20012a
import base58 from stew
2020-01-13 20:02:29 +01:00
Ștefan Talpalaru
7c4d636f83
undo try blocks; that's not the traceback's source
2020-01-13 19:02:38 +01:00
Ștefan Talpalaru
468e0815b3
not a CatchableError
2020-01-13 18:53:59 +01:00
Ștefan Talpalaru
003a4c90be
sendErrorResponse(): don't crash when unable to send to peer
2020-01-13 17:12:49 +01: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
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
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
350a6c071a
mark a couple compatible dozen 0.9.2 functions/data structures as 0.9.3
2019-12-18 16:13:39 +00:00
Dustin Brody
0328cd49bf
mark several more functions and data structures as 0.9.3
2019-12-18 10:00:17 +00:00
Dustin Brody
1610981be6
mark several more spec-referencing code/data parts as 0.9.3
2019-12-17 16:51:46 +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
Jacek Sieka
22c44d254c
fix decoding for 0.9.3 types
2019-12-17 11:25:36 +01:00
Zahary Karadjov
15f289a281
Temporary switch back to the LibP2P daemon as the default choice
2019-12-17 00:13:51 +02:00
Dustin Brody
c824416f56
initial 0.9.3 spec update
2019-12-17 00:06:03 +02:00
Jacek Sieka
8c104a0b94
inspector: add readme entry, decoding option
2019-12-16 16:08:30 +02:00
Jacek Sieka
963f23e5ea
remove obsolete insecure comment
2019-12-16 13:36:39 +01:00
Jacek Sieka
c66ca39cee
update heads when adding resolved blocks
2019-12-16 12:18:08 +02:00
Jacek Sieka
4e85b50cb6
update head while syncing
2019-12-16 12:18:08 +02:00
Dustin Brody
741570113b
properly construct attestation data for selected slot
2019-12-13 09:04:30 +00:00
Dustin Brody
fbdb078eb3
fix return type to properly construct AggregateAndProof; check ATTESTATION_PROPAGATION_SLOT_RANGE as required, maintaining consistent slot offset
2019-12-13 09:04:30 +00:00
Dustin Brody
5880fc22ad
roadmap rest of naive attestation aggregation
2019-12-13 09:04:30 +00:00
Dustin Brody
c4daa726b5
fix AggregateAndProof definition
2019-12-13 09:04:30 +00:00
Dustin Brody
e2c68e075f
outline general flow of naive attestation aggregation
2019-12-13 09:04:30 +00:00
Dustin Brody
294db6aaca
initially implement specified attestation aggregation functions and data structures
2019-12-13 09:04:30 +00:00
tersec
cb1bc6cbf1
move attesting up from halfway to one third of the way through slots ( #643 )
...
* per honest validator and naïve/simple aggregator attestation specs, move attesting up from halfway to one third of the way through slots
* Update beacon_chain/beacon_node.nim
Co-Authored-By: Jacek Sieka <jacek@status.im>
2019-12-11 14:02:07 +01:00
Jacek Sieka
a3145f0f5c
cleanups
...
* move stuff out of beaconnode
* fix use-after-free in query
2019-12-10 14:47:52 +00:00
Zahary Karadjov
10e6d4842f
Local sim finalizes with native LibP2P
2019-12-10 15:02:16 +02:00
Zahary Karadjov
98656377a3
Eliminate the code duplication in the LibP2P back-ends
2019-12-10 15:02:16 +02: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
Jacek Sieka
eea523a89e
logging fixes
...
* don't log out-of-sync when there's no work to do
* small logging fixes
2019-12-10 10:18:30 +00: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
362ef752dc
dedeplicate some functions duplicated between libp2p_backend and libp2p_daemon_backend; remove some unused declared variables
2019-12-06 12:55:13 +00:00
Dustin Brody
5729ceb58e
rename notice field
2019-12-06 12:12:59 +00:00
Dustin Brody
86f267bc5d
switch debug to notice and add some contextual information
2019-12-06 12:12:59 +00: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
kdeme
3b3a2b10f1
First attempt to have some fuzz tests exported for the fuzzing framework
2019-12-03 14:33:47 +02:00
Zahary Karadjov
a1198e5532
web3 fixes suggested by @yglukhov [skip ci]
2019-12-03 14:10:47 +02:00
Jacek Sieka
afc0686b36
save ssz dummps during processing ( #471 )
2019-12-03 11:32:27 +00:00
Jacek Sieka
c457904a61
avoid recursion when getting lmd ancestors
2019-12-03 13:24:16 +02:00
Zahary Karadjov
a641331448
Reduce the sync-related tracing in the testnets [skip ci]
2019-12-03 13:07:43 +02:00
Zahary Karadjov
ee2448b221
Simple validator onboarding
...
On your very first connection to each testnet, you'll be asked to
become a validator. Please consult our private repo for a Goerli
Eth1 private key that you can use for deposits.
Other changes:
* Added a simple wrapper ./connect-to-testnet script calling the
nims file in the correct environment. No extension was used to
make the command the same on Unix and Windows.
* Bumped a number of modules with fixes from this week
* `make testnet0` and `make testnet1` will no longer delete your
existing database. This is considered a more appropriate behavior
for testing forward sync.
2019-12-03 02:23:17 +02:00
Ștefan Talpalaru
7682a010a9
remove getCurrentExceptionMsg()
2019-12-02 22:06:42 +02:00
Dustin Brody
e88e559caf
render visible gradual validator emptying on catchup
2019-12-02 18:24:30 +02:00
Jacek Sieka
90212eed2a
avoid producing blocks/attestations when out of sync
...
this is a temporary measure until we figure something better out - as it
stands, we'll advance with empty slots and crash because all validators
are out.
2019-12-02 15:26:42 +00:00
Jacek Sieka
2a728d9468
fix stack overflow in isAncestor recursion
2019-11-28 17:36:07 +02:00
Jacek Sieka
c98a0d28ae
add workaround for stack overflow on block add
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
Jacek Sieka
63f49eff76
document slot better
2019-11-27 15:14:20 +01:00
Jacek Sieka
e6ae9977b2
clarify slot time
2019-11-27 14:59:54 +01:00
Zahary Karadjov
8c3ea1cabf
Handle missing blocks better in block_pool.getBlockRange
2019-11-27 13:45:34 +02:00
Zahary Karadjov
897176761d
even more tracing for testnet1 [skip ci]
2019-11-27 11:21:45 +02:00
Dustin Brody
6f650ca144
avoid pointless stream usage for main basic type in SSZ objects ( #596 )
...
* avoid pointless stream usage for uint64 in SSZ objects
2019-11-26 18:22:36 +00: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
Dustin Brody
bde20436e8
~50% speedup by fast-pathing Eth2Digest merkle hashing
2019-11-26 15:23:27 +00:00
Zahary Karadjov
843c461af6
Remove some debugging output
2019-11-26 02:47:41 +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
Zahary Karadjov
ff3da4e152
more network traffic tracing
2019-11-26 02:45:25 +02:00
Zahary Karadjov
957645d752
Fix the bulds with json logging enabled
2019-11-26 02:45:25 +02:00
Zahary Karadjov
acd490916f
Attempt to fix the failing tests in CI
2019-11-26 02:45:25 +02:00
Zahary Karadjov
258f6f6334
detailed tracing in block_pool.getBlockRange
2019-11-26 02:45:25 +02:00
Zahary Karadjov
4c2ded25a6
Add detailed tracing for blocks by range requests
2019-11-26 02:45:25 +02:00
Yuriy Glukhov
777b3f4e29
State/block pruning
2019-11-26 02:45:25 +02:00
Jacek Sieka
76d3e74b02
fix head update message
2019-11-25 18:50:45 +01:00
Jacek Sieka
a82869c03d
add validators even if they're not in startup state
2019-11-25 18:31:22 +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
904283e33e
make mount(...) public again
2019-11-25 14:48:59 +00:00
Dustin Brody
b82328b148
convert hash_tree_roots_prefix(...) to an iterator
2019-11-25 14:48:59 +00:00
Dustin Brody
c3d2634b97
re-export beginRecord(...)
2019-11-25 14:48:59 +00: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
Jacek Sieka
fd4de5de0f
start untangling beaconnode ( #589 )
...
* Move BeaconNode type to its own file (fewer imports)
* disentangle sync protocol/request manager
* fix some old nimisms
* de-fear some logs
* simplify eth1 data production
* add stack tracing to release builds
* drop release compile flag for testnet
2019-11-25 15:36:25 +01:00
Yuriy Glukhov
2e875ea17e
Better connection error handling in MainchainMonitor
2019-11-25 13:45:53 +02: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
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
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
827956b5b3
remove a pre-Nim 0.20.x workaround
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
c7c439ac61
use bounded List[] SSZ type for more hashing consistency with spec
2019-11-18 09:35:17 +01:00
Jacek Sieka
14712bbbdc
random warning fixes
2019-11-15 12:05:18 +01: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
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
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
3dcc00779a
replace deprecated toSet(...) with toHashSet(...); replace implicit with more explicit default constructor for readability
2019-11-13 13:49:38 +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
Zahary Karadjov
5a93e50b5e
Sync-related fixes:
...
* off-by-one error in the returned range of blocks
* larger request time-outs to deal with non-responsive servers
* fix an unhandled exception when we fail to deliver a response chunk
2019-11-12 23:43:38 +00:00
cheatfate
6e8a518077
Fix getPersistentNetIdentity() do not use daemon anymore.
...
Fix change PeerInfo to MultiAddress.
2019-11-12 23:43:38 +00:00
Dustin Brody
1f352bf440
fix trace compilation
2019-11-12 16:35:12 +01:00
Dustin Brody
fb5d9edb7c
keep types consistent
2019-11-12 14:49:26 +00:00
Dustin Brody
d5ce142511
fix network sim finalization; remove get_attestation_data_slot(...); remove 2 more get_crosslink_committee(...) calls
2019-11-12 14:49:26 +00:00
Zahary Karadjov
07f0bd9378
Log the executable version at start-up [skip ci]
2019-11-12 00:05:59 +00:00
Zahary Karadjov
47940928a6
Reduce compilation differences between client and server nodes
2019-11-11 23:30:21 +00:00
Zahary Karadjov
ac5aabd569
Use the latest confutils
2019-11-11 23:29:36 +00:00
Zahary Karadjov
ed9cb274a2
Restore a change mysteriously lost during rebasing
2019-11-11 23:29:36 +00:00
Zahary Karadjov
f5e9b9a922
Allow running local nodes without attached validators
...
The number of user nodes is now specified with `USER_NODES`.
To make the instructions more stable, the "numeric id" of the user
nodes will be starting from 0 (so you can always use `run_node.sh 0`
to start a user node).
If you specify a node index above the total number of nodes, you'll
launch a node without any validators attached (this is useful for
testing the sync for example).
2019-11-11 23:29:36 +00:00
Zahary Karadjov
22591deced
Safer testnet restarts; Working CLI queries for inspecting the genesis states
...
When the connect_to_testnet script is invoked it will first verify that
the genesis file of the testnet hasn't changed. If it has changed, any
previously created database associated with the testnet will be erased.
To facilitate this, the genesis file of each network is written to the
data folder of the beacon node. The beacon node will refuse to start if
it detects a discrepancy between the data folder and any state snapshot
specified on the command-line.
Since the testnet sharing spec requires us to use SSZ snapshots, the Json
support is now phased out. To help with the transition and to preserve the
functionality of the multinet scripts, the beacon node now supports a CLI
query command that can extract any data from the genesis state. This is
based on new developments in the SSZ navigators.
2019-11-11 23:29:36 +00:00
Zahary Karadjov
a644839b79
Dynamic SSZ navigator
2019-11-11 23:29:36 +00:00
Dustin Brody
d457dfee81
switch all but 4 remaining callers to get_crosslink_committee(...) to get_beacon_committee(...)
2019-11-11 11:46:03 +00:00
Dustin Brody
568fa1dcb9
mark functions, constants, and data structures unchanged by 0.9.1 as such
2019-11-11 10:25:57 +00:00
Dustin Brody
949d735155
fix remaining test 0.9.0 test fixtures and switch back to non-transitiontest setup; remove get_committee_count(...); keep SHARD_COUNT consistent with MAX_COMMITTEES_PER_SLOT
2019-11-11 10:25:57 +00:00
Dustin Brody
cb4a86756b
update get_seed(...) and get_beacon_proposer_index(...) to 0.9.0, implement compute_proposer_index(...), and render 3 more test fixtures working ( #532 )
...
* update get_seed(...) and get_beacon_proposer_index(...) to 0.9.0, implement compute_proposer_index(...), and render 3 more test fixtures working
* rm stray Crosslink reference which prevented static SSZ tests from building
* remove references to removed tests in attestations test fixture; add minimal-preset block sanity test, plus all but one of mainnet tests for block sanity to transition fixtures
2019-11-10 01:03:41 +01:00
Ștefan Talpalaru
c1a63035b9
beacon_node: "--version" option [skip ci]
...
fixes #466
2019-11-09 17:43:42 +00:00
Dustin Brody
e984b2c932
mark is_valid_merkle_branch(...), process_justification_and_finalization(...), and process_rewards_and_penalties(...) as 0.9.0; update check_attestation(...) to 0.9.0; add 11 working test fixtures, having updated SSZ fixture directory to 0.9.0
2019-11-08 13:23:08 +00:00
Dustin Brody
275fb22c00
flip targeted spec version and ssz test fixtures to 0.9.0; almost completely update BeaconState to 0.9.0; update minimal and mainnet preset constants to 0.9.0; update process_proposer_slashing(...), get_attestation_deltas(...), and get_matching_head_attestations(...) to 0.9.0; mark process_final_updates(...) as 0.9.0
2019-11-08 13:23:08 +00:00
Dustin Brody
3bb95f571f
remove remaining Crosslink and CompactCommittee vestiges
2019-11-08 13:23:08 +00:00
Dustin Brody
61c2cf9415
rm get_compact_committees_root(...), Transfer, and references to 0.9-removed BeaconState.{active_index_roots,compact_committees_roots; temporarily disable genesis interop test pending 0.9 BeaconState
2019-11-08 13:23:08 +00:00
Dustin Brody
68654848cb
update get_attesting_indices(...) to 0.9.0; remove Crosslink from AttestationData to update AttestationData to 0.9.0; rm get_winning_crosslink_and_attesting_indices(...) and get_crosslink_deltas(...)
2019-11-08 13:23:08 +00:00
Dustin Brody
cb5454c4eb
double-check that one can back-infer shard/epoch from slot/committee-index, in preparation for removing crosslink from AttestationData
2019-11-08 13:23:08 +00:00
Dustin Brody
13e662c8dd
remove scaffolding and make get_crosslink_committee(...) a purer wrapper around get_beacon_committee(...)
2019-11-08 13:23:08 +00:00
Dustin Brody
c2ebe482a5
temporarily disable SSZ tests, which fail when trying to read AttestationData or structures which embed it; implemenet get_committee_count_at_slot(...) and get_beacon_committee(...); express get_crosslink_committee(...) in terms of get_beacon_committee(...) and ensure that results are identical
2019-11-08 13:23:08 +00:00
Ștefan Talpalaru
6a1d287652
beacon_node: print name, version and Git revision [skip ci] ( #527 )
2019-11-08 10:33:16 +00:00
cheatfate
97878566b8
Add peers monitoring.
...
Add broadcasters monitoring.
Resolve broadcasters to ids/addresses.
Add ability to switch between FloodSub and GossipSub.
2019-11-08 01:19:35 +02:00
Yuriy Glukhov
568e669b1c
Fixed deposit/contract
2019-11-07 17:23:06 +00:00
Mamy André-Ratsimbazafy
5f6d60abce
remove a lot of XDeclaredButNotUsed spam from SSZ
2019-11-07 15:22:04 +00:00
Dustin Brody
a1f5f3512b
add sanity check for SIGFPE crashes ( #524 )
2019-11-06 15:50:12 +00:00
Dustin Brody
0073555752
transition deposit operation fixtures to 0.9.0 ( #515 )
...
* transition deposit operations fixture to 0.9.0
* mark slash_validator(...) as 0.9.0
* switch remaining non-ref objects to ref objects to maybe avoid crashes in CI
* remove unused helpers/debug_state imports
2019-11-06 15:02:06 +00:00
Yuriy Glukhov
9b39c792d0
Revert f79f9deeb3
a0fbf5464a
94a9c51d8a
( #523 )
2019-11-06 16:56:54 +02:00
cheatfate
f79f9deeb3
Set wasDialed.
...
Add more logging information.
2019-11-06 16:41:24 +02:00
cheatfate
a0fbf5464a
Add logscope.
...
Add more information to logs.
2019-11-06 16:41:24 +02:00
cheatfate
94a9c51d8a
Initial commit.
2019-11-06 16:41:23 +02:00
Ștefan Talpalaru
e2b3f0dadb
announcedAddresses: fix logic error
2019-11-05 23:56:10 +01:00
Ștefan Talpalaru
03f57aab43
bump vendor/nim-libp2p
2019-11-05 23:31:01 +01:00
Ștefan Talpalaru
a417edb5ff
sync_protocol.nim: better error message [skip ci]
2019-11-05 16:02:26 +01:00
Zahary Karadjov
14374504cf
Finalization experiements
...
* Switched to FloodSub
* Testnet0 switched to the minimal preset. All validators deployed on the master node.
2019-11-05 03:13:16 +02:00
Dustin Brody
63e621c27d
initial 0.9.0 spec sync ( #509 )
...
* rename compute_epoch_of_slot(...) to compute_epoch_at_slot(...)
* remove some unnecessary imports; remove some crosslink-related code and tests; complete renaming of compute_epoch_of_slot(...) to compute_epoch_at_slot(...)
* rm more transfer-related code and tests; rm more unnecessary strutils imports
* rm remaining unused imports
* remove useless get_empty_per_epoch_cache(...)/compute_start_slot_of_epoch(...) calls
* rename compute_start_slot_of_epoch(...) to compute_start_slot_at_epoch(...)
* rename ACTIVATION_EXIT_DELAY to MAX_SEED_LOOKAHEAD
* update domain types to 0.9.0
* mark AttesterSlashing, IndexedAttestation, AttestationDataAndCustodyBit, DepositData, BeaconBlockHeader, Fork, integer_squareroot(...), and process_voluntary_exit(...) as 0.9.0
* mark increase_balance(...), decrease_balance(...), get_block_root(...), CheckPoint, Deposit, PendingAttestation, HistoricalBatch, is_active_validator(...), and is_slashable_attestation_data(...) as 0.9.0
* mark compute_activation_exit_epoch(...), bls_verify(...), Validator, get_active_validator_indices(...), get_current_epoch(...), get_total_active_balance(...), and get_previous_epoch(...) as 0.9.0
* mark get_block_root_at_slot(...), ProposerSlashing, get_domain(...), VoluntaryExit, mainnet preset Gwei values, minimal preset max operations, process_block_header(...), and is_slashable_validator(...) as 0.9.0
* mark makeWithdrawalCredentials(...), get_validator_churn_limit(...), get_total_balance(...), is_valid_indexed_attestation(...), bls_aggregate_pubkeys(...), initial genesis value/constants, Attestation, get_randao_mix(...), mainnet preset max operations per block constants, minimal preset Gwei values and time parameters, process_eth1_data(...), get_shuffled_seq(...), compute_committee(...), and process_slots(...) as 0.9.0; partially update get_indexed_attestation(...) to 0.9.0 by removing crosslink refs and associated tests
* mark initiate_validator_exit(...), process_registry_updates(...), BeaconBlock, Eth1Data, compute_domain(...), process_randao(...), process_attester_slashing(...), get_base_reward(...), and process_slot(...) as 0.9.0
2019-10-30 19:41:19 +00:00
Yuriy Glukhov
abbe4075fa
Fixed deposit contract deployment
2019-10-30 17:23:34 +02:00
Zahary Karadjov
72c42838cb
Fix a typo in start.sh; Display the full slot number in the statusbar [skip ci]
2019-10-29 21:48:32 +02:00
Zahary Karadjov
6664f1689f
Use SSZ genesis files
...
Multi-client testing requires more portable formats, and SSZ is
much better specified than our flavour of Json.
Tools like ncli and zcli can be now used to inspect the contents
of the SSZ files.
2019-10-29 19:16:32 +02:00
Zahary Karadjov
1ef9f458ac
Remove hard-coded variables from the manage_testnet_hosts script
2019-10-29 19:16:32 +02:00
Zahary Karadjov
831b562435
Make the use of dynamic Chronicles outputs more optional
2019-10-29 19:16:32 +02:00
Zahary Karadjov
f1ea0cec32
Add support for testnets with mixed quickstart/random deposits
2019-10-29 19:16:32 +02:00
Zahary Karadjov
136a11f681
Fix the build when the Chronicles dynamic output is not used
...
close #504
2019-10-29 03:43:52 +02:00
Zahary Karadjov
f3252a8391
Fix the error 'output device not set for a chonicles dynamic sink'
2019-10-29 03:05:43 +02:00
Zahary Karadjov
734ab64da8
Unix-style command-line params for the 'deposit_contract' binary
2019-10-29 02:20:47 +02:00
Zahary Karadjov
ba0037738b
Removed all code related to the old network metadata files
...
Also switched to a more "standard" naming convention for the
command-line parameters.
2019-10-29 01:04:52 +02:00
Yuriy Glukhov
9d3889cbab
WIP Goerli testnet
2019-10-28 15:51:17 +02:00
Zahary Karadjov
43b70c0330
Restore the ability to run tests/simulation/start.sh manually
2019-10-28 15:28:45 +02:00
Zahary Karadjov
fb220ee600
Preparations for introducing the native libp2p back-end
2019-10-28 15:00:25 +02:00
Zahary Karadjov
dfe3a6f0fb
Switch to Nim v1.0.2
2019-10-28 15:00:25 +02:00
Zahary Karadjov
a6f65cd37e
Add lower-level metrics for the number of gossipsub messages sent/received
2019-10-26 16:37:36 +03:00
Dustin Brody
a9fcaf16a6
stop double-counting attestation-topic attestations ( #501 )
2019-10-25 14:00:55 +00:00
Jacek Sieka
363f918f7b
remove obsolete docs (this is covered in honest validator guide)
2019-10-25 13:55:19 +02:00
Jacek Sieka
ee5d1c1467
minimize imports, specially for spec - cuts 2/3 of ncli build time ( #500 )
...
* minimize imports, specially for spec - cuts 2/3 of ncli build time
* ptr_arith->ptrops
2019-10-25 12:59:56 +02:00
Dustin Brody
700e7d921b
update to beacon chain phase 0 spec version 0.8.4; no substantive changes ( #494 )
2019-10-24 13:36:36 +00:00
Dustin Brody
c9d2815480
implement metrics to count send/received blocks/attestations, to detect network loss
2019-10-24 11:48:56 +03:00
Ștefan Talpalaru
3a2fc249a2
simulation: metric visualisation
2019-10-23 20:57:59 +02:00
Zahary Karadjov
021661180b
Use the latest nim-eth
2019-10-23 19:37:06 +03:00
Jacek Sieka
e8206a7489
fix datadir
2019-10-22 23:18:45 +02:00
Jacek Sieka
bdb70ebe2c
log data dir at startup ( fixes #229 )
2019-10-22 22:53:58 +02:00
Dustin Brody
43f353e665
implement beacon_reorgs_total metric ( #491 )
2019-10-22 13:57:34 +02:00
Dustin Brody
3da4c02bb3
implement beacon_current_live_validators and beacon_previous_live_validators metrics
2019-10-21 20:58:08 +09:00
Jacek Sieka
360afe48a3
fix two races when producing block
...
there be more dragons around
2019-10-08 23:52:50 +09:00