* execution client package renaming
* define interceptors and options
* further clean
* further dedup
* further simplify
* rev
* rem
* more modifications
* further clean
* defines tests
* pass first test
* proper tests
* all tests in
* gaz
* lint
* wait start
* assign on ports
* gaz
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* switching to run time generated yaml
* fixing bazel
* fixing unit test
* fixing linter problems
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* e2e: Provide e2e config yaml to web3signer
* fix build for //testing/endtoend:go_default_test
* Update with web3signer with teku fixes
* buildifier
* Add slasher case for web3signer
* Update testing/endtoend/minimal_e2e_test.go
* Update web3signer to 21.10.6
* Revert "Update web3signer to 21.10.6"
This reverts commit bdf3c408f2a0432379fa1a735a2e3f70c62d11cc.
* Remove slasher part of web3signer e2e tests
* Revert "Remove slasher part of web3signer e2e tests"
This reverts commit 24249802ae34fb7727b83dbfa187d73c1d97d2f8.
* fix slasher web3signer test
* fixing build
* updating yaml to match testnet_e2e_config.go
* trying a different order to the e2e test and adding a log
* trying different way to kill process
* handling unhandled error
* testing changes to config WIP
* fixing bazel WIP
* fixing build
* ignoring test for now to test
* fixing bazel
* Test only web3signer e2e
* rolling back some commits to test
* fixing bazel
* trying an updated web3signer version
* changing flag to match version
* trying current version of develop for web3signer
* testing not using the --network property
* addressing build error
* testing config change
* reverting to go bakc to using the network file
* testing adding epochs per sync committee period
* rolling back configs
* removing check to test
* adding log to get sync committee duties and changing bellatrix fork epoch to something large and altair to epoch 1
* fixing bazel
* updating epoch in config file
* fixing more descrepencies between the configurations
* removing un used yaml
* removing goland added duplicates
* reverting using network minimal
* fixing bug
* rolling back some changes
* rolling back some changes
* rolling back changes
* making sure web3signer test doesn't make it to bellatrix fork yet
* reverting changes I did not touch
* undo comment
* Update testing/endtoend/deps.bzl
* Apply suggestions from code review
* rm nl
* fix //testing/endtoend:go_mainnet_test
* Remove unnecessary dep
* fix //testing/endtoend:go_mainnet_test
* addressing review comments
* fixing build and internal conflict
* removing web3signer slasher test as it's unneeded due to the interface nature of key signing, the regular slashing test is enough
* fix: The validator we fetch from the binary can only run before altair, if you add that and the web3signer then these things can never run together as the web3signer sets it to before bellatrix
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
Co-authored-by: James He <james@prysmaticlabs.com>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Set boost with deterministic timing
* confs
* gaz
* Update runner.go
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* add changes
* fix CI
* wait here
* Fix gazelle with the correct directive for libp2p
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* send proposer data to config
* wip implementation with file and url based config import
* improving logic on get validator index
* fix function
* optimizing function for map and address bug
* fixing log
* update cache if it doesn't exist
* updating flags
* initial unit test scaffold
* fixing validator to call rpc call, removed temporary dependency
* adding the API calls for the runner
* fixing broken build
* fixing deepsource
* fixing interface
* fixing fatal
* fixing more deepsource issues
* adding test placeholders
* updating proposer config to add validation
* changing how if statement throws error
* removing unneeded validation, validating in a different way
* wip improving tests
* more unit test work
* fixing unit test
* fixing unit tests and edge cases
* adding unit tests and adjusting how the config is created
* fixing bazel builds
* fixing proto generation
* fixing imports
* fixing unit tests
* Update cmd/validator/flags/flags.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* updating flags based on comments, fixing unit tests
* fixing bazel
* removing unneeded function
* fixing unit tests
* refactors and unit test fixes based on comments
* fixing bazel build
* refactor the cache out fo the fee recipient function
* adding usecase for multiple fee recipient
* refactor burn name
* Update validator/client/validator.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/client/validator.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/client/validator.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* fixing bug with validator index based on code review
* edited flag descriptions to better communicate usage
* fixing manual reference to flag name
* fixing code review comments
* fixing linting
* Update validator/client/validator.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* addressing comments and renaming functions
* fixing linting
* Update cmd/validator/flags/flags.go
* Update cmd/validator/flags/flags.go
* Update cmd/validator/flags/flags.go
* improving comments
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* spectest
* uncomment shas
* Fc spec test service shouldn't not spawn attestation routine
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Preston Van Loon <preston@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>
* new stategen.StateReplayer/ReplayerBuilder to give more fine-grained
control of replaying state+block history
* all rpc/api methods updated to use the new interface, return post-state
Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* 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
* save work
* current progress
* fix it more
* save progress
* fixes so far
* add signature test
* fix up changes so far
* change to latest
* update lighthouse version
* fix build
* fix again
* do one
* clean up
* fix build
* fix it
* fix test
* change tag
* remove e2e
* Update config/params/testnet_e2e_config.go
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* update
* Update sha
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com>
* starting
* Reimplement store
* begin on proposer boost
* implement fork choice proposer boost algorithm
* boosting
* gaz
* add mutexes and previous root
* comment on compute proposer boost
* safe
* rem todo
* reset and add tests
* unit test for proposer boost score
* boost works
* Can process block
* Basic test case passing
* ex ante
* test
* propoer test
* More progresses
* More fixes
* rm unused pieces
* Refactor, add phase 0
* locks
* vanilla ex-ante attack
* test similar to spec test
* works works works
* boost test working for num votes > proposer boost weight
* commentary fixes
* rem unused
* comments
* Proposer boost use store time
* Reset proposer root
* debugging
* passing
* Rm unused visibility imports
* Move update head to better place
* Fix deepsrc complains
* Fix more complains
* Raul's feedback
* Use correct byte lengths
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* initial commit for cli integration of web3signer
* resolving conflicts and execution
* remove aggregation slot from proto
* rem aggregation slot
* define a sync message block root struct
* fix sync message name
* sync message block root struct
* amend where sync committee block root is used
* altered switch statement to return correct json request by type
* fixing fork data import, types, and unit tests
* reverting unwanted changes
* reverting more unwanted changes
* fixing deepsource issues
* fixing formatting
* more fixes for deepsource and code clean up
* only want to fetch once for fetch validating public keys
* adding more comments
* new unit tests for requests and fixing a mapper issue
* Update validator/client/validator.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/accounts/wallet/wallet.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* adjusting comment
* adjusting comment
* fixing import organization
* including more unit tests
* adding new cli edit
* adding in checks for wallet initialize
* adding web3signer flags to main.go
* some how resolved files did not save correctly
* adding in check to make sure web flag only works with types imported and derived
* Update validator/client/sync_committee.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/client/aggregate.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/accounts/wallet/wallet.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/wallet/wallet.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/wallet/wallet.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/main.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/flags/flags.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/flags/flags.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/wallet/wallet.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/wallet/wallet.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* reverting changes that accidently got checked in
* reverting
* reverting
* continuing to revert unintenteded changes
* reverting
* removing more unneeded changes
* addressing review comment
* initial refactor
* adding in more clarifying comments
* fixing mock
* resolving desource issues
* addressing gosec scan for helper go file
* addressing gosec
* trying to fix bazel build
* removal of interface to fix build
* fixing maligned struct
* addressing deepsource
* fixing deepsource
* addressing efficiency of type checking
* fixing bazel test failure
* fixing go linter errors
* gaz
* web changes
* add w3signer
* new kind
* proper use
* align
* adding prysm validator flags to help flags list
* addressing root comment
* ci lint
* fixing standardapi tests
* fixing accounts_test after removal of keymanager from rpc server
* fixing more unit tests
* Update cmd/validator/flags/flags.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update cmd/validator/flags/flags.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/client/service.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/client/service.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* addressing missed err checks
* fixing mock tests
* fixing gofmt
* unskipping minimal e2e test and removing related TODOs
* Update testing/endtoend/components/validator.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* Update testing/endtoend/components/validator.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* adding some error wrapers to clarify failure point
* fixing bazel build with new error checks
* taking preston's advice to make test fail faster to understand what's going on with the test
* checking if genesis validators root is not zero hash
* adding check for genesis validators root giving zero hash
* fixing missing dependency
* adding check for wallet
* log all
* fixing errors for http responses
* switching marshal to pretty print
* adding pretty sign request test
* fixing base url setting
* adding in check for web3signer and temporary wallet instead of having to open the wallet
* refactoring web3signer to not require wallet
* bazel build fix
* fixing gazelle build
* adding content type of request
* fixing more bazel
* removing unused code
* removing unused comments
* adding skip test back in
* addressing a validation and error message
* fix parse
* body
* fixing logic for datadir
* improving error handling
* show resp
* fix
* sign resp as str
* point of pointer remove
* sign resp
* unmarshal sig resp
* read body as str
* adding more verbose logging
* removing unused result
* fixing unit test
* reconfiguring files to properly nest code and mocks
* fix build issue
* using context when using client function calls
* fixing based on suggestion
* addressing comments
* gaz
* removing defined max timeout
* reverting json print pretty
* Update validator/accounts/wallet_edit.go
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* removing unneeded code restrictions
* should not introduce new code that may impact existing key manager types
* adjusting comments
* adding in json validation
* running go mod tidy
* some logging
* more logs
* fixing typo
* remove logs
* testing without byte trim
* fixing order or properties
* gaz
* tidy
* reverting some logs
* removing the confusing comments
* Update validator/client/aggregate.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update validator/client/aggregate.go
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* addressing pr comments
* editing bytes test
* Run gazelle update-repos
* run gazelle
* improving unit test coverage
* fixing text
* fixing a potential escaped error
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
* Delete deploy contract tool. Move mock to its own package as testonly with some helper functions
* gofmt contracts/deposit/mock/mock.go
* move stategen mock.go to its on testonly pkg
* move password_reader_mock.go to mock testonly package
* move mock keymanager to its own testonly package
* move attestations mock
* move voluntaryexits mock
* Move slashings mock to mock pkg
* move the slasher mock
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Rename BeaconBlockBodyMerge to BeaconBlockBodyBellatrix
* Rename SignedBeaconBlockMerge to SignedBeaconBlockBellatrix
* Rename CopyBeaconBlockMerge to CopyBeaconBlockMerge
* Rename NewBeaconBlockMerge to NewBeaconBlockBellatrix
* Rename BeaconBlockMerge to BeaconBlockBellatrix
* Rename some comments and strings in pkg proto: Merge -> Bellatrix
* Rename PbMergeBlock to PbBellatrixBlock
* Many renames of merge -> bellatrix in proto package
* Rename some Merge -> Bellatrix in beacon chain package
* More names
* Fix formating in config/params/config.go
* Rename Merge -> Bellatrix in proto/prysm/storage
* Several renames and corrections Merge -> Bellatrix
Co-authored-by: Potuz <potuz@potuz.net>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@potuz.net>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
* Add merge spectests
* fix build
* gazelle
* operation
* all tests should pass
* go fmt
* fix test
* fix dependency
* rm unused constants
* rename to bellatrix
* Gaz
* Rm unused files
* Use Bellatrix for test names
* Add more spec tests
* Gaz and fix test
* sync with dev
* Preston's feedback
* Go fmt
* sync with dev
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Rename BeaconStateMerge to BeaconStateBellatrix
* Rename version.Merge to version.Bellatrix
* Rename ComputeFieldRootsWithHasherMerge to ComputeFieldRootsWithHasherBellatrix
* Rename test names to Bellatrix
* Rename comments and strings to Bellatrix
* Fix formatting in a few files
* Revert wrong renaming in test name
* Revert renaming to Bellatrix in mainnet_config.go
* Revert renaming of db key without migration
* Regenerate from proto changes
* Rename new use of already renamed symbols
* gofmt and goimports after regenerating protofiles
* revert weird imports
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com>
* make db merge compatible
* util merge.go per @rauljordan
* Go fmt
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
* Add sync committeee contributions to monitor
* gaz
* Raul's review
* Added lock around TrackedValidators
* add comment to trackedIndex
* add missing locks because of trackedIndex
* Terence fixes 2
* moved TrackedValidator to service from config
* Terence comment fix
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* quick lazy balance cache proof of concept
* WIP refactoring to use lazy cache
* updating tests to use functional opts
* updating the rest of the tests, all passing
* use mock stategen where possible
reduces the number of test cases that require db setup
* rename test opt method for clear link
* Update beacon-chain/blockchain/process_block.go
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
* test assumption that zerohash is in db
* remove unused MockDB (mocking stategen instead)
* fix cache bug, switch to sync.Mutex
* improve test coverage for the state cache
* uncomment failing genesis test for discussion
* gofmt
* remove unused Service struct member
* cleanup unused func input
* combining type declaration in signature
* don't export the state cache constructor
* work around blockchain deps w/ new file
service_test brings in a ton of dependencies that make bazel rules
for blockchain complex, so just sticking these mocks in their own
file simplifies things.
* gofmt
* remove intentionally failing test
this test established that the zero root can't be used to look up the
state, resulting in a change in another PR to update stategen to use the
GenesisState db method instead when the zero root is detected.
* fixed error introduced by develop refresh
* fix import ordering
* appease deepsource
* remove unused function
* godoc comments on new requires/assert
* defensive constructor per terence's PR comment
* more differentiated balance cache metric names
Co-authored-by: kasey <kasey@users.noreply.github.com>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* save stuff
* fix in v1
* clean up more
* fix bugs
* add comments and clean up
* add flag + test
* add tests
* fmt
* radek's review
* gaz
* kasey's review
* gaz and new conditional
* improve naming
* Check in go-ethereum crypto/sepc256k1 package with proper build rules
* gaz
* Add karalabe/usb
* viz improvement
* Remove bazel-go-ethereum, use vendored libraries only
* move vendor stuff to third_party so that go mod wont be mad anymore
* fix geth e2e flags
* fix geth e2e flags
* remove old rules_foreign_cc toolchain
* Update cross compile docker image to support os x
* works for geth build
* remove copy of sepc256k1
* revert changes in tools/cross-toolchain
* gaz
* Update go-ethereum to 1.10.10
* Revert "revert changes in tools/cross-toolchain"
This reverts commit 2e8128f7c3a2d20a16e50b88ec7e5b69c70ddf2b.
* revert tags changes
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Stricter participation check
* 0.99 is still better than 0.95...
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* Mark fields as deprecated due to Altair
* Only print inclusion distance fields before Altair fork
* Report phase0 and altair metrics respectively
* only set phase0 fields in phase0, only set altair fields in altair
* better use of fields
* Update go pbs
* Update individual votes method
* regen go proto files
* formatting
* Feedback from @potuz
* Annotate metrics per @potuz suggestion
* Set previous release e2e to end 1 epoch before altair. Add some out of bounds checks for validator metrics reporting and a panic catch
* gofmt
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Move domain function and all signing root functions from beacon-chain/core/helpers to beacon-chain/core
* @terencechain suggestion to put these methods under core/signing