* Remove optimistic sync candidate check
Since we know we have merged and the chain has advanced 128 slots,
there's no possible forkchoice Poissoning attack anymore, removing the
check and allowing any block to be imported optimistically.
* fix test
* fix test
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Fix fillInMissingBlocks
Only check that the chain's parent is in forkchoice, rather than it
being the finalized checkpoint. Forkchoice anyway guarantees that the
chain will be a descendant of the finalized checkpoint.
* ensure root is not zero
* fix tests
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* atts performance and blocks
* idiomatic observe
* all attestation related errors
* block metrics
* db metrics
* metrics func
* rem old metrics
* naming
* rem metric
* rem unneeded
* fix
* fix up
* rev
* fix
* rem
* Only update finalized checkpoint in DB if it's newer
Do not save to DB a finalized checkpoint that it's older than the
current one.
* Add a test
* Add more strict condition check
* Revert params.SetupTestConfigCleanupWithLock(t)
* Remove new line
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* Add feature flag to treat all blocks as optimistic at startup
* Terence's review
* remove changed empty lines
* Apply suggestions from code review
* Go fmt sorry
* bad comments
Co-authored-by: terencechain <terence@prysmaticlabs.com>
* Insert attestations from blocks to forkchoice
* do not insert twice
* use OnAttestation instead
* Revert "use OnAttestation instead"
This reverts commit 577c37bbebf05bc6881a2a5b29c7079503d9ccd1.
* unit test
* fix test
* Update beacon-chain/blockchain/receive_block_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: terencechain <terence@prysmaticlabs.com>
* Starting
* Done
* Fix more tests
* Fix test
* Fix test
* fix up
* building
* requirement
* gaz
* builds
* rem deadcode
* fix
* fix up
* removed checked method
* Update service_test.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* Forkchoice: expose if no tip is viable
This PR changes the behavior on when the node is considered optimistic.
A call to `blockchain.IsOptimistic()` relies solely on forkchoice, if
all tips are invalid, then it's optimistic. If the current headroot is
not in forkchoice then it's optimistic.
A call to `blockchain.IsOptimisticForRoot()` will return true if the
requested root is headroot and it's not found in forkchoice
* update comment
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* panic in SizeSSZ
* moving slowly
* adapt old code to new interfaces
* return interfaces from factory functions
* replace the rest of WrappedSignedBeaconBlock
* WrappedBeaconBlock
* WrappedBeaconBlockBody
* miscellaneous
* Test_BeaconBlockIsNil
* replace usages of BeaconBlockIsNil
* replace usages of mutator
* fix all build errors
* fix some more issues
* mutator changes
* relax assertions when initializing
* revert changes in object_mapping.go
* allow calling Proto on nil
* Revert "allow calling Proto on nil"
This reverts commit ecc84e455381b03d24aec2fa0fa17bddbec71705.
* modify Copy and Proto methods
* remove unused var
* fix block batch tests
* correct BUILD file
* Error when initializing nil objects
* one more error fix
* add missing comma
* rename alias to blocktest
* add logging
* error when SignedBeaconBlock is nil
* fix last test
* import fix
* broken
* working
* test fixes
* reduce complexity of processPendingBlocks
* simplified
* Deal with nil LVH
After https://github.com/ethereum/execution-apis/pull/254 the EL may
return `nil` for LVH. Our current implementation would treat this as a
zero hash and thus mark all blocks since the merge block as INVALID
* Apply suggestions from Terence
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
When requesting with IsOptimistic for a root which is non-canonical and
historic, we should check if it is canonical before returning false.
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Improve error verbosity with payload ID is nil
* Conflict
* Fix test
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* exec payload iface
* begin using iface
* use iface more
* build beacon
* builds
* txs field
* fix
* merge test
* pass
* test
* refactor
* fix up builder case
* gaz
* comments
* el test
* build
* no mask
* patch up
* exec wrap
* Terence feedback
* builds
* potuz suggestion
* exec data error
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>