Jacek Sieka
867d8f3223
Perform attestation check before broadcast ( #2550 )
...
Currently, we have a bit of a convoluted flow where when sending
attestations, we start broadcasting them over gossip then pass them to
the attestation validation to include them in the local attestation pool
- it should be the other way around: we should be checking attestations
_before_ gossipping them - this serves as an additional safety net to
ensure that we don't publish junk - this becomes more important when
publishing attestations from the API.
Also, the REST API was performing its own validation meaning
attestations coming from REST would be validated twice - finally, the
JSON RPC wasn't pre-validating and would happily broadcast invalid
attestations.
* Unified attestation production pipeline with the same flow for gossip,
locally and API-produced attestations: all are now validated and entered
into the pool, then broadcast/republished
* Refactor subnet handling with specific SubnetId alias, streamlining
where subnets are computed, avoiding the need to pass around the number
of active validators
* Move some of the subnet handling code to eth2_network
* Use BitArray throughout for subnet handling
2021-05-10 09:13:36 +02:00
tersec
498c998552
abstract over most withStateVars/withState state var usage ( #2484 )
...
* abstract over most withStateVars/withState state var usage
* cleanups
2021-04-13 15:05:44 +02:00
tersec
d3cad92693
remove some BeaconState use and abstract over other uses ( #2482 )
...
* remove some BeaconState use and abstract over other uses
* remove out-of-context comment
2021-04-08 08:24:25 +00:00
Jacek Sieka
74732a23fe
json cleanups ( #2456 )
...
* move json-rpc specific marshalling to rpc
* serialize Epoch/Slot with cast to avoid Defect
* avoid a few eth1 deps
* simplify imports
2021-03-26 15:11:06 +01:00
Jacek Sieka
2695cfa864
EH cleanup ( #2455 )
...
almost 100% raises in nimbus-eth2 now!
* fix some rare exception-related crashes in json-rpc
2021-03-26 07:52:01 +01:00
Joe Clapis
35d9291cfd
Validator APIs now return actual balance instead of effective balance ( #2408 )
2021-03-15 07:19:04 +00:00
Mamy Ratsimbazafy
de1060e7f3
centralize p2p validation in a single file and address https://github.com/status-im/nimbus-eth2/pull/2377#issuecomment-791313118 ( #2383 )
2021-03-06 08:32:55 +01:00
Mamy Ratsimbazafy
d47f53cd9d
Reorg (5/5) ( #2377 )
...
* Reorg things left into networking and gossip_processing
* time -> beacon_clock
* fix builds
2021-03-05 14:12:00 +01:00
Mamy Ratsimbazafy
5d7f9c3a04
Consensus object pools [reorg 4/5] ( #2374 )
...
* Add documentation
* make test doesn't try to build the beacon node :/
2021-03-04 10:13:44 +01:00
Mamy Ratsimbazafy
3276dfc683
Consolidate modules by areas [part 1] ( #2365 )
...
* Move sync in subfolder
* move validator related thingies in validators
* fix binary builds
* update bounds comment [skip ci]
2021-03-02 11:27:45 +01:00
Mamy Ratsimbazafy
08f063aba9
[RFC - Doc] State of Nimbus block & attestation flows ( #2351 )
...
* Expand documentation on block flow [skip ci]
* address review comments [skip ci]
* Update with GossipFlow out [skip ci]
* LocalBlockProposer -> LocalValidatorDuties + WeakSubjectivitySync
* First outline of attestation flow
* finish up prose
2021-03-01 11:22:16 +01:00
Zahary Karadjov
fa99c3b417
Fix #2261
...
Also bumps Confutils to allow setting the hidden --web3-mode param
(to allow testing the eth1 syncing without validators)
2021-01-30 01:32:20 +02:00
Mamy Ratsimbazafy
70a03658e3
Block validation flow v2 + Batch (serial) sig verification ( #2250 )
...
* bump nim-blscurve
* Outline the block validation flow
* introduce the SigVerified types, pass the tests
* Split clearance/quarantine to prepare for batch crypto verif
* Add a batch signature collector
* Make clearance use SigVerified block and split verification between crypto and state transition
* Always use signedBeaconBlock for the onBlockAdded callback
* RANDAO signing_root is the epoch instead of the full block
* Support skipping BLS for testing
* Fix compilation of the validator client
* Try to fix strange errors MacOS and Jenkins (Clang, unknown type name br_hmac_drbg_context in stdlib_assertions.nim.c)
* address https://github.com/status-im/nimbus-eth2/pull/2250#discussion_r561819858
* address https://github.com/status-im/nimbus-eth2/pull/2250#discussion_r561828025
* onBlockAdded callback should use TrustedSignedBeaconBlock https://github.com/status-im/nimbus-eth2/pull/2250#discussion_r561837261
* address https://github.com/status-im/nimbus-eth2/pull/2250#discussion_r561828946
* Use the application RNG: https://github.com/status-im/nimbus-eth2/pull/2250#discussion_r561815336
* Improve codegen of conversion zero-cost)
* Quick fixes with loadWithCache after #2259 (TODO: graceful error since pubkey validations is now done first in signatures_batch)
* Graceful handle rogue pubkeys and signatures now that those are lazy-loaded
2021-01-25 20:45:48 +02:00
Zahary Karadjov
7363bf3c7c
Fix a logical typo in beacon_api/validator.getStatus
2020-12-03 21:24:01 +02:00
cheatfate
f6285d8381
Fix proposeSignedBlock() become sync.
2020-12-03 11:40:08 +02:00
cheatfate
088b001388
Fix get_v1_beacon_states_stateId_committees_epoch() to use optional arguments properly.
...
Optimize get_v1_beacon_pool_attestations() a bit.
2020-12-03 11:40:08 +02:00
cheatfate
21ef0f3a57
Fixes for get_v1_beacon_states_stateId_validators() and get_v1_beacon_states_stateId_validators_validatorId().
2020-12-03 11:40:08 +02:00
cheatfate
9afafb54f5
get_v1_beacon_states_stateId_validator_balances() implementation.
2020-12-03 11:40:08 +02:00
cheatfate
5dade7b441
post_v1_beacon_blocks() implementation.
2020-12-03 11:40:08 +02:00
cheatfate
5f392893c0
Change approach for get_v1_beacon_pool_attestations() to use hexadecimal strings.
2020-12-03 11:40:08 +02:00
cheatfate
9e7f8b37c7
get_v1_beacon_pool_attestations() implementation.
2020-12-03 11:40:08 +02:00
cheatfate
7e4ff7a740
Implementation of post_v1_beacon_pool_attester_slashings() and post_v1_beacon_pool_proposer_slashings().
...
Remove doAssert.
2020-12-03 11:40:08 +02:00
cheatfate
6cae25701b
Implementation of beacon_pool_attester_slashings(), beacon_pool_proposer_slashings() and beacon_pool_voluntary_exits().
2020-12-03 11:40:08 +02:00
Zahary Karadjov
3c0dfc2fbe
Implement the 'deposits exit' command; Remove 'deposits create'
2020-11-29 23:08:07 +02:00
tersec
21c4ce8fd4
remove superfluous TODOs/not-really-TODOs, type conversion, imports ( #2025 )
2020-11-16 17:10:51 +01:00
Zahary Karadjov
389c11743a
Review TODO items and self-assign the most important ones
2020-11-10 20:41:04 +02:00
Jacek Sieka
ee2ebc96a8
move rpc api to own folder, mimic upstream structure ( #1905 )
...
also implements a few more endpoints
2020-10-27 10:00:57 +01:00