* PeerDAS: Implement sync
* Fix Potuz's comment.
* Fix Potuz's comment.
* Fix Potuz's comment.
* Fix Potuz's comment.
* Fix Potuz's comment.
* Implement `TestFetchDataColumnSidecarsFromPeers`.
* Implement `TestSelectPeers`.
* Fix James' comment.
* Fix flakiness in `TestSelectPeers`.
* Revert "Fix Potuz's comment."
This reverts commit c45230b455.
* Revert "Fix James' comment."
This reverts commit a3f919205a.
* `selectPeers`: Avoid map with key but empty value.
* Fix Potuz's comment.
* Add DataColumnStorage and SubscribeAllDataSubnets flag.
* getBlobsV2: retry if reconstruction isnt successful
* test: engine client and sync package, metrics
* lint: fmt and log capitalisation
* lint: return error when it is not nil
* config: make retry interval configurable
* sidecar: recover function and different context for retrying
* lint: remove unused field
* beacon: default retry interval
* reconstruct: load once, correctly deliver the result to all waiting goroutines
* reconstruct: simplify multi goroutine case and avoid race condition
* engine: remove isDataAlreadyAvailable function
* sync: no goroutine, getblobsv2 in absence of block as well, wrap error
* exec: hardcode retry interval
* da: non blocking checks
* sync: remove unwanted checks
* execution: fix test
* execution: retry atomicity test
* da: updated IsDataAvailable
* sync: remove unwanted tests
* bazel: bazel run //:gazelle -- fix
* blockchain: fix CustodyGroupCount return
* lint: formatting
* lint: lint and use unused metrics
* execution: retry logic inside ReconstructDataColumnSidecars itself
* lint: format
* execution: ensure the retry actually happens when it needs to
* execution: ensure single responsibility, execution should not do DA check
* sync: don't call ReconstructDataColumnSidecars if not required
* blockchain: move IsDataAvailable interface to blockchain package
* execution: make reconstructSingleflight part of the service struct
* blockchain: cleaner DA check
* lint: formatting and remove confusing comment
* sync: fix lint, test and add extra test for when data is actually not available
* sync: new appropriate mock service
* execution: edge case - delete activeRetries on success
* execution: use service context instead of function's for retry
* blockchain: get variable samplesPerSlot only when required
* remove redundant function and fix name
* fix test
* fix more tests
* put samplesPerSlot at appropriate place
* tidy up IsDataAvailable
* correct bad merge
* fix bad merge
* remove redundant flag option
* refactor to deduplicate sidecar construction code
* - Add godocs
- Rename some functions to be closer to the spec
- Add err in return of commitments
* Replace mutating public method (but only internally used) `Populate` but private not mutating method `extract`.
* Implement a unique `processDataColumnSidecarsFromExecution` instead 2 separate functions from block and from sidecar.
* `ReceiveBlock`: Wrap errors.
* Remove useless tests.
* `ConstructionPopulator`: Add tests.
* Fix tests
* Move functions to be consistent with blobs.
* `fetchCellsAndProofsFromExecution`: Avoid useless flattening.
* `processDataColumnSidecarsFromExecution`: Stop using DB cache.
---------
Co-authored-by: Manu NALEPA <enalepa@offchainlabs.com>
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
* Migrate Prysm repo to Offchain Labs organization ahead of Pectra upgrade v6
* Replace prysmaticlabs with OffchainLabs on general markdowns
* Update mock
* Gazelle and add mock.go to excluded generated mock file
* Implement static analysis to prevent panics
* Add nopanic to nogo
* Fix violations and add exclusions
Fix violations and add exclusions for all
* Changelog fragment
* Use pass.Report instead of pass.Reportf
* Remove strings.ToLower for checking init method name
* Add exclusion for herumi init
* Move api/client/beacon template function to init and its own file
* Fix nopanic testcase
* organize blob directories by period and epoch
* changelog
* remove Indices and replace with Summary
* old PR feedback
* log to advise about the speed of blob migration
* rename level->layer (hoping term is more clear)
* assert path in tests for increased legibility
* lint
* lint
* remove test covering a newly impossible error
* improve feedback from flag validation failure
* Try to clean dangling dirs epoch->flat migration
* lint
* Preston feedback
* try all layouts and short-circuit if base not found
---------
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
* updating the goethereum dependency
* fixing dependencies
* reverting workspace
* more fixes, work in progress
* trying with upgraded geth version
* fixing deprecated functions except for the time related ones on eth1 distance due to time issues
* fixing time issues
* gaz
* fixing test and upgrading some dependencies and reverting others
* Disable cgo in hid, delete old vendored usb library
* changelog
* rolling back dependencies
* fixing go mod tidy
* Geth v1.13.6
* fix tests
* Add ping interval, set to 500ms for tests. This didnt work
* Update to v1.14.8
* Spread it out to different bootnodes
* Fix it
* Remove Memsize
* Update all out of date dependencies
* Fix geth body change
* Fix Test
* Fix Build
* Fix Tests
* Fix Tests Again
* Fix Tests Again
* Fix Tests
* Fix Test
* Copy USB Package for HID
* Push it up
* Finally fix all tests with felix's changes
* updating geth dependency
* Update go-ethereum to v1.14.11
* fixing import
* reverting blob change
* fixing Implicit memory aliasing in for loop.
* WIP changes
* wip getting a little further on e2e runs
* getting a little further
* getting a little further
* setting everything to capella
* more partial fixes
* more fixes but still WIP
* fixing access list transactions"
* some cleanup
* making configs dynamic
* reverting time
* skip lower bound in builder
* updating to geth v1.14.12
* fixing verify blob to pointer
* go mod tidy
* fixing linting
* missed removing another terminal difficulty item
* another missed update
* updating more dependencies to fix cicd
* fixing holiman dependency update
* downgrading geth to 1.14.11 due to p2p loop issue
* reverting builder middleware caused by downgrade
* fixing more rollback issues
* upgrading back to 1.14.12 after discussing with preston
* mod tidy
* gofmt
* partial review feedback
* trying to start e2e from bellatrix instead
* reverting some changes
---------
Co-authored-by: Preston Van Loon <preston@pvl.dev>
Co-authored-by: nisdas <nishdas93@gmail.com>
* Use engine api get-blobs for block subscriber
Debug
changelog
add proto marshal and unmarshal
Kasey's feedback
* Feedback
* Preston's feedback
* Exist argument should not be hardcoded with kzg count
* wip
* gaz
* rename field
* sammy review
* updating execution api request and reverting response back
* fixing linting
* changelog
* changelog
* adding in serialization of requests
* code cleanup
* adding some happy path tests and fixing mock
* mock still broken
* fixing linting
* updating name on proto
* missed naming
* placeholder fix for TestClient_HTTP
* removing duplicate change log
* adding in test for get payloadv4 as well as some tests
* added tests for execution client testing, fixed encode type
* adding comment for placeholder test
* fixing test and addressing feedback
* feedback
* flipping the test names, was used in reverse
* feedback from kasey
* reverting switch back to if statements to fix bug
* lint
* First take at updating everything to v5
* Patch gRPC gateway to use prysm v5
Fix patch
* Update go ssz
---------
Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com>
* wip removing call to execution client for transition configuration
* updating bazel and execution engine proto
* removing more spots where the call was added
* removing unused metric
* prysmctl using the same genesis func as e2e
* add whitespace to genesis.json for readability
* fix typo in fork name
* don't require validator count if deposits given
* add gosec exception
* the other nosec :(
* appease deepsource
* fix comments on renamed public value/func
---------
Co-authored-by: kasey <kasey@users.noreply.github.com>
* e2e using dynamic configs; runtime bellatrix setup
* starts from phase0 but fee recipient eval fails
* lower TTD to cross before bellatrix epoch in e2e
* fix debug printf
* fix it
* dynamic ttd and more robust fee_recipient eval
* let multiplication set ttd=0 if bellatrix epoch=0
* refactoring fee recipient test after cognit errors
* lint
* appease deepsource
* deep sourcin
* gazelle
* missed a usage of this when refactoring
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
Co-authored-by: nisdas <nishdas93@gmail.com>
* WIP trying to start from bellatrix state
* env var to control log path with unique paths
due to flaky test re-run behavior, logs from a failed test run are
overwritten by subsequent retries. This makes it difficult to retrieve
logs after the first failed run. It also takes some squinting through
output to find the location of the log file in the first place. This
flag enables logs to be placed in an arbitrary path. Note that bazel
sandboxing generally will force this path to be in the /tmp tree.
* WIP - grabbing changes from rm-pre-genesis branch
* combine bellatrix state w/ rm-pre-genesis branch
* WIP
* use encoding/detect for genesis state bytes
* WIP more fixes towards start from bellatrix
* remove debug wrapping
* WIP
* multiple bugfixes
* fix fork ordering bug and bellatrix genesis blocks
* send deposits, spam tx to advance, fix miner alloc
* WIP
* WIP mess
* WIP
* Print process ID information for purposes of attaching a debugger
* bugs: genesis body_root and deposit index mismatch
* fix voting period start, skip altair check
* add changes
* make it better
* rm startup FCU, rm logs
* cleanup import grouping&ordering
* restore FCU log, get rid of tmp var
* rm newline
* restore newline
* restore wrapped error
* rm newline
* removing boot node version override
this doesn't seem to matter?
* add issue number to todo comment
* rm commented code
* rm vmdebug geth flag
* unexport values only used with genesis test pkg
and add comments where missing from exported values.
* adding comments to special cases for testnets
* migrate comments from PR to actual code :)
* rm unused test param
* mark e2e spawns exempt from gosec warning
* Fix DeepSource errors in `proposer_bellatrix.go` (#11739)
* Fix DeepSource errors in
* Omit receiver name
* Address PR comments
* Remove unused variable
* Fix more DeepSource errors
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Remove `Test_IsExecutionEnabledCapella` (#11752)
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Add REST implementation for Validator's `ProposeBeaconBlock` (#11731)
* WIP
* WIP
* WIP
* Add tests
* WIP
* Add more tests
* Address DeepSource errors
* Remove unused param
* Add more tests
* Address PR comments
* Address PR comments
* Fix formatting
* Remove unused parameter
* Fix TestLittleEndianBytesToBigInt
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* fix validator client (#11755)
* fix validator client
(cherry picked from commit deb138959a)
* Use signed changes in middleware block
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
* API `finalized` metadata field - update protos (#11749)
* API `finalized` metadata field - update protos
* change nums
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* log breaks unit tests that don't do full arg setup
easiest to just remove it for now
* restore prior behavior of phase0 block for altair
* update unit tests to account for special case
* loosen condition for fork version to match config
we don't know which fork version genesis will start from, so we
shouldn't force it to be a phase0 genesis.
* skip until we can mod configs at runtime
* NewGenesisBlockForState computes state root itself
* rm noisy log
* this log would be noisy in mainnet
* fix format specifier, []byte -> string
* core.Genesis UnmarshalJson has a value receiver :)
* no longer needs to be exported
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com>
Co-authored-by: nisdas <nishdas93@gmail.com>
Co-authored-by: Patrice Vignola <vignola.patrice@gmail.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.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 b03d97a16e.
* 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
* Fall back to uncached getPaylod if first time outs
* Skip only deadline error. Unit test
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.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>
* 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 ecc84e4553.
* 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