* Use forkchoice HasNode to check if a block is consistent with finality
* interface fix
* fix tests
* remove VerifyFinalizedBlkDescendant
* fix validateBeaconBlock
* Do not check headstate being Capella for BLS changes on gossip
* fix test
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Do not log an overflow computing Capella's slot start
* nishant's review
Co-authored-by: Nishant Das <nishdas93@gmail.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* Identify invalid signature within batch verification (#11582)
* Fix issues found by linter
* Make deepsource happy
* Add signature description enums
* Make descriptions a mandatory field
* More readable error message of invalid signatures
* Add 'enable-verbose-sig-verification' option
* Fix format
* Move descriptions to package signing
* Add more validation and test cases
* Fix build failure
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* Update go to 1.19.3
* Update other items to 1.19
* Update golangci-lint to latest release
* Run gofmt -s with go1.19
* Huge gofmt changes
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update libp2p to support go 1.19
* gaz
* go mod tidy
* Only update the minimum deps
* go mod tidy
* revert .bazelrc
* Update go-libp2p to v0.22.0 and update import paths (#11440)
* Fix import paths
* Fix go-libp2p-peerstore import
* Bazel updates
* fix
* revert some comments changes
* revert some comment stuff
* fix dependency issues
* vendor problematic library
* use your brain
* remove
* tests
Co-authored-by: Marco Munizaga <marco@marcopolo.io>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* add option to log rejected gossip message
* fix rejectGossipMessage return
* revert test + fix import
* revert all beaconchain/sync/validate_* files
* log object and message if flag is set
* fix failing build
* remove object field
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Remove native state flag and use native state in spectests
* remove feature from tests
* use e2e config in slasher simulator
* use params.BeaconConfig in testutil
* use correct function
* use minimal config in go_test
* fix TestListValidators
* parameterize sync committee bits and aggregation bits
* Fix TestServer_ListIndexedAttestations_GenesisEpoch
(cherry picked from commit 254ab623dde08ae8886b152facdbbd8889ed79db)
* fix more tests
* fix even more
* moreeee
* aaaand more
* one more fix
* one more
* simplify TestGetAltairDuties_UnknownPubkey
* comment out problematic test
* one more fix
* one more
* aaaand one more
* another
* use fieldparams in HydrateBlindedBeaconBlockBodyBellatrix
* create new package for mainnet tests
* TestServer_GetBellatrixBeaconBlock
* change slashed validator index
* clear cache in reward_test.go
* deprecate flag
* create bazel mainnet target
* move attester mainnet test to mainnet target
* "fix" proposer tests
* use minimal config in TestServer_circuitBreakBuilder
* fix TestProposer_ProposeBlock_OK
* more fixes in validator package
* more fixes
* more fixes
* test code
* move TestProposer_GetBeaconBlock_BellatrixEpoch to minimal
* finally
* remove proposer_bellatrix_mainnet_test.go
* fix TestServer_GetBellatrixBeaconBlock_HappyCase
* fix TestServer_GetBellatrixBeaconBlock_BuilderCase
* Preston needs to fix this!
* Revert "Preston needs to fix this!"
This reverts commit b03d97a16e3080e254c7b19d7f193d3c600ca869.
* remove proto state tests
* fix migration tests
* static analysis fix
* review
* remove proto state
* swap state in tests
* fix BUILD file in /proto/testing
* remove metrics test with nil state
* 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
* batch reconstruction
* add test
* clean up
* terence's comment
* terence's other comment
* try out in e2e
* fix
* fix some more
* fix blinded blocks
* fix it
* remove dev flag
Co-authored-by: terencechain <terence@prysmaticlabs.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
* 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>
* Relinquish peerLock when blockFetcher context is done
* Unlock before sending range requests
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* Refactor waitForActivation
* Finish refactor of runner.go
* Refactor validator/client/metrics.go
* Refactored beacon-chain/sync/pending_attestations_queue.go
* Refactored beacon-chain/powchain/log_processing.go
* Resolve conflicts with develop branch
* Fix Deepsource: Context should be the first param
* Address review comments
* Put headersMap as pass-in function parameter
* Change function signature of processBlockInBatch
* Address nisdas's comment
* checkpoint sync use finalized state+block
instead of finding the block at the beginning of the weak subjectivity
epoch.
* happy path test for sync-from-finalized
* gofmt
* functional opts for the minimal e2e
* add TestCheckpointSync option
* wip: pushing for CI
* include conn index in log for debugging
* lint
* block until regular sync test finishes
* restore TestSync->testDoppelGangerProtection link
* update bazel deps for all the test targets
* updating to match current checksum from github
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
* Ignore subset aggregates
* Add test
* Update BUILD.bazel
* Update validate_sync_contribution_proof_test.go
* Update validate_sync_contribution_proof_test.go
* Don't utilize pooled objects. Use direct caches
* Handle mainnet/minimal better
* Revert att changes
* Check overlaps before set
* Feedbacks
* Fixed a copy bug
* Fixed the same copy bug in committee indices cache
* Use SafeCopyBytes
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* test coverage and updates to config twiddlers
* LoadChainConfigFile error if SetActive conflicts
* lint
* wip working around test issues
* more fixes, mass test updates
* lint
* linting
* thanks deepsource!
* fix undeclared vars
* fixing more undefined
* fix a bug, make a bug, repeat
* gaz
* use stock mainnet in case fork schedule matters
* remove unused KnownConfigs
* post-merge cleanup
* eliminating OverrideBeaconConfig outside tests
* more cleanup of OverrideBeaconConfig outside tests
* config for interop w/ genesis gen support
* improve var name
* API on package instead of exported value
* cleanup remainders of "registry" naming
* Nishant feedback
* add ropstein to configset
* lint
* lint #2
* ✂️
* revert accidental commented line
* check if active is nil (replace called on empty)
* Nishant feedback
* replace OverrideBeaconConfig call
* update interop instructions w/ new flag
* don't let interop replace config set via cli flags
Co-authored-by: kasey <kasey@users.noreply.github.com>
* test: better InvalidSignature validation
Added digest to topic so that the test would not fail at decodePubsubMessage.
Generated a valid signature from an invalid key so that it would be considered invalid.
Added a check for the correct error: ErrSigFailedToVerify.
Related to #9791.
* test: better BlockAlreadyPresentInDB validation
Added digest to topic so that the test would not fail at decodePubsubMessage.
Added a check that the block is ignored.
Related to #9791.
* test: better Syncing validation
Replaced error silencing with NoError assertion.
Added check for the expected validation decision: ValidationIgnore.
Related to #9791.
* test: better IgnoreAndQueueBlocksFromNearFuture validation
Rename test to best describe it's function.
Replace error silencing with a check for the expected error.
Related to #9791.
* test: better RejectBlocksFromFuture validation
Added digest to topic so that the test would not fail at decodePubsubMessage.
Replaced error silencing with NoError assertion.
Added check for the expected validation decision: ValidationIgnore.
Related to #9791.
* test: better RejectBlocksFromThePast validation
Added digest to topic so that the test would not fail at decodePubsubMessage.
Replaced error silencing with a check for the expected error.
Added check for the expected validation decision: ValidationIgnore.
Related to #9791.
* test: better SeenProposerSlot validation
Added digest to topic so that the test would not fail at decodePubsubMessage.
Replaced error silencing with NoError assertion.
Added check for the expected validation decision: ValidationIgnore.
Related to #9791.
* test: fix topic and silenced errors
* set chain service slot
* test: better RejectBlocksFromBadParent validation
Set bad parent block.
Fixed expected errors and validation decision.
* revert: correct log msg for unknown parent block
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Improve beacon node doesn't have a parent in db logs
* Update round_robin.go
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Extract `OptimisticSyncFetcher` interface
* extract IsOptimistic
* fix tests
* more test fixes
* even more test fixes
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* replace eth2 types
* replace protos
* regen proto
* replace
* gaz
* deps
* amend
* regen proto
* mod
* gaz
* gaz
* ensure build
* ssz
* add dep
* no more eth2 types
* no more eth2
* remg
* all builds
* buidl
* tidy
* clean
* fmt
* val serv
* gaz
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* move waitForStateInitialization to Start
* remove channel
* handle error in test
* fix service tests
* use fatal log
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* process the optimistic blocks whose parent are optimistic too
* adding unit test
* fix test
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
* gazelle
* tests passing
* use the same engine client
* pass
* initialize in right place
* erge
* build
* imports
* ensure engine checks work
* pass powchain tests
* powchain tests pass
* deepsource
* fix up node issues
* gaz
* endpoint use
* baz
* b
* conf
* lint
* gaz
* move to start function
* test pass
* refactor genesis state flag handling, support url
* lint fix
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* less fragile check for execution payload
* gaz
* gaz
* include field
* clean up helpers for checking merge status
* Update beacon-chain/core/blocks/payload.go
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
* Update payload.go
* Rename
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
* Add static analysis for unsafe uint casting
* Fix violations of uintcast
* go mod tidy
* Add exclusion to nogo for darwin build
* Add test for math.Int
* Move some things to const so they are assured not to exceed int64
* Self review
* lint
* fix tests
* fix test
* Add init check for non 64 bit OS
* Move new deps from WORKSPACE to deps.bzl
* fix bazel build for go analysis runs
* Update BUILD.bazel
Remove TODO
* add math.AddInt method
* Add new test casts
* Add case where builtin functions and declared functions are covered
* Fix new findings
* cleanup
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* fix TestLockUnlock_CleansUnused
* fix TestSyncHandlers_WaitTillSynced
The test is failing silently (while go test showing 'PASS') due to panic caused by feed type mismatch. As a result, intended testing logic is not exercised at all. There are a couuple fixes here:
1. fix the feed event type to be pointer
2. add seendCache to avoid nil pointer panic
3. fill block in beaconDB so validateBeaconBlockPubSub gets short cut
4. replace time.Sleep() with deterministic channel waiting
* handle cancel func
* return interface from testing/util
* remove usages of v1
* return interface from InitializeFromProto
* return interface from InitializeFromProto
* fix test
* fix interface visibility
* more fixes
* use InitializeFromProtoUnsafe in testing/util
* return early error from mock
* v2
* fix tests
* remove unnecessary assertion
* use struct in nil state test
* Revert "Auxiliary commit to revert individual files from 6bb528c2c5df2446ad18450009f63f44318d41a9"
This reverts commit 7d70238a301209f6dbfc8ff1d81b16e33b0bd67d.
* use struct in sync committee test
* v3
* use InitializeFromProtoUnsafe in mock
* use version information
* Revert "Auxiliary commit to revert individual files from 6bb528c2c5df2446ad18450009f63f44318d41a9"
This reverts commit 5d5e6f2884d21caec7530c16ad2a0d0d27c44aa1.
* revert changes to ClearPreGenesisData
* fix build error
* remove error from PreGenesisState
* bzl
* deprecate all of it
* handle empty slice
* fix bad bug
* fix it
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Value assigned to a variable is never read before being overwritten
* The result of append is not used anywhere
* Suspicious assignment of range-loop vars detected
* Unused method receiver detected
* Revert "Auxiliary commit to revert individual files from 54edcb445484a2e5d79612e19af8e949b8861253"
This reverts commit bbd1e1beabf7b0c5cfc4f514dcc820062ad6c063.
* Method modifies receiver
* Fix test
* Duplicate imports detected
* Incorrectly formatted error string
* Types of function parameters can be combined
* One more "Unused method receiver detected"
* Unused parameter detected in function