* default bootstrap node and local network flag
* default relay node value
* Update shared/p2p/service.go
Co-Authored-By: rauljordan <raul@prysmaticlabs.com>
* use no discovery
* add feature flag to enable gossip sub in p2p
* invert the enable/disable logic
* add the flag in k8s and fix tests
* gazellle
* return empty config if nil
* use committee cache in UpdateLatestAttestation
* fmt
* gaz
* fixed existing tests
* verify cache miss works
* gaz
* added test for committee hit and update attestation target
* verify cache miss works
* Update beacon-chain/core/helpers/committee.go
Co-Authored-By: terenc3t <terence@prysmaticlabs.com>
* rm declaring err
* add feature flag
* fork choice vote count to use cached ancestor
* comments
* fmt
* spelling and grammer
* no extra space
* renamed vars & added a test for cache miss
* lint
* add cache hit test case : )
* gaz
* Remove Enableblock, it was a copy/paste typo
* refactor cached ancestor blk getter into its own function
* first version - broken
* working proto changes
* resolve review remarks
* fix goimport issues
* fix service issues
* first logic version-broken
* first running version - no new tests
* fix validator client test
* add wait group to goroutines
* remove unused var in function call
* fix review remarks and tests
* merge master changes and fix conflicts
* gazzele fix
* fix prestonvanloon requested changes
* merge and some of terenc3t remarks addressed
* _,pk bug fix in log
* fix account file name suffix and filter not active validator out
* merge with master and fix missing parameters
* run over all public keys in hasvalidators
* add test for error when no all the validators has index in the db and hasvalidators is called
* fix runner tests fail due to timing issues
* goimports
* smaller sleep time in proposer tests
* fix UpdateAssignments loging
* fix goimports
* added && false commented TestUpdateAssignments_DoesNothingWhenNotEpochStartAndAlreadyExistingAssignments
* hasvalidators without missing publickeys list
* fix some of prestone review remarks
* fixes for prestone comments
* review changes applied
* expect context call in TestWaitForActivation_ValidatorOriginallyExists
* changed hasvalidators to return true if one validator exists
* fix init problem to getkeys
* hasvalidators requiers all validators to be in db
* validator attest assignments update
* fix ap var name
* Change name to hasallvalidators
* fix tests
* update script, fix any vs all validator calls
* fix wait for activation
* filter validator
* reuse the reply block
* fix imports
* Remove dup
* better lookup of active validators
* better filter active vlaidators, still need to fix committee assignment tests
* lint
* use activated keys
* fix for postchainstart
* fix logging
* move state transitions
* hasanyvalidator and hasallvalidators
* fix tests with updatechainhead missing
* add tests
* fix TestCommitteeAssignment_OK
* fix test
* fix validator tests
* fix TestCommitteeAssignment_multipleKeys_OK and TestWaitForActivation_ValidatorOriginallyExists
* fix goimports
* removed unused param from assignment
* change string(pk) to hex.EncodeString(pk) fix change requests
* add inactive validator status to assignments
* fix logging mess due to multi validator setup
* set no assignment to debug level
* log assignments every epoch
* logging fixes
* fixed runtime by using the right assignments
* correct activation request
* fix the validator panic
* correct assignment
* fix test fail and waitforactivation
* performance log issue fix
* fix goimports
* add log message with truncated pk for attest
* add truncated pk to attest and propose logs
* Add comment to script, change 9 to 8
* Update assignment log
* Add comment, report number of assignments
* Use WithError, add validator as field, merge block proposal log
* Update validator_propose.go
* fix
* use entry.String()
* fix fmt
* Begin adding Deposit Index to beacon state
* Move deposit index increment to ProcessDeposit
* Fix initial deposits bug
* Fix bug in RPC
* More bug fixes
* Fix RPC bug, ensure deposits are processed in the right order
* Fix tests
* Fix merge
* Attempt to fix pruning deposits on regular sync
* Fix pending deposits on node restart
* Fix test
* Fix tests properly
* Gofmt
* Remove unneeded logs
* Fix build
* starting to get feedback
* better name
* export the necessary variables
* finished implementation in AttestationParticipants
* refactor deopendency issue
* gaz and fixed cache test
* fixed all the tests and lint
* clean up part 1
* lint
* fixed test
* fixed visibility
* cache tests for AttestationParticipants
* headRoot is a better name
* yay merged with master
* fixed attester server returning incorrect attestation field values
* revert stupid mock changes
* fixed and updated all the tests
* uncomment
* head start should handle skip blocks
* Raul's feedback
* refactor initial sync to prevent reorg infinite loops
* lint
* fixed build
* passing tests
* tests passing
* terence suggestion
* new attempt
* clean up and refactor sync service
* complete the new initial sync logic
* revert head
* init sync working
* config for blockchain receive block
* all works
* builds
* fix a few more tests
* init sync tests pass
* revert scripts
* revert accounts changes
* lint
* lint2
* travis lint
* fix build
* fix single use argument
* any peer
* imports spacing
* imports
* ready for a rolling restart
* add todo
* fork choice in blocks when exiting sync
* readd finalized state root to requests
* successful build
* revert blockchain config
* old config reversion
* initial sync tests pass
* initial sync full test works
* lint
* use the new block processing api
* new proto defs
* init sync functions again
* remove sync polling
* tests fixed
* fixed catching up with chain
* tests pass
* spacing
* lint
* goimports
* add changes
* add lock and conditional to prevent multiple goroutines
* make reg sync synchronous
* add
* fixed the parent block issue
* fix errors in chain service
* tests pass
* check nil block
* typo
* fix nil state
* merge & conflicts
* revert synchronus reg sync
* add more spans to state db
* fix lint
* lint
* reduce state size
* lint
* fork data
* addressed broken build
* make values 5x slots per epoch
* 5 epochs worth of arrays
* add back slash balances
* rem items
* test
* imports
* keystore and account support for multi key
* fix service issues
* fix Potential file inclusion
* fix Potential file inclusion try2
* Update shared/keystore/keystore.go
remove security detection for file read
Co-Authored-By: shayzluf <thezluf@gmail.com>
* getkeys uses map to pt multiple copies of the same key
* use 12 char of public key to differentiate file names
* use map in test
* fix changes from 2069 into here
* add // #nosec G304
* plug forkchoice to blockchain service's block processing
* fixed tests
* more fixes...
* clean ups
* fixed test
* Update beacon-chain/blockchain/block_processing.go
* merged with 2006 and started fixing tests
* remove prints
* fixed tests
* lint
* include ops service
* if there's a skip slot, slot--
* fixed typo
* started working on test
* no fork choice in propose
* bleh, need to fix state generator first
* state gen takes input slot
* feedback
* fixed tests
* preston's feedback
* fmt
* removed extra logging
* add more logs
* fixed validator attest
* builds
* fixed save block
* children fix
* removed verbose logs
* fix fork choice
* right logs
* Add Prometheus Counter for Reorg (#2051)
* fetch every slot (#2052)
* test Fixes
* lint
* only regenerate state if there was a reorg
* better logging
* fixed seed
* better logging
* process skip slots in assignment requests
* fix lint
* disable state root computation
* filter attestations in regular sync
* log important items
* better info logs
* added spans to stategen
* span in stategen
* set validator deadline
* randao stuff
* disable sig verify
* lint
* lint
* save only using historical states
* use new goroutine for handling sync messages
* change default buffer sizes
* better p2p
* rem some useless logs
* lint
* sync tests complete
* complete tests
* tests fixed
* lint
* fix flakey att service
* PR feedback
* undo k8s changes
* Update beacon-chain/blockchain/block_processing.go
* Update beacon-chain/sync/regular_sync.go
* Add feature flag to enable compute state root
* add comment
* gazelle lint fix
* Create a feature flagging system
* Refactor how featureflags works and improve docs
* Gazelle and final touches
* Refactor, new flags in the package
* Remove old flags since they have been moved
* Fix bazel
* Update to comments
* Full coverage
* Fix formatting
* Align code with numbers
* Run bazel and fix docs
* Fix test for flag
* Fix assignments bug where validators don't retry for assignments on failure
* synch only please
* trying to fix state issues
* trying random stuff
* do not explode
* use ctx
* working build, failing tests
* broadcast local addrs as well as relay addrs
* fixed p2p tests, more tests to fix still
* another test fixed, log warning instead of throw error
* Fix last tests
* godoc
* add test for broadcast in apply fork choiec
* remove unneeded code
* remove tracer adapter, not needed
* remove extra stuff
* remove any
* revert addr_factory
* revert addr_factory
* Revert "revert addr_factory"
This reverts commit e93fb706494a1070158b8db31e67146d6b0648ad.
* Revert "revert addr_factory"
This reverts commit dedaa405559cc818698870c4e4570953367f1e3c.
* revert removal of this code
* unused param
* implemented all the merkle func signatures
* branch indices complete
* check for index out of range in generating merkle proof
* completed full tests for sparse merkle trie impl
* lint
* formatting
* gazelle
* commentary
* ivan comments
* fmt
* get rid of the deposit trie
* recalculate trie when eth1 data changes
* default data response recalculates tree
* update merkle trie to use raw bytes
* use the new verify merkle root func
* builds
* if default data response historical deposits are empty, return the deposit root at the contract at the time
* work on trie
* trying again with more logging
* keep track of merkle trie indices, use correct big int ops
* use uint for merkle idx
* add todo
* update ticker correctly
* fix config and remove unnecessary logs
* readd plus one fix
* clarify some details
* weird imports spacing
* gazelle, lint
* fix tests using the new deposit trie
* builds but tests still fail
* rpc tests
* lint
* tests pass
* bazel lint
* rem commented block
* revert att slot fix
* preston comments
* comments
* fix build
* address last comment
* use counter
* imports
* add recovery for initial sync
* add recovery for rpc
* adding to other services
* remaining services and tests
* fix test
* remove changes to rpc
* handle powchain
* handle in powchain
* abstract to shared package
* gazelle
* lint
* remove for operations
* add in more for operations
* travis
* fix lint
* implemented all the merkle func signatures
* branch indices complete
* check for index out of range in generating merkle proof
* completed full tests for sparse merkle trie impl
* lint
* formatting
* gazelle
* commentary
* ivan comments
* fmt
* bench tests
* change old comment
* goimport
* partition travis
* Verify signatures of attestations
* Implement BLS Signing for attestations
* Remove custody bit 0 from the attestation for now
* Fixes tests for attestations
* Fix tests to ensure they use proper attester indice
* Run gazelle
* Goimports
* Test attestation sigs in block operations
* Change formatting and make sure signatures are actually verified
* Fix duplicate import
* Fix duplicate import from merge
* Organize attestation sig to be conssitent with codebase
* Update to comments
* Change signatures to use aggregation
* Run gazelle
* Change function to return err instead of bool
Also gofmt
* Fix for comments
* Move createAggregationSignature to a function in attestations.go
* don't broadcast to yourself
* todo
* Also listen for incoming streams
* send to a specific peer
* add godoc comment
* handle EOF as a normal thing
* gazelle
* add test for subscribing via direct comm
* recover from a panic in p2p
* Add safely process function
* print proto message
* add status to the span, if available
* add status to the span, if available
* adding check for chainHead
* add batch block limit
* adding state root
* removing genesisHash
* removing setBlockForInitialSync
* fixing tests
* remove obsolete check
* changing to check for state initialization
* changing var name
* fix test
* add in tests
* fix all tests
* lint
* reduce test time
* merge fixes
* gazelle
* fatal if impossible to receive chainstart
* fix tests
* fix
* custom delay
* completed custom delay
* errors
* better logs, nothing at genesis
* use demo in val
* add gazelle
* log
* starting to log stuff
* pass in ops
* avoid printing the large #s for debug, still working on tests..
* all around better logging
* fixed build error in epoch process
* fixed state transiton tests
* fixed block tests
* lint
* verify sigs in randao
* ready for inclusion falg
* only print waiting when slot is not valid
* fix build
* mod config
* fixed last justified slot issue
* fix inclusion
* fixed attestation issue
* using zero hash from params instead
* fix tests
* update balance
* removed swp
* more `- genesis_slot` for logs
* rem unused log
* fix broken tests
* account for skip slots in state root computation
* fixes done
* validator guide bug fixes - 671
* epoch boundary at the last slot of the epoch
* fix epoch issue
* more balance cal logs for debugging
* greater balance
* attestaton fixes
* fixes
* addressed testrun
* fixed ejection balance
* fix tests with far future epoch
* revert sync change
* revert initial sync change
* fix changes
* off by one att fix
* revert the att fix
* address comments
* format
* fix build
* rem file
* move deposit input to keystore pkg, add proof of possession and withdrawal addr
* Add spec details for deposit input
* Use ssz
* actually use withdrawal key
* remove a few references that tie the validator binary to the go-ethereum crypto library
* fixes
* remove unused vars
* gazelle
* nosec on this crypto library
* begin using tree hash instead of hash for state and blocks
* replace with ssz
* rem references to vote cache
* replace all instances of state/block hash with root
* goimports
* almost every test in the world fails
* goimports
* all tests pass, tree hash across repo
* provide validator with real keystore public key
* fmt
* build errors buildkite
* readd imports removed by goimport
* gazelle
* address broken tests
* make reference to filename a param
* fmt
* imports
* gazelle
* os remove all
* Use better Temp storage for tests
* testmain approach to avoid repeating expensive operation for each test
* travis lint
* fix test
* nokeystore in status test
* passing
* fix goimports