* Add initial test
* chkpt
* add failing test
* add span to historical state lookup
* use db.HighestBlockSlot()
* fix comment
* update comment
* i wrote a test like a good programmer.
* add test back
* add assertion and unskip test, something new failing tho
* trying to fix test
* remove -1, not sure if i need it yet
* Revert "remove -1, not sure if i need it yet"
This reverts commit 2cfcbb8108b28bb3d7135a993d9053150d5f1e6e.
* save historical state on every save state
* fix hsitorical states
* set historical state in initialize state
* change to a bool
* fix error with empty retrieval of states
* Add missing import
* fix test
* lock in receive block
* remove state generator
* Revert "lock in receive block"
This reverts commit 151b10829d70b2dad3055a8db36d0e1269a853f2.
* Fix Initial Sync Not Processing Canonical Block to Produce Canonical State (#2152)
* fix init sync
* fatal if highest observed root does not match
* proto fields
* Update beacon-chain/sync/initial-sync/service.go
* confirm canonical state root
* fix most tests
* failing test
* fix PR tests
* lint
* no simbackend changes
* logf revert
* add todo
* fix off by one
* fix test with deleted property
* merge #2157
* passing tests :)
* 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
* 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
* update FFG check points in service
* where do stategenerators go?
* commented out state_generator_test for now
* moved state generator back to appropiate location
* fixed block processing with state generator
* fmt
* import circle bad commit
* fix
* taking preston's fix
* gaz
* save justified/finalized objs during beacon chain init
* update FFG check points in service
* where do stategenerators go?
* commented out state_generator_test for now
* moved state generator back to appropiate location
* fixed block processing with state generator
* fmt
* import circle bad commit
* fix
* taking preston's fix
* gaz
* refactor chain service
* restructure service and lint
* all calls to receive block in chain service are now blocking
* begin fixing tests
* refactored blockchain tests
* builds correctly
* blockchain tests pass again
* lint
* sync and rpc tests pass again
* done
* add in open tracing
* span in fork choice
* Update beacon-chain/blockchain/block_processing.go
Co-Authored-By: rauljordan <raul@prysmaticlabs.com>
* 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
* 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
* add fork choice helpers
* LMD GHOST basic implementation
* add todos
* add in the initial test and finalize rest of functions
* added tests
* more simulation, adding trivial case with only one option for a head
* panics
* begin helper function tests
* more helper tests
* higher vote wins
* LMD Ghost full test
* comment
* add types
* optimize
* prepared
* deposits for chain
* lint
* use the hash beacon block util
* rem unnecessary db methods
* comments
* setup works
* refactor repo to use protos
* removed block successfully in types
* db package updated
* db, core passing
* chain service done
* no more block instances
* all pass
* deprecate all block protos
* tests pass
* Persist Dag
* Add schema
* Add new message
* add mapping
* Adding check to save block
* Removing blocks mapping
* Make changes to block processing
* Change from mapping to a slice of hashes
* Adding tests to core
* adding more tests
* Fixing service test
* Add comments and fix bazel
* fix lint
* fix conflicts
* addressing review comments
* Removing references to active
* fixing tests with active state
* Protytype for #440: Persist blocks and latest state in DB
* simplify code
* removing block registry
* fix test
* adding block removal/iterator
* Addressing review comments
* Addressing comments
* removing extra line
* making vars private and adding canonical key
* fix lint
* splitting methods
* adding more changes
* lint
* improving coverage
* removing decodeslotnumber
* gazelle
* remove todos
* addressing preston's comments
* remove slotnumber
* lint
* begin with a block/state dag approach in prep for fork choice
* add TODOs for fork choice items, add data structure for forks
* remove syncing and processing states for incoming block sync
* simulator only broadcasts blocks now, no more state simulation
* fix sim tests, no more state sim
* bazel rerun
* naive fork choice
* split update head routine
* pesky race conditions
* fork choice rule works
* dag + fork choice working
* canonical head storage across sessions
* todo: save dag
* no more stalling after 10 blocks, using event feeds
* address review
* sync instead uses event feed
* refactored pure funcs into casper package
* tests pass
* fix lint
* refactor get blockhash
* refactor blockhashforslot
* event feed for incoming blocks in chainservice
* use config
* addressed all comments
* fix typo
* address yutaro comment
* using db interface
* check if parent hash in previous slot DAG
* works
* tests
* drop ffg suffix
* bazel gazelle
* full cov validators by height shard
* gazelle
* state tests
* all state tests
* 100% cov types and 99% cover casper
* cov up
* 80% blockchain cov
* fix lint
* sync functions for active and crystallized states
* make pb structure more semantic
* use run func to consolidate to one main routine
* remove mainchain package
* remove smc. yay!
* fixed NewSimulatedBackend
* added smc tests back
* race = off
* used latest commit from bazel-go-ethereum
* changed testoutput to all
* output test.log after failure
* disable race
* restore travis config to original state, add race=off to blockchain workspace
* added issue number and fixed typo
* Fix odd placement of import
* Puts all of NewGenesisBlock() into GenesisBlock()
Also removes the unneeded TODO
* Add error check for db retrieval
* Add missing bazel imports
* Add back NewGenesisBlock and create GenesisBlock in NewBeaconChian
* Fix GenesisBlock() to grab the block from memory db
* Fix according to requested changes
Fix GenesisBlock() to grab the block from memory db
Fix odd placement of import
Properly add ParentHash to Block
Remove no longer needed if statement condition
Puts all of NewGenesisBlock() into GenesisBlock()
Also removes the unneeded TODO
Add error check for db retrieval
Add case for if the beaconChain is missing a genesisBlock
Add missing bazel imports
Add back NewGenesisBlock and create GenesisBlock in NewBeaconChian
Remove duplicate code
Change genesis block timestamp to unix 0
Adds info log when a genesis block isn't found
* Provide fakeClock to pass tests with a mocked genesisBlock
* Fix unexpected log in test from addition of genesis block
* Add tests for clock