* first pass, step 1 works
* naive from finalized to head
* delete commented code
* checkpoint progress on tests
* passing test
* abstract code slightly
* failure cases
* chkpt
* mostly working, missing a single block and having timeout
* passing tests
* comments
* comments
* gaz
* clarify comments
* progress on a few new cases
* add back bootnode query tool
* bootstrap from DHT
* chunked responses in round robin
* fix tests and deadlines
* add basic counter, time estimation
* hello -> handshakes
* show peers in use during sync
* just one last test failure
* only request blocks starting in the finalized epoch for step 1
* revert that
* comment out test and add better commentary
* move requestBlocks out to pointer receiver
* mathutil
* Update beacon-chain/sync/initial-sync/round_robin.go
Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com>
* PR feedback
* PR feedback
* Implemented Power of 2 helpers
* Test for power of 2 helpers
* Gazelle
* Fmt
* Implemented MerkleTree
* Test for MerkleTree
* Fixed tests
* Implemented ConcatGeneralizedIndices and GeneralizedIndexLength
* Tests for the above
* Benchmarked copy, it's faster
* Implemented rest of the indices helpers
* Tests for indices helpers
* Delete
* archive participation begin implementation
* validator participation compute
* comments
* compute participation common func
* full test for archiving data
* gazelle
* complete tests
* gaz
* properly retrieve the validators
* revert weird change
* historical validator fetching
* resolves issues with current tests
* adding test for old epoch validators
* tests in
* archive participation begin implementation
* validator participation compute
* comments
* compute participation common func
* full test for archiving data
* gazelle
* complete tests
* gaz
* define archived validator assignment method
* archived assign logic
* need to use compute committee next
* compute archival assignments helper func
* properly compute committee using current shard
* modify the assignments request to take in a query filter item
* more intuitive implementation of list assignments
* utilize the query filter
* complete implementation
* revamp tests
* fixing current tests before adding archive tests
* test now passes using len filtered indices for total size
* include prop index in test
* revert bad change
* use ethapis
* add necessary tests
* comments
* HeadFetcher data race fix
* bazel run //:gazelle -- fix
* add the db teardown to test
* add TestChainService_SaveHead_DataRace test
* split race and norace tests
* change testset name
* test CI with 'spectest' tag instead of 'raceon'
* one more test CI with 'spectest' tag instead of 'raceon'
* bazel run //:gazelle -- fix
* set test tag to 'race_on'
* not clone the state
* Run time bug
* Still failing
* Run time working
* Run time working
* Gazelle
* Fixed all the tests
* Revert config
* Revert back test configs
* Revert config
* Tested run time again, everything is good
* Implemented AttestationPoolNoVerify
* serve nodes
* remove testing flag
* add back bootnode
* add dht
* add back dht
* gaz
* fix build
* bootnode works in runtime
* fix all references
* all tests pass
* remove feature flag
* separate out ports
* lint
* fix docker build
* use one error package
* Run time bug
* Still failing
* Run time working
* Run time working
* Gazelle
* Fixed all the tests
* Revert config
* Revert back test configs
* Revert config
* Tested run time again, everything is good
* archive participation begin implementation
* validator participation compute
* comments
* compute participation common func
* full test for archiving data
* gazelle
* complete tests
* gaz
* remove double negative grammar in comment
* use archive in rpc
* uses the archive!
* error if nothing found in archive
* comment
* use head fetcher and root
* tests pass
* archive active set changes appropriately
* archive committees
* archive info
* done with committee info archiving
* archived set changes stored
* fix build
* test for archive balances and active indices
* further abstractions
* only archive epoch end
* tests all pass
* tests pass now
* archive done
* test for activated validators
* tests for exited
* amend message
* use different proto
* finalization fetcher
* gaz
* use root
* use ctx
* use new ethapis
* use proper hash
* match apis compatibility
* match apis
* properly use participation
* fix tests
* use right commit
* first version of the watchtower api
* first version
* delete watchtower
* move to message loop
* roughtime
* one time
* fix test
* Fixed
* Fixed
* Revert unused lock
* first version of the watchtower api
* Initial prototype of sync parent fetching/processing
* Another map to track seen block root
* Fixed fmt
* Ready to live test
* Ready to live test
* Seperate pending block queue into its own
* first version
* delete watchtower
* move to message loop
* roughtime
* one time
* fix test
* Started testing but peer list empty
* Comment
* Loggins
* Stuck at decoding non proto type
* Revert
* First take, need feedback
* Run time panics at hello
* Revert
* use reflect properly
* Fixed subscriber
* instantiate helper
* More reverts
* Revert back tests
* Cont when EOF
* Working
* Clean hello tracker on peer disconnection
* Clean hello tracker on peer disconnection
* Move to validation
* Propoer locking
* Propoer locking
* Fmt
* Nishant's feedbacke
* More feedback
* All tests passing
* fix build
* remove log
* gaz
* Added the todo
* archive participation begin implementation
* validator participation compute
* comments
* compute participation common func
* full test for archiving data
* gazelle
* complete tests
* gaz
* remove double negative grammar in comment
* use head fetcher and root
* tests pass
* archive active set changes appropriately
* archive committees
* archive info
* done with committee info archiving
* archived set changes stored
* fix build
* test for archive balances and active indices
* further abstractions
* only archive epoch end
* tests all pass
* tests pass now
* archive done
* test for activated validators
* tests for exited
* use ctx
* first version of the watchtower api
* first version
* delete watchtower
* move to message loop
* roughtime
* one time
* fix test
* Update block attestation votes
* Clean up
* Found a bug
* Confirmed to be working in run time
* Confirmed to be working run time
* Raul's feedback
* Tests
* archive participation begin implementation
* validator participation compute
* comments
* compute participation common func
* full test for archiving data
* gazelle
* complete tests
* gaz
* remove double negative grammar in comment
* use head fetcher and root
* tests pass
* retrieve attestations by block root as well
* add beacon block root filter
* rem err unimpl
* add changes to list atts filter proto
* utilize the new filter attributes
* add filter types
* utilize filters in the api server impl
* tests for filter
* tests pass
* filter test done
* fix test by using head fetcher instead
* gaz
* no panic
* use new ethapis commit
* elim panic
* res panic
* ensure proto compatibility
* fixed broken test