* Initial commit to extract initial sync code
* Add stop/resume of sync/intialsync
* bazel run
* gometalinter
* add tests
* cleanup
* build fixes
* use infof rather than errorf if sync is not in correct state
* Add TODO comment detailing eventual completion of transition from initial sync to sync
* fix build
* pr comments
* fix tests
* bump
* 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
* sync functions for active and crystallized states
* make pb structure more semantic
* use run func to consolidate to one main routine
* add discord join link
* extra line
* fixed sentnce
* use discord badge
* Adding proto topics
* Adding crystallized state request
* Reverting shanges to proto
* Adding db checks
* get crystallised state
* Finalize epoch for mapping
* more changes
* cleaning up main routine
* adding tests
* fix test
* Adding ability to save blocks
* Adding block fetcher
* Another test for setting finalized epoch
* adding final tests
* finished tests
* adding comments
* gazelle
* Making requested changes
* Fixing lint
* stop sync from exiting
* fixing lint
* lint
* Adding new request type to proto
* Making changes to block/state requests
* Change tests
* fixing error messages
* gazelle and lint
* adding back crystallised state
* fix tests
* Fixing merge conflicts
* Addressing review comments
* Changing back to one service
* removing case