Commit Graph

578 Commits

Author SHA1 Message Date
Raul Jordan
c1a9937760
Post ChainStart Validator Activation (#1934)
* 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
2019-03-12 00:05:55 -04:00
Preston Van Loon
4266757511
typo (#1968) 2019-03-11 21:15:50 -04:00
Nishant Das
7179b6930b Remove Incorrect Error Logs in Sync (#1943) 2019-03-11 15:07:16 -07:00
terence tsao
64913d66f4
Fix off by 1 for attestation justified epoch checking (#1963) 2019-03-10 21:07:05 -07:00
Preston Van Loon
bdbc572f3f Add grpc middleware to recover from panics (#1956) 2019-03-10 18:19:52 -07:00
Preston Van Loon
e4588d9be0
Revert "Create and Verify Signatures for Attestations (#1908)" (#1958)
This reverts commit 23072983ff.
2019-03-10 20:02:47 -04:00
Nishant Das
028506e7ed Handle Panics in Remaining Services (#1926)
* 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
2019-03-10 17:53:28 -05:00
terence tsao
19977afa96
Misc updates for epoch processing (#1957) 2019-03-10 12:21:40 -07:00
terence tsao
2c14c3e109
Clean up Atts Older Than Epoch Length (#1942) 2019-03-09 15:40:51 -06:00
Preston Van Loon
509c973936 minor fixes (#1949) 2019-03-08 21:12:38 -06:00
Nishant Das
c989021393
Fix Hashing Errors in Sync (#1948)
* fix incorrect hashing

* fix hashing of blocks
2019-03-09 10:36:44 +08:00
Nishant Das
7c5a7fb044 Handle Skipped Slots in Sync (#1939)
* handle edge cases

* tests passing

* Update beacon-chain/sync/initial-sync/service.go

* Update beacon-chain/sync/initial-sync/service.go

* Update beacon-chain/sync/initial-sync/service_test.go
2019-03-08 10:09:24 -06:00
terence tsao
40d082bdc5
LMD GHOST fork choice implementation and tests (#1933) 2019-03-08 07:55:55 -06:00
Ivan Martinez
23072983ff Create and Verify Signatures for Attestations (#1908)
* 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
2019-03-08 15:30:01 +08:00
Raul Jordan
205594c5d6 Fix Travis Failures on Master (#1938)
* resolve travis conflicts

* cp proto

* revert

* remove unused context
2019-03-07 23:54:41 -05:00
Preston Van Loon
2e7b08f97e
p2p fixes / improvements (#1931)
* 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
2019-03-07 21:37:15 -05:00
Nishant Das
2f9de6f93c Clean Up Batched Request (#1932)
* goimports

* do not log empty batches

* invalid request
2019-03-07 16:43:48 -06:00
terence tsao
1b995d1527
Fix Current Block Children Implementation (#1923) 2019-03-07 11:03:16 -06:00
Preston Van Loon
90225aac31 PendingAttestations: allow for request to specify a slot (#1922)
* PendingAttestations: allow for request to specify a slot

* enhance the test
2019-03-07 09:56:22 -06:00
Nishant Das
de22ef2bbd add tests and fix (#1925) 2019-03-07 09:39:29 -05:00
Nishant Das
6d69ac1abd
Add State Generator (#1718)
* add finalized function

* add functions

* gazelle

* add separate package for import cycles

* main tests are passing

* add finalized state test

* add block test

* fix tests and gazelle

* lint

* build file

* remove package

* remove unecessary method

* visibility

* remove package

* comments

* final comments

* imports spacing

* goimports
2019-03-07 11:02:47 +08:00
terence tsao
23e2dd65a3
Sync Drops Attestations < 1 Epoch Length (#1917) 2019-03-06 18:48:32 -06:00
Preston Van Loon
018f200ce9
Fix attestations again (#1916) 2019-03-06 18:59:47 -05:00
Raul Jordan
728c9fbfdc
fix the wait for activation condition (#1915) 2019-03-06 17:16:06 -06:00
Preston Van Loon
dbb519880f
Fix off by one edge case for pending attestations (#1914)
* fix off by one error

* better plus one

* lint

* fix off by one
2019-03-06 17:03:31 -06:00
terence tsao
936c4dde77
Implement AttestationTargets for ForkChoice (#1912) 2019-03-06 15:03:52 -06:00
Preston Van Loon
34f0241f32
Fix wait for activation (#1913)
* fix but no test

* ensure a canonical state is sent
2019-03-06 15:13:09 -05:00
Preston Van Loon
869f08ad26
Proposer Service: Only return attestations within the last epoch (#1911)
* Only return attestations within the last epoch

* make array

* rename for clarity
2019-03-06 11:54:02 -05:00
terence tsao
ddcb92c549
Discard Attestations Older Than Prev Epoch Start Slot (#1905) 2019-03-05 21:27:28 -08:00
Preston Van Loon
eda03ff767
Recover from a panic in p2p (#1906)
* 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
2019-03-05 23:57:44 -05:00
terence tsao
b6ad702f3f update beacon chain spec link (#1897) 2019-03-05 18:54:58 -05:00
Raul Jordan
c22e4dc2ae
Wait for Validator Activation Stream Server (#1896)
* create wait for activation stream

* wait for activation server stream open

* complete server side logic

* formatting

* first test passing

* context closed test

* lint

* fix build failure

* imports

* eliminate unused cancel var
2019-03-05 17:06:50 -06:00
Raul Jordan
aebb523bca
Request Block Parent If Not Found During Regular Sync (#1892)
* logic for requesting missing block parent

* rearrange block parent fetch logic

* reorder logic

* tests pass

* gazelle

* typo

* weird spacing

* imports
2019-03-05 16:39:44 -06:00
terence tsao
d8da9757d8
Add Spans for Epoch Processing (#1895) 2019-03-05 14:18:07 -08:00
terence tsao
cf54bc794b Add Spans for Processing Block (#1894)
* add spans for processing slot

* gaz

* rm main

* added spans for block processing
2019-03-05 15:09:50 -06:00
terence tsao
ef54152071 Add Spans for Processing Slots (#1890)
* add spans for processing slot

* gaz

* rm main
2019-03-05 14:22:09 -06:00
Nishant Das
07a25ca710 Adding Prometheus Metrics and Tracing to Sync (#1858)
* adding tracing and metrics

* clean up main routine

* added tracing to initial sync

* gazelle

* fix tests

* fix naming

* comments

* consistent style in promauto counters

* rename spans

* final comment
2019-03-05 11:31:19 -06:00
Nishant Das
b264cdc557 Allow Node to Request State if it is Behind (#1875)
* fix naming

* comment

* tests
2019-03-05 10:59:49 -06:00
terence tsao
3f9124b30c
minus genesis epoch (#1886) 2019-03-05 07:51:13 -08:00
terence tsao
dd40320a1c Save and Delete Validators Pubkey - Idx Post Chainstart (#1873)
* starting tests

* added tests

* fixed comments

* gaz

* make sure key is using EntryExitEffectEpoch
2019-03-05 15:22:15 +08:00
Preston Van Loon
9999b3280a
Use promauto to automatically register metrics (#1872)
* Use promauto to automatically register metrics

* sub genesis slot
2019-03-04 21:38:03 -05:00
Nishant Das
d162b5603e clean up context (#1850) 2019-03-04 12:57:59 -08:00
skillful-alex
4194d78bed Add Web3Service Health Checks. (Issue #1204) (#1581)
* described the Status () function

* web3 service health checks

* remove method LatestBlockTime and add tests

* remove lastHeadInteractTime

* corrected conflicts of different branches of development

* goimports -w beacon-chain/powchain/service_test.go
2019-03-04 15:37:24 -05:00
Preston Van Loon
6af522986e
Enable POW chain by default (#1861)
* enable POW chain by default

* fix tests in node.go

* ignore ctx
2019-03-04 15:10:03 -05:00
terence tsao
eb9d4a630b add metrics for justification and finalization (#1854) 2019-03-03 22:53:20 -08:00
terence tsao
b00891880e
Implement Validator Status RPC Methods (#1839) 2019-03-03 21:28:00 -08:00
Raul Jordan
0ce7c8c599
remove old timestamp error log (#1807) 2019-03-03 15:26:59 -08:00
terence tsao
17682321fe
Clean Up Validator RPC Server (#1798) 2019-03-03 14:55:12 -08:00
Ivan Martinez
5aa7320507 Clear Up Code Inconsistencies (#1836) 2019-03-03 09:31:29 -08:00
Nishant Das
fe2eb5a812 Fixing Sync (#1830)
* fix querier

* new fixes for sync

* reducing batch size and adding equality condition

* remove commented code

* fix test

* fix few more tests
2019-03-03 11:03:47 -06:00
Preston Van Loon
f09c66035b
add slot metric (#1815) 2019-03-03 08:18:27 -05:00
Preston Van Loon
f5aed821a6 Set static to off for cgo built beacon-chain (#1813)
* Update BUILD.bazel

* gazelle
2019-03-02 23:49:27 -08:00
terence tsao
c467ef19fa remove fmt print (#1811) 2019-03-02 22:49:00 -05:00
terence tsao
94e6cfe478
Refactor Crosslink Committees at Slot (#1771) 2019-03-02 19:14:04 -08:00
terence tsao
6a1addbd1a remove logging exits (#1791) 2019-03-02 21:22:35 -05:00
Nishant Das
b8785ba1d8 Eth1 Data Fix (#1785)
* adding fields to initalize state

* fix references

* change naming

* change to eth1data

* lint
2019-03-02 17:38:22 -06:00
terence tsao
5ab93dfabb Fix Randao Reveal Bug (#1801)
* use 32 bytes

* all tests passed

* lint
2019-03-02 17:24:15 -06:00
Raul Jordan
88765b6d3c
Fix Attestation Info at Slot to Match Justified Epoch Expectations (#1768)
* fix crosslinkt committees

* fix lint

* fix in epoch

* imports

* add gx tags

* epoch shuffling tests

* regress test

* preston comments

* service change

* advance to handle skip slots

* ready

* imports

* rem unnecessary log

* revert config

* last comment

* imports
2019-03-01 18:33:55 -06:00
Preston Van Loon
8e3d8bca18
change this log to debug because its very verbose (#1772) 2019-03-01 16:28:03 -05:00
Preston Van Loon
4bf0ec0720 Block caching for ETH1Data (includes #1760) (#1769)
* add tests for cache

* changes to test

* add pruning and tests

* add fifo queue

* revamped key function

* fix all methods to use new fifo queue

* fix tests and gazelle

* refactor block cache

* lint

* add a bit more testing to service_test
2019-03-01 14:31:38 -06:00
James Towle
cfbbc9c61a Implemented the flag grouping logic (#1756)
* Implemented the flag grouping logic

* Added a usage file to the validator binary and fixed style issues

* Ran gazelle fix to fix the CI tests that failed
2019-03-01 14:48:05 -05:00
Raul Jordan
7fac8a3c42
Fix Crosslink Calculation in Assignment Fetching (#1737)
* fix crosslinkt committees

* fix lint

* fix in epoch

* imports

* add gx tags

* epoch shuffling tests

* regress test

* preston comments

* lint
2019-03-01 11:39:09 -06:00
terence tsao
6dc6a9b766 Misc Fixes for Epoch Processing (#1762)
* misc fixes for epoch processing

* more fixes

* more fixes

* added todos

* fixed tests

* lint
2019-02-28 20:47:32 -06:00
Nishant Das
43932bc0d1 Optimize ETH1 Data Vote (#1757)
* optimize ETH1 data vote flow

* fixing merge issues

* Add benchmark

* fix genesis case
2019-02-28 17:27:28 -06:00
terence tsao
852214e497
Remove Next Epoch Registry Change Checks (#1761) 2019-02-28 07:27:43 -08:00
shayzluf
62c6cd58e0 Batch db write in order to resolve test slowliness (#1732)
* first version of batching

* batching db writes to solve test slowliness

* remove debug msg

* variable problem

* remove exesive code
2019-02-28 13:14:52 +08:00
Nishant Das
b1799e08be add address check (#1754) 2019-02-27 20:49:57 -08:00
Preston Van Loon
a19cb1864e Tracing additions (#1747) 2019-02-27 19:55:47 -08:00
terence tsao
4bc324dc95
Make Getting Epoch Assignment Generic (#1746) 2019-02-27 17:16:05 -08:00
terence tsao
9f950211d8
Rename Shard Block Root to Crosslink Data Root (#1743) 2019-02-27 15:07:39 -08:00
Ivan Martinez
136950e0c5 Update some of client to v0.3 spec (#1733)
* Update validator to v0.3 spec

* Fix typos with rename
2019-02-27 12:21:15 -08:00
terence tsao
79252f1e96 Fix committee assignment bugs (#1740)
* moved processiing logs to block chain service layer

* fix-committee-start-shard-bug

* typo

* fixed test
2019-02-27 13:36:37 -06:00
terence tsao
727adacb4b fixed slashed epoch (#1723) 2019-02-26 16:12:06 -06:00
Raul Jordan
c2ad89a8b6
invalid timestamp from log issue (#1720) 2019-02-26 15:19:51 -06:00
Preston Van Loon
28e360665d
Complain if contract address changes (#1724)
* complain if wrong contract address

* add comment
2019-02-26 13:40:17 -05:00
terence tsao
84a6d2dcc5 Fix Get Previous Epoch Logic (#1721)
* moved processiing logs to block chain service layer

* fixed prev epoch logic
2019-02-26 11:53:36 -06:00
Raul Jordan
ed156e7c0e
use reg change flag everywhere (#1722) 2019-02-26 11:27:27 -06:00
Preston Van Loon
a21aa28ff8
remove preemptive chainstart variable set (#1719) 2019-02-26 11:41:22 -05:00
terence tsao
0976584f8e moved processiing logs to block chain service layer (#1708) 2019-02-26 10:23:38 -06:00
terence tsao
c4ebb0a522
Fix attestation inclusion (#1715) 2019-02-26 07:38:49 -08:00
Nishant Das
a27c52e3a3
Update Initial Sync (#1694)
* 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
2019-02-26 13:37:28 +08:00
Raul Jordan
f5178ef4a6 registry change fix (#1713) 2019-02-25 20:19:24 -08:00
Raul Jordan
20803b4c9d
Revert Usage of ssz.TreeHash Across Repo (#1711)
* revert using ssz.TreeHash

* gazelle
2019-02-25 21:42:31 -06:00
Raul Jordan
84142477ea
Utilize New UpdateRegistry Function (#1710)
* fix current boundary issue

* gazelle

* test fix

* deprecate old epoch processing justified hash indices

* finality fixes

* fmt

* pseudocode

* underflow conditions

* add back att fix

* remove off by one fix

* fix most tests

* fix all tests

* logging proposers

* use the update registry function

* outdated tests

* fixed check reg change

* gazelle

* tests pass

* registry change flag
2019-02-25 18:37:55 -06:00
Raul Jordan
f1114ca35c
Align Epoch Processing With Spec (#1703)
* fix current boundary issue

* gazelle

* test fix

* deprecate old epoch processing justified hash indices

* finality fixes

* fmt

* pseudocode

* underflow conditions

* add back att fix

* remove off by one fix

* fix most tests

* fix all tests
2019-02-25 15:16:12 -06:00
terence tsao
b6cc79fa2a
Save Validator Public Key -> Index in DB (#1690) 2019-02-25 09:37:02 -08:00
Raul Jordan
e19920aec1
Miscellaneous Runtime Fixes & Improvements - Raul (#1674)
* 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
2019-02-24 20:09:45 -06:00
Preston Van Loon
69572d0ada
Add validator balance metric (#1692)
* Add validator metrics

* Add test

* use hex.EncodeToString for faster processing
2019-02-23 23:33:10 -05:00
Ivan Martinez
06a9b582a0 Implement BlockExists and BlockHashByHeight (#1682) 2019-02-23 18:58:13 -08:00
Nishant Das
f5c88e1bcb
Test Syncing with Another Fully Synced Service (#1594)
* clean up test

* adding test setup

* add chainstart check to sync querier

* goimports

* goimports

* backend cleanup

* adding getters

* lint

* moving to db

* gazelle

* adding more services setup

* adding more changes

* adding different test setups

* other merge issues

* imports

* fixing keys

* get intial sync able to be set up

* new changes and gazelle

* use simulated p2p

* everything finally works

* unexport fields

* revert changes from merge

* remove mock server

* add documentation

* gazelle

* add another node

* review comments

* fix tests
2019-02-23 11:36:20 +05:30
Ivan Martinez
0d29b2cd91 Makes test naming consistent across codebase (#1636) 2019-02-22 07:11:26 -08:00
Raul Jordan
718f99ee10
Custom ChainStart Genesis Time Delay in Deposit Contract (#1666)
* custom delay

* completed custom delay
2019-02-21 10:51:29 -06:00
Nishant Das
5e5a8e75e5
Add ChainStart Check To Sync (#1671)
* Add chainstart to sync service

* adding changes to node

* fixing tests

* comments

* add test

* add another test

* remove test in build.bzl
2019-02-21 12:27:04 +05:30
Raul Jordan
dcc0672a19
Fatal if ChainStart Receiving Fails (#1665)
* fatal if impossible to receive chainstart

* fix tests
2019-02-20 15:58:23 -06:00
terence tsao
06bfda24d5 Revert "Remove Redundant Committee Assignment Getters in Validator RPC Service (#1655)" (#1664)
This reverts commit 15f8b6a10d.
2019-02-20 14:46:30 -06:00
terence tsao
ddb8fa1867
Implement Process Slot for Per-slot Processing (#1663) 2019-02-20 12:08:05 -08:00
terence tsao
15f8b6a10d
Remove Redundant Committee Assignment Getters in Validator RPC Service (#1655) 2019-02-20 11:53:49 -08:00
Raul Jordan
19abe81472
Implement Randao Reveal Signing in Proposer Client (#1650)
* finish the BLS API wrapper

* all tests passing

* unexported comment

* gofmt tests for bls

* block processing test into own package to avoid cycle

* randao tests pass

* blocks test passing

* use common deposit generator

* helper

* resolved import cycle

* setup initial

* builds

* almost done with blockchain tests

* fix blockchain tests

* getting through with chaintests

* revert client change

* lint

* sync master conflict gazelle

* randao test fixes

* randao proposer impl

* tests pass
2019-02-20 12:58:34 -06:00
Raul Jordan
9bee695a3b
Implement Eth1Data RPC Server Functionality (#1615)
* eth1 data comments

* eth1 data RPC server side impl

* logic is data objects is empty

* finished eth1 server logic

* update comments

* fmt

* big int comparisons

* begin adding eth1 data tests

* empty data votes test runs

* all tests complete with every code branch triggered, behavior correct

* fmt, imports

* address comments

* wrapped up tests

* addressed all comments
2019-02-20 11:57:02 -06:00
terence tsao
c0bf3ec5b9
Implement Attestation Req/Res for Sync Service (#1654)
* sync responds for attestation and unseen attestations

* hook up routines

* wrapped up tests

* better name

* gaz
2019-02-19 22:29:51 -08:00