* Break out several helpers from `postBlockProcess`
In addition fix a bug found by @terencechain where we should use a slot
context instead of the parent context in the second FCU call.
* Remove calls for tracked proposer
getPayloadAttribute already takes care of this
Also compute correctly the time into voting window
* call with attributes only when incoming block is canonical
* check for empty payload instead of only nil
* add unit tests
* move log for non-canonical block
* return early if the incoming block does not change head
* Pass fcuArgs as arguments
* lint
* Initial code for head event streaming
* handle events and error
* keepalive event
* tests
* generate new mock
* remove single case select
* cleanup
* explain eventByteLimit
* use 2 channels in test
* review
* more review
---------
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
* Remove unsafe proposer indices cache
* Simplify FCU #1
This PR starts the process of gradually simplifying FCU
It removes the responsibility of getting the state and block from this
function and informing if head has changed. It is only called when the
imported block has actually become head.
* Add a call to FCU in edge cases
* init
- getLocalPayload does not use the proposer ID from the cache but takes
it from the block
- Fixed tests in blockchain package
- Fixed tests in the RPC package
- Fixed spectests
EpochProposers takes 256 bytes that can be avoided to be copied, but
this optimization is not clear to be worth it.
assginmentStatus can be optimized to use the cached version from the
TrackedValidatorsCache
We shouldn't cache the proposer duties when calling getDuties but when
we update the epoch boundary instead
* track validators on prepare proposers
* more rpc tests
* more rpc tests
* initialize grpc caches
* Add back fcu log
Also fix two existing bugs wrong parent hash on pre Capella and wrong
blockhashes on altair
* use beacon default fee recipient if there is none in the vc
* fix validator test
* radek's review
* push always proposer settings even if no flag is specified in the VC
* Only register with the builder if the VC flag is set
Great find by @terencechain
* add regression test
* Radek's review
* change signature of registration builder
* use different keys for the proposer indices cache
* Add a way to get the proposer indices from a checkpoint
* fix fuzzing tests
* use htr instead of body root
* move comment
* Use a cache of one entry to build attestation
* Gazelle
* Enforce on RPC side
* Rm unused var
* Potuz feedback, dont use pointer
* Fix tests
* Init fetcher
* Add in-progress
* Add back missing lock
* Potuz feedback
* Update beacon-chain/rpc/prysm/v1alpha1/validator/attester_test.go
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
---------
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
* fix all cases
* update web3signer
* current progress
* fix it finally
* push it back to capella
* remove hard-coded forks
* fix failing tests
* gaz
* fix dumb bug
* fix bad test setup
* change back
* Hook to slot stream instead of block stream on the VC
* Implement StreamSlots in the BN
* mock update
* fix tests
* don't return from stream
* Terence's review
* deepsource second complain
---------
Co-authored-by: rkapka <rkapka@wp.pl>
* Add sanity checks for bundle from builder
* Add more checks to BlobsBundle.ToProto()
* Fix minor typo
* Fix tests & add new ones
* Add tests for ToProto
* Add "not" to error message
---------
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
* removing fake wrappers
* fixing conficts and missed tests
* fixing more conflicts
* addressing missed unit test
* fixing nogo error
* fixing more unit tests
* fixing more tests
* making needed changes to beacon API based on removal of blobsidecar from block contents
* fixing tests and reverting some changes to be addressed later
* fixing generated code from protos
* gaz
* fixing get blob handler and adding blob storage to the blob service
* updating unit tests
* WIP
* wip tests
* got tests passing but needs cleanup
* removing gomod and gosum changes
* fixing more tests
* fixing more tests
* fixing more tests
* gaz
* moving some proto types around
* removing unneeded unit test
* fixing proposer paths
* adding more tests
* fixing more tests
* improving more unit tests
* updating one blob only unit test
* changing arguments of buildBlobSidecar
* reverting a change based on feedback
* terence's review items
* fixing test based on new develop changes
* radek's comments
* addressed more comments from radek
* adding in blobs to test data
* fixing casing in test
* removing extra line
* fixing issue from bad merge
* Update beacon-chain/rpc/eth/beacon/handlers_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/rpc/eth/beacon/handlers_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/rpc/eth/beacon/handlers_test.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Update beacon-chain/rpc/eth/blob/handlers.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* moving core getblob business logic to blocker based on radek's comment
* fixing mock blocker
* gaz
---------
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* scaffolding for verification package
* WIP blob verification methods
* lock wrapper for safer forkchoice sharing
* more solid cache and verification designs; adding tests
* more test coverage, adding missing cache files
* clearer func name
* remove forkchoice borrower (it's in another PR)
* revert temporary interface experiment
* lint
* nishant feedback
* add comments with spec text to all verifications
* some comments on public methods
* invert confusing verification name
* deep source
* remove cache from ProposerCache + gaz
* more consistently early return on error paths
* messed up the test with the wrong config value
* terence naming feedback
* tests on BeginsAt
* lint
* deep source...
* name errors after failure, not expectation
* deep sooource
* check len()==0 instead of nil so empty lists work
* update test for EIP-7044
---------
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
* refactoring to add a routes unit test for rest handlers
* gaz
* updating names for functions
---------
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* add jwt-id flag
* optimize unit test for jwt-id
* Add jwt-id to help text
* gofmt
---------
Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com>
* forkchoice.Getter wrapper with locking wrappers
* comments
* lint
* only expose fast fc getters
* potuz feedback re rlock
* update mocks for new fc method
* appease deepsource
* add missing exported func comment
* yeet errors to make the linter happy
* even more devious _discard
* rm TargetRoot
* derp
* handle nil error in _discard
* deep source
---------
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* fixing squashing changes, migrates beacon , account, and auth endpoints on validator client
* adding accounts endpoints
* fixing tests and query endpoints
* adding auth endpoint and fixing unit tests
* removing unused files and updating node file to skip gRPC
* ineffectual assignment fix
* rolling back a change to fix e2e
* fixing issues with ui
* updating with webui version 2.0.5
* updating package name flag in readme
* removing restore assets functions
* adding nomemcopy flag to see if vulenerability scan passes
* making data non compressed to avoid copy vulnerability
* Update beacon-chain/rpc/eth/shared/structs_validator.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* updating site_data, and skipping static analysis on file
* adding back deprecation comment notice
* updating workflows to ignore generated
* addressing radek comments
* missed a conversion
---------
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>