* Update config for deposits processing
* Add pending deposits database methods
* oops forgot the files
* move the lock after the nil check
* move the lock after the nil check
* test inclusion behavior
* Insert pending deposits on process deposit log
* WIP - with TODOs
* interface w/ test
* basic test for broadcast
* Add computeStateRoot funciton
* remove custody challenge
* resolve TODO lint issues
* more TODOs
* revert new line in types.proto
* broadcaster comment
* one of several failure condition tests
* Add test cases
* handle compute state error test case
* fix config in validator helpers
* fix tests too
* fix conflict
* partial PR feedback
* remove p2p
* gazelle
* package comment
* Better godoc
* rpcHealth
* TestBadEndPoint not passed
* Crasher and TestCrasher()
* panic and recover
* assertPanic , TestBadEndPoint failed because of panic in goroutine
* log not found: Starting go routine
* TestLogger implementation
* Testlogger with map and overriden Fatalf
* rebased
* testLogger - modified the severity of message - added TestStatus - goimports
* fix test issues
* fmt
* able to bazel build beacon chain.. yay
* fixed package validator tests
* fixed a few more package tests (epoch, blockops, forkchoice)
* fixed all the tests! and lint. Woohoo
* moving committee helpers to own package
* more fixes at epoch processing
* fixed rewards and penalties tests
* fixed rest of the tests. yay
* tests passing once again in db package
* fixed all tests
* revert some weird p2p changes made accidentally
* fix repeated code
* build fixed
* fix p2p
* fix all tests
* initialize beacon state separately
* extracting out testcase into another func
* creating function for simulated objects
* creating simulated object struct
* final clean up
* documentation
* lint
* review comments
* update proto fileds
* Start writing ProcessETH1Data function
* More progress on tests
* Continue more work on tests
* Fix almost all the tests
* Fix all tests
* Fix everything
* Fix after rebase
* Fix for suggestions and fix per-epoch operation
* Remove method usage
* Fix build
* Fix suggestions
* Fix merge issues and suggestions
* Fix rebase issues
* Remove the error from ProcessETH1Data
* WIP write test
* Update test to reach crosslinks
* Revert "Update test to reach crosslinks"
This reverts commit 5ff9177f96c12c98c54eafffcfb385bd966b0888.
* Revert "WIP write test"
This reverts commit f7e7ed715c4af6b7e3c95643f7ebf85830caf638.
* begin reorder
* move into beacon server
* add proposer server
* fix
* add proposer server
* wrap up rpc reorder
* eliminated deprecated RPC endpoints
* formatted nicely
* RPC protos
* fix lint
* integrate hash proto
* autoclean
* deprecate all old code
* include the rest of methods mocks
* bazel run
* lint fixes
* Begin renaming
* Missing goimports
* Continue rename
* Fix errors and mismatches
* Run proto script
* Fix proto
* Fix some more issues
* Fix tests
duh
* Fix goimports
* 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
* implemented process pentalties and exit logic
* tests
* add MaxWithdrawalsPerEpoch to config
* preston's feedback, replaced index with idx
* s/e/penalizedEpoch
* removed blank line
* deposit definition according to latest spec
* ssz decode input data tests
* fix todo
* ignore XXX fields in struct
* fix
* timestamp
* gazelle run processing
* process deposit complete
* all logic complete
* verify merkle branch
* gazelle
* process deposit func
* diff cov 1005
* add todo"
* all test cases written down
* most tests complete
* ttl timestamp fail
* 100% code coverage in deposits
* fix params
* encode deposit data helper func
* state transition with no slots failing with panic at calcnewblockhashes
* smaller deposits for chain start
* state advancement benches
* ran go tests
* bazel
* improve the thing
* lint
* works works works
* all conflicts fixed
* edit readme to specify tests format
* edit readme to specify tests format
* skip slots works yay
* gazelle
* edit readme to specify tests format
* wrapped up all randao simulation
* fix
* passing
* goimports
* move to slices pkg
* deadcode
* deposit yaml tests
* created deposit trie implementation in Go
* created deposit trie implementation in Go
* gazelle
* merkle branch generation
* merkle branch generation
* more merkle debugging
* fix deposit trie
* include new merkle trie functions
* update all deposit operations
* capitalize
* advancing deposits fully works, grows the validator set
* wrap up time formatting
* lint fix
* include all information in the README
* edit conf
* revert
* clean up before merge
* successfully e2e test proposer slashings
* casper advancement
* wrap up casper slashings
* gazelle
* fix conf
* fix comments
* advance validator exits complete
* wrap up readme
* deposit definition according to latest spec
* ssz decode input data tests
* fix todo
* ignore XXX fields in struct
* fix
* timestamp
* gazelle run processing
* process deposit complete
* all logic complete
* verify merkle branch
* gazelle
* process deposit func
* diff cov 1005
* add todo"
* all test cases written down
* most tests complete
* ttl timestamp fail
* 100% code coverage in deposits
* fix params
* encode deposit data helper func
* state transition with no slots failing with panic at calcnewblockhashes
* smaller deposits for chain start
* state advancement benches
* ran go tests
* bazel
* improve the thing
* lint
* works works works
* all conflicts fixed
* edit readme to specify tests format
* edit readme to specify tests format
* skip slots works yay
* gazelle
* edit readme to specify tests format
* wrapped up all randao simulation
* fix
* passing
* goimports
* move to slices pkg
* deadcode
* deposit yaml tests
* created deposit trie implementation in Go
* created deposit trie implementation in Go
* gazelle
* merkle branch generation
* merkle branch generation
* more merkle debugging
* fix deposit trie
* include new merkle trie functions
* update all deposit operations
* capitalize
* advancing deposits fully works, grows the validator set
* wrap up time formatting
* lint fix
* include all information in the README
* edit conf
* revert
* clean up before merge
* successfully e2e test proposer slashings
* casper advancement
* wrap up casper slashings
* gazelle
* fix conf
* fix comments
* deposit definition according to latest spec
* ssz decode input data tests
* fix todo
* ignore XXX fields in struct
* fix
* timestamp
* gazelle run processing
* process deposit complete
* all logic complete
* verify merkle branch
* gazelle
* process deposit func
* diff cov 1005
* add todo"
* all test cases written down
* most tests complete
* ttl timestamp fail
* 100% code coverage in deposits
* fix params
* encode deposit data helper func
* state transition with no slots failing with panic at calcnewblockhashes
* smaller deposits for chain start
* state advancement benches
* ran go tests
* bazel
* improve the thing
* lint
* works works works
* all conflicts fixed
* edit readme to specify tests format
* edit readme to specify tests format
* skip slots works yay
* gazelle
* edit readme to specify tests format
* wrapped up all randao simulation
* fix
* passing
* goimports
* move to slices pkg
* deadcode
* deposit yaml tests
* created deposit trie implementation in Go
* created deposit trie implementation in Go
* gazelle
* merkle branch generation
* merkle branch generation
* more merkle debugging
* fix deposit trie
* include new merkle trie functions
* update all deposit operations
* capitalize
* advancing deposits fully works, grows the validator set
* wrap up time formatting
* lint fix
* include all information in the README
* edit conf
* revert
* clean up before merge
* successfully e2e test proposer slashings
* fix comments
* deposit definition according to latest spec
* ssz decode input data tests
* fix todo
* ignore XXX fields in struct
* fix
* timestamp
* gazelle run processing
* process deposit complete
* all logic complete
* verify merkle branch
* gazelle
* process deposit func
* diff cov 1005
* add todo"
* all test cases written down
* most tests complete
* ttl timestamp fail
* 100% code coverage in deposits
* fix params
* encode deposit data helper func
* state transition with no slots failing with panic at calcnewblockhashes
* smaller deposits for chain start
* state advancement benches
* ran go tests
* bazel
* improve the thing
* lint
* works works works
* all conflicts fixed
* edit readme to specify tests format
* edit readme to specify tests format
* skip slots works yay
* gazelle
* edit readme to specify tests format
* wrapped up all randao simulation
* fix
* passing
* goimports
* move to slices pkg
* deadcode
* deposit yaml tests
* created deposit trie implementation in Go
* created deposit trie implementation in Go
* gazelle
* merkle branch generation
* merkle branch generation
* more merkle debugging
* fix deposit trie
* include new merkle trie functions
* update all deposit operations
* capitalize
* advancing deposits fully works, grows the validator set
* wrap up time formatting
* lint fix
* include all information in the README
* revert
* clean up before merge
* nishant comments
* Add version linking to binaries via --workspace_status_command=./scripts/workspace_status.sh
* dont export some things
* lint and better date
* even better date
* /healthz part1
* lint, fix
* lints and todos
* add p2p status test
* Add test for service registry Statuses
* fix my fake errors for the linter
* Test healthz handler
* Run gazelle
* first commit, remote att types
* no more agg attestation proto
* regen mock
* only attestations
* proto
* att process
* fix att references
* more tests passing
* use att protos
* complete
* change visibility
* use gogoprotobu
* first commit, remote att types
* no more agg attestation proto
* regen mock
* only attestations
* proto
* att process
* fix att references
* more tests passing
* use att protos
* complete
* Update dependency com_github_deckarep_golang_set to v1 (#1159)
* Update dependency com_github_edsrzf_mmap_go to v1 (#1160)
* Update dependency com_github_go_stack_stack to v1 (#1161)
* Update dependency com_github_rs_cors to v1 (#1162)
* Update dependency in_gopkg_urfave_cli_v1 to v1 (#1163)
* change visibility
* 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
* helper functions to get active validator total balances
* forgot to * params.BeaconConfig().Gwei
* tests
* GetEffectiveBalance comments & MaxDepositInGwei in config
* format
* WIP: Dummy db clean service
* [WIP. NOT READY FOR REVIEW] Add DB cleanup routine that cleans block vote cache
* Add missing bazel config
* Put DB clean behind a CLI flag
* Address review comments
* Fix error handling
* Preliminary support for relay nodes
* lint
* Add comment, remove TODO
* work on relay address factory
* dial relay node, if available
* forgot new files
* fix service registry breakage
* added logging
* Added a peer count with prometheus
* always start mDNS
* fix lint
* polling interval
* adding proto message
* changing proto messages
* changing naming
* adding slot functionality
* initial sync working
* new changes
* more sync fixes
* its working now
* finally working
* add tests
* fix tests
* tests
* adding tests
* lint
* log checks
* making changes to simulator
* update logs
* fix tests
* get sync to work with crystallized state
* fixing race
* making requested changes
* unexport
* documentation
* gazelle and fix merge conflicts
* adding repeated requests
* fix lint
* adding new clock , db methods, and util func
* revert change to test
* gazelle
* add in test
* gazelle
* finally working
* save slot
* fix lint and constant
* adding proto messages
* adding fields
* adding new service
* new changes
* checking in file from syncFix
* fixing test
* add test
* adding to node
* goimports
* adding query service to sync services
* sync working
* finally works
* fix test
* lint
* fix build
* fix test
* Standardize params for BeaconChain and Validator projects
* gofmt
* various changes to bring up to standards
* lint
* linter 2, not sure why travis complains
* revert service_test.go
* Added prometheus client and p2p metrics
* Avoid run the adapter if the metrics are disabled
* fix visibility issue
* Fix invalid p2p.Message sent to Adapters
The middlewares (adapters) must receive the complete message to avoid
problems and the main Handler must get the values from middlewares
Also, added tests and comments for metrics package
* Added logrus hook collector
This collector is used to collect counters of log messages.
The main purpose of these metric is to know how many warnings and errors
the system are getting.
* Add hook when register the prometheus service
* update bazel builds
* fix emit tests and remove unused imports
* gazelle --fix
* remove unused logger
* move prometheus package to shared directory
* better metric names and fix metric paths
* improve metric tests and start to use promauto
* added prometheus initial documentation
* fix tests
* fix type differences with go get and bazel
* Fix service test
* start sequence for node to connect to bootstrap nodes
* lint
* maybe warning is more appropiate?
* fix gazelle
* preston's feedback
* add go-ipfs-addr to workspace
* move flag to shared
* removed routed host
* Copy state in CalculateNewState and Recalculations
* Modifies method for copying state
* Adds CopyState() function to ActiveState and CrystalliziedState
* Fully deep copies the fields required
* Writes test for ActiveState's CopyState
* Add test for CopyCrystallizedState
* Update tests to requirements
* Fix wrong logs
* Change variables to newState
* Change newC to newState
* Gofmt the active_state_test.go
* bringing isAttestationValid up to spec and udpating tests
* Seems like a bug/typo returning Slot inside Attestation.JustifiedSlotNumber(), fixed now
* typos per @terenc3t
* change errors and messages
* using positive tests vs negative if statements to test for spec rules
* fix error typo
* remove comment
* Remove error checking for type assertions on p2p messages. The code should fail earlier in the p2p layer. Also fixed format on some TODOs
* format TODO again
* Add a bit more tests for p2p stuff
* goimports on feed_mock
* remove unused import
* Revert "Add Skip Coverage Condition in Coverage.sh (#416)"
This reverts commit 72a5dd1cf4.
* add coverage.sh back
* save attestations to db
* added tests
* use them in service.go
* process crosslink records
* revert
* revert
* revert
* test
* implementing basic proposer functionality
* checked in gomocks
* fix typo
* refactor using feeds
* use event feeds for assignment
* sending the latest beacon block over announcement chan
* 100 coverage, using feeds
* gazelle
* include parent hash from prev canonical block and slot number + 1
* including all other prop fields
* fix build
* proposer rpc method tests, implemented in beacon chain side
* godoc
* 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
* Adding block request
* removing extra line
* making vars private and adding canonical key
* fix lint
* splitting methods
* adding more changes
* lint
* improving coverage
* removing decodeslotnumber
* Able to search for and send blocks
* adding core tests
* adding tests
* adding documentation
* addressing raul's comments
* lint and gazelle
* addressing yutaro's comments
* improving coverage
* improve coverage
* improving coverage
* 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
* Revert "Add Skip Coverage Condition in Coverage.sh (#416)"
This reverts commit 72a5dd1cf4.
* add coverage.sh back
* new justifiedSlot field in crystallized state
* test coverage
* 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
* 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
* 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
* Add basic k8s configuration for geth deployments
* set genesis difficulty to 0x0
* gazelle, comments
* More comments on priority class and adjust priority class for ethstats
* Adjustments to the miner limits
* set minimum gas price to 0