Commit Graph

660 Commits

Author SHA1 Message Date
terence tsao
c8a170dbad Retrieve Attestations from Operation Service (#1606)
* fixed epoch_processing

* test p2p

* attestation pool to retrieve attestations up to max config amount

* lint

* update comments

* lint
2019-02-15 13:27:45 -06:00
terence tsao
eab64062d7
Fixed Epoch Committee Count's Lower Bound to 1 (#1604) 2019-02-14 18:06:09 -08:00
Raul Jordan
1d72cee59c Revive Our Demo Config for Local Testing (#1602) 2019-02-14 15:01:07 -08:00
Raul Jordan
ae13bb5c83
Use Tree Hashing Algorithm Everywhere for Block Roots and State Root (#1577)
* 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
2019-02-14 14:04:47 -06:00
Nishant Das
fa47e0fd95 Add ChainStart Delay Flag (#1591)
* add flag

* log formatting

* fix test

* do not process logs if flag is enabled
2019-02-14 11:11:03 -06:00
Raul Jordan
e052e457df
Remove Old References to Block Vote Cache (#1585)
* rem references to vote cache

* fix build
2019-02-14 08:54:29 -06:00
Nishant Das
bddceda33b Implement Verify Bitfield (#1562) 2019-02-14 01:17:54 +00:00
Raul Jordan
281e5d1cfd
Provide Real Keystore to Validator Service for Public/Private Key Access at Runtime (#1570)
* provide validator with real keystore public key

* fmt

* build errors buildkite

* readd imports removed by goimport

* gazelle

* address broken tests

* make reference to filename a param

* fmt

* imports

* gazelle

* os remove all

* Use better Temp storage for tests

* testmain approach to avoid repeating expensive operation for each test

* travis lint

* fix test

* nokeystore in status test

* passing

* fix goimports
2019-02-13 17:49:06 -06:00
terence tsao
59e5e59300
Update Fork Choice to Use Balance (#1564) 2019-02-13 23:13:00 +00:00
terence tsao
89b451cb6e Move Validator Helper Functions to Helper Package (#1584)
* fixed epoch_processing

* test p2p

* refactored validator helpers to helper package

* increased validator test cov
2019-02-13 15:04:31 -06:00
Raul Jordan
fb9d60c377
Update References to Deposit Contract, Update Flags (#1576)
* update readme

* rename k8 file
2019-02-13 13:08:28 -06:00
Raul Jordan
f707f14cb2
Change BLS Public Key Length Check in Beacon RPC Server (#1571) 2019-02-13 12:08:25 -06:00
Raul Jordan
c4ad6f220d
Wait to Send Genesis Time to Validators Until After Genesis State is Initialized (#1568)
* add state initialized feed to send to rpc service

* rpc tests pass by using mock initializer

* verifies the chain start send and receive

* chain start chan sub test

* goimports
2019-02-13 11:51:57 -06:00
terence tsao
f8d8865020
Moved Rewards/Penalties Helpers to Helper Packages (#1583) 2019-02-13 17:33:45 +00:00
terence tsao
fa47a9bf36
Remove Justified Slot (#1561) 2019-02-13 16:42:33 +00:00
Raul Jordan
cd415b0eda
Track Previously Seen Merkle Index to Prevent Duplicate Log Spam (#1566)
* using little endian and tests for encoding dep inputs

* use decode value and timestamp method in state

* updated comments to match serialization format

* latest compiled contract, abi, bytecode, and bindings

* to little endian everywhere

* fix all tests except for contract tests

* include contract changes

* address broken build

* compile with vyper v8

* update readme

* fix pkg name

* add skip chainstart delay

* skip chainstart delay tests pass

* to little endian timestamp

* using genesis timestamp instead of bool

* update with gofmt

* make more fields public

* duplicate log spam inconsistent root fixed by tracking last seen index

* sync with master

* readd weird removal of import

* readd libp2p import

* gazelle

* readd eth

* comments
2019-02-12 13:50:39 -06:00
terence tsao
05b29d6226 Update PendingAttestationRecord Proto (#1567)
* fixed epoch_processing

* test p2p

* PendingAttestationRecord -> PendingAttestation
2019-02-12 12:04:30 -06:00
Raul Jordan
5c06e326cf
Use Public, Constant Genesis Timestamp in Deposit Contract Instead of ChainStart Bool (#1557)
* using little endian and tests for encoding dep inputs

* use decode value and timestamp method in state

* updated comments to match serialization format

* latest compiled contract, abi, bytecode, and bindings

* to little endian everywhere

* fix all tests except for contract tests

* include contract changes

* address broken build

* compile with vyper v8

* update readme

* fix pkg name

* add skip chainstart delay

* skip chainstart delay tests pass

* to little endian timestamp

* using genesis timestamp instead of bool

* update with gofmt

* make more fields public
2019-02-12 11:06:52 -06:00
terence tsao
471b2ed8e1
Implement get_next_epoch_committee_assignment helper function (#1552) 2019-02-12 16:20:31 +00:00
Nishant Das
9ea379c450 change to message hash (#1563) 2019-02-12 08:34:53 -05:00
Raul Jordan
5dc5f1d1c8 Update Contract to Use Little Endian And Encoding Across Entire Repo (#1536)
* using little endian and tests for encoding dep inputs

* use decode value and timestamp method in state

* updated comments to match serialization format

* latest compiled contract, abi, bytecode, and bindings

* to little endian everywhere

* fix all tests except for contract tests

* include contract changes

* address broken build

* compile with vyper v8

* update readme

* fix pkg name

* add skip chainstart delay

* skip chainstart delay tests pass

* to little endian timestamp
2019-02-12 09:27:00 +05:30
Raul Jordan
3d8bb73f15
Attester RPC Server Functions (#1505)
* initial validator attesthead rewrite based on proposer rewrite

* proceed with fetching committees and tree hashing the canonical head at assigned attester slot

* complete filling the properties of attestation data and all associated root hashes

* add when to attest todo

* finish entire attester client logic

* tests with mocks checked in

* tests passing in client

* stubbed out server implementation

* fixed build due to old property

* regen mocks with new mockgen version

* fixed broken tests

* complete bazel build fix

* address some review comments

* deep proto test

* server implementation logic

* attestation info tests

* completed passing tests, tree hash still blocked by error with nil fields unfortunately

* fix todo failure

* gazelle rerun and master merge

* testing full behavior of attestation info server

* finished all required server tests and implementation

* break loop

* fix tests due to genesis slot updates
2019-02-11 10:15:25 -06:00
terence tsao
4cadd534db
Update Genesis Slot and Epoch (#1537) 2019-02-10 23:09:35 +01:00
Andrei Ivasko
8d59ac882b Create health check for SyncService (#1316)
* syncHealth removed capitalization from an error string

* replaced error variable names in testStatus()

*  TestStatus splits into 3 separate tests

* unit test refinement + travis resolved issues

* modified isSynced in querier.go + deleted uncommented code

* removed conditional logic from two unit tests

* TestStatus_ReturnsErrorWhenNotSynced

* moved defer TeardownDB outside setupSyncService
2019-02-10 15:07:31 -06:00
terence tsao
e321fdfafa Update to Use Crosslink in AttestationData (#1546)
* fixed epoch_processing

* test p2p

* attestation uses crosslink instead of crosslink root hash

* lint
2019-02-10 11:59:17 -06:00
terence tsao
b5e2a49dac Fixed a Prev Boundary Epoch Attestation Bug (#1547)
* fixed epoch_processing

* test p2p

* fixed PrevBoundaryAttestations and its tests
2019-02-10 11:28:33 -06:00
terence tsao
3dc6d3a2e6
Final Updates During Epoch Processing (#1540) 2019-02-09 22:14:10 +01:00
Raul Jordan
12524ae8dd
Update RANDAO to Match Spec (#1533)
* fix bug in eth1 data vote count increases

* updating attester slashings

* is double vote and attester pseudocode

* attester slashing revamp complete

* exits processing complete

* all block operations aligned to spec

* completed test revamp

* builds properly

* all done FINALLY

* deprecate all instances of old randao logic

* fix all broken tests and cleanup randao references across repo

* builds but tests failing

* fixing broken chaintests

* only chaintests fail now

* randao fully updated

* add bls todo

* lint

* travis

* fix unresolved property in struct

* remove used randao var
2019-02-09 14:35:51 -06:00
terence tsao
d008388bd1 Aligning ETH2.0 spec - Attestation and Epoch Processing - Part 2 (#1523)
* fixed epoch_processing

* epoch processing functions aligned

* fixed the last test!

* addressed nishant's comments
2019-02-09 14:15:59 -06:00
Preston Van Loon
b0b55e8d1d
Remove pending deposits after receiving a processed block (#1530)
* Remove pending deposits after receiving a processed block

* Abstract createDeposit

* fix test

* Rename helper for clarity

* MaxDepositAmount
2019-02-09 09:07:30 -05:00
terence tsao
c46a583acb
Update MaxDeposit Config Names (#1539) 2019-02-09 14:09:09 +01:00
Raul Jordan
7ae19ec370
Align Block Operations to Spec (#1512)
* fix bug in eth1 data vote count increases

* updating attester slashings

* is double vote and attester pseudocode

* attester slashing revamp complete

* exits processing complete

* all block operations aligned to spec

* completed test revamp

* builds properly

* all done FINALLY

* address comms

* comment

* no more confusing is double vote function

* surround
2019-02-08 15:53:36 -06:00
Preston Van Loon
031a9c96b9 Use better deposit logging at info (#1528)
* Use better logging at info

* Update service_test.go
2019-02-08 15:25:35 -06:00
Raul Jordan
258ef9f74f
Align Initial Beacon State to Latest Spec (#1527)
* aligned initial beacon state to latest spec

* update genesis block
2019-02-08 11:52:29 -06:00
Nishant Das
b07a3c3bb8 Update Deposit Contract (#1494)
* Update deposit Contarct

* updating deposit trie

* add verifyMerkleBranch

* fix test

* fixed all tests

* fix other tests

* fixing a test

* All tests are fixed

* lint

* fix lint
2019-02-08 11:01:15 -06:00
terence tsao
d837e5ef9e Aligning ETH2.0 spec - Attestation and Epoch Processing - Part 1 (#1519)
* fixed epoch_processing

* updated references in code

* starting fixing tests

* fixed rest of the tests. yay

* fixed transition test again
2019-02-07 15:46:22 -06:00
skillful-alex
1861cf2d15 Added Check on POWChain Service Initialization (#1502)
* added check on web3Service initialization

* fix unit test
2019-02-07 10:11:18 -06:00
terence tsao
f3cd076334
Aligning ETH2.0 spec - Update Initial Beacon State (#1518) 2019-02-07 12:54:29 +01:00
terence tsao
e76bf193b4
fix config across codebase (#1514)
* fixed epoch_processing

* fixed tests

* fixed more tests
2019-02-07 07:07:25 +01:00
terence tsao
b099f5d216 Aligning ETH2.0 spec - Update Validator Fields (#1513)
* remove ValidatorRegistryDeltaBlock

* fixed tests after changing validator functions to epoch first

* gaz
2019-02-06 15:46:05 -06:00
Preston Van Loon
05c6689c9d Pending Deposits RPC Server Implementation (#1508)
* Add impl for pending deposits via gRPC

* Add test for pending deposits RPC
2019-02-06 12:06:31 -06:00
Nishant Das
9ecef934d8 Update Beacon State to Match the Spec (#1489)
* first line of changes

* fix all tests in core package

* Finished fixing up all tests

* docs

* more docs
2019-02-06 10:44:27 -06:00
Raul Jordan
61026103c6
Validator Attester Rewrite (#1487)
* initial validator attesthead rewrite based on proposer rewrite

* proceed with fetching committees and tree hashing the canonical head at assigned attester slot

* complete filling the properties of attestation data and all associated root hashes

* add when to attest todo

* finish entire attester client logic

* tests with mocks checked in

* tests passing in client

* stubbed out server implementation

* fixed build due to old property

* regen mocks with new mockgen version

* fixed broken tests

* complete bazel build fix

* address some review comments

* deep proto test

* tests passing after checking for empty committee and crosslink root

* address nishant comments
2019-02-06 10:20:38 -06:00
Preston Van Loon
f7aa5c6c8d
Add metrics about the powchain service (#1509)
* Add a counter for received deposits

* Add a few more metrics

* gauge
2019-02-06 10:10:49 -05:00
terence tsao
2441266898
Aligning ETH2.0 spec - Crosslink Records (#1507)
* updated proto state fields to unlock alignment

* moved AttestationParticipants to rightful location

* crosslink committees to use epoch
2019-02-06 15:00:50 +01:00
terence tsao
a4b5666059 Aligning ETH2.0 spec - Update Fork and Domain Helpers (#1501)
* updated proto state fields to unlock alignment

* updated domain and fork helpers

* fixed comments

* fixed comments
2019-02-05 23:34:22 -06:00
Nishant Das
c48f9c96e0
Allow Simulated Backend to Advance Chain (#1445)
* initialize beacon state separately

* extracting out testcase into another func

* creating function for simulated objects

* creating simulated object struct

* final clean up

* documentation

* lint

* adding chain advancer

* review comments

* replacing lib

* adding initialization for chain and new vars in struct

* added func

* fixing tests and all other bugs

* fixing tests

* docs

* adding a new nil block function

* adding test

* remove check for nil blocks

* godoc

* fixing merge conflicts, tests

* fix test
2019-02-06 10:18:55 +08:00
Preston Van Loon
2ae40ba904 Delete binary from #1497 (#1500) 2019-02-05 23:55:44 +01:00
terence tsao
003d686f70
updated proto state fields to unlock alignment (#1497) 2019-02-05 21:14:29 +01:00
terence tsao
506db55be5
Aligning ETH2.0 spec - Make Epoch First Citizen (Shuffling and GetCrosslinkAtSlot) (#1488) 2019-02-05 19:52:14 +01:00
Jerry Fireman
79eb9a5230 Update Get Block Root function (#1339) 2019-02-05 11:55:15 -06:00
Preston Van Loon
58ca71af23 Insert pending deposits (#1495)
* 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
2019-02-05 11:25:09 -06:00
Preston Van Loon
2a0eae163e
Handle idx panic (#1492)
* fix panic on empty first committee

* fix issue in validator server too
2019-02-05 11:15:54 -05:00
Preston Van Loon
4b27b8408b
Fix travis (#1493)
* fix travis

* test 2

* goimports

* Remove unused p2p config

* remove unused var
2019-02-05 10:46:32 -05:00
Preston Van Loon
4fc8a3881a
Use a better message for notifying of a new deposit (#1491) 2019-02-05 09:07:42 -05:00
Preston Van Loon
4add403335
Validator Proposer Rewrite (#1462)
* 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
2019-02-05 08:47:25 -05:00
Preston Van Loon
45a4442f53
fix config in validator helpers (#1483)
* fix config in validator helpers

* fix tests too
2019-02-04 20:56:08 -05:00
Andrei Ivasko
4672859832 Create RPC health check (#1385)
* 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
2019-02-04 15:54:30 -06:00
terence tsao
720c80d8ee Aligning ETH2.0 spec - Make Epoch First Citizen (Package: Committee) (#1477)
* 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
2019-02-04 15:27:28 -06:00
terence tsao
21ac564631
Aligning ETH2.0 spec - Make Epoch First Citizen (Package: Validators) (#1460) 2019-02-04 21:34:33 +01:00
Preston Van Loon
721a3bfb6a Pending deposits db (#1475)
* Update config for deposits processing

* Add pending deposits database methods

* oops forgot the files

* move the lock after the nil check

* test inclusion behavior

* Update db.go

* Add debug logs if processing nil data

* missing return statement

* /before/until/
2019-02-04 21:47:17 +08:00
terence tsao
d1df055ab1
Aligning ETH2.0 spec - Removed Balances from Validator Proto (#1470) 2019-02-04 08:31:43 +01:00
terence tsao
176aa2688e
Implement Attestation Pool for Fork Choice (#1402) 2019-02-04 00:05:34 +01:00
Raul Jordan
088507af66
Initialize State from ChainStart Deposits in POWChainService (#1474)
* 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
2019-02-03 16:44:48 -06:00
Preston Van Loon
30080656bc Update config for deposits processing (#1473) 2019-02-03 20:21:18 +01:00
Nishant Das
9a4418c990
Clean Up Simulated Backend (#1433)
* 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
2019-02-03 18:58:36 +08:00
Ivan Martinez
5b209a2b18 Update DepositRoot to Eth1Data (#1403)
* 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.
2019-02-02 16:24:42 -05:00
terence tsao
3acffd878c
Aligning ETH2.0 spec - RANDAO helpers (#1454) 2019-02-01 22:22:52 +01:00
terence tsao
cdf50e2fa2 Aligning ETH2.0 Spec - Implemented Slot & Epoch Helpers (#1447)
* starting to use SlotToEpoch...

* updated exisiting functions...

* fixed epoch tests

* fixed rest of the tests

* tests for newly added helper functions

* fixed visiblity

* added PrevEpoch and NextEpoch helpers

* lint

* removed file from other commit
2019-02-02 00:52:35 +08:00
terence tsao
72542d5fc7
removed exit count (#1455) 2019-02-01 17:07:11 +01:00
terence tsao
8c355497ee
Beacon Block Operation Pool to store Attestation (#1444) 2019-01-31 19:54:24 +01:00
terence tsao
3eff953df3
Inclusion Distance with Multiple Attestations (#1404) 2019-01-31 10:33:12 +01:00
Raul Jordan
cec6c8de83 Standardize Naming of Shared Packages, Remove Deprecated Packages (#1435)
* rem txpool

* standardize repo shared utils, remove deprecated items

* complete

* package lvl godoc
2019-01-31 10:53:58 +08:00
terence tsao
844f61d32c
fixed test (#1440) 2019-01-30 20:59:33 +01:00
terence tsao
665f3f885c
New Operation Service Part 1 - Sync and DB connection (#1437) 2019-01-30 20:48:50 +01:00
Raul Jordan
425ec4eee1
Add NoSigVerification Option to State Transition (#1434)
* no sig verify

* gofmt
2019-01-30 13:45:01 +01:00
Raul Jordan
ec9240106e
Implement WaitForChainStart RPC Server and Client (#1421) 2019-01-30 13:28:53 +01:00
terence tsao
c0f36e467b
Eliminate Custody Logic for Phase 0 (#1408) 2019-01-30 11:11:13 +01:00
terence tsao
a52f73b78f
Remove Shard Committees Last Part (#1411) 2019-01-29 14:56:32 +01:00
Raul Jordan
07c0387be1
Validator Epoch Assignments RPC Implementation (#1419)
* 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

* epoch assignments

* deprecated committee code

* remove deprecated messages

* fixed mocks, added tests for validator epoch assignments

* gazelle

* fix broken bazel

* nishant comment
2019-01-29 13:56:14 +01:00
terence tsao
9e6782da04
add spec comments to fork choice functions (#1401) 2019-01-29 12:19:17 +01:00
Ivan Martinez
e9cfc08549 Update all beacon constants to latest in spec (#1407)
* Update all beacon constants

* Fix documentation

* Fix sync time in config

* Fix some names
2019-01-29 12:16:50 +08:00
Raul Jordan
4c46b02dac
Deprecating Old RPC Methods (#1410)
* 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
2019-01-28 20:41:04 +01:00
Raul Jordan
b86388410d
Restructure RPC Server Into Individual Servers (#1393)
* begin reorder

* move into beacon server

* add proposer server

* fix

* add proposer server

* wrap up rpc reorder

* gazelle

* lint fix

* fix broken build
2019-01-28 16:40:40 +01:00
Raul Jordan
98a4274b81
Refactor ChainService for Synchronous Tests and ChainStart (#1347)
* can now test blockchain service synchronously

* completed chainstart listener

* fix comment

* completed refactor

* fix

* fix build

* rem genesis fetch

* fix broken

* fixed concurrency bug

* comments
2019-01-28 19:59:37 +08:00
Nishant Das
1e862511aa
Replace Solidity Contract With Vyper (#1343)
* adding deposit contract

* Adding bindings

* remove unused info

* shifting deploy function over

* new changes

* fixing tests and moving log utils to contract package

* new changes,helpers, fixing tests

* fix failing test

* readme

* contract change

* changes to contract

* new changes,helpers, fixing tests

* missing files

* adding constructor to contract

* lint

* updating with spec

* finally got it fixed

* add in deposit arguments

* new changes

* all tests pass

* addresing raul's and terence's comments

* remove vrc
2019-01-28 16:45:28 +08:00
Ivan Martinez
8d88394b28 Hotfix/rename caspervotes (#1384)
* Begin renaming

* Missing goimports

* Continue rename

* Fix errors and mismatches

* Run proto script

* Fix proto

* Fix some more issues

* Fix tests
duh

* Fix goimports
2019-01-28 14:13:37 +08:00
Raul Jordan
4d43f5128a Remove Simulator Service (#1392)
* remove all instances of simulator service

* fix flag decl

* fix lint
2019-01-27 12:51:44 -08:00
Arun Kumar
f661053ea3 Update ProcessValidatorExits spec definition in comment (#1398) 2019-01-26 13:19:36 +08:00
terence tsao
af1c382828
Remove Shard Committees 5 - Align Core Package (#1379) 2019-01-25 08:20:02 -08:00
Dean Eigenmann
5d4af67e7d Update attestation_test.go (#1394) 2019-01-25 20:00:01 +08:00
Ivan Martinez
858231c90c Change baserewardquotient to spec and remove Gwei from config (#1388)
* Change baserewardquotient to spec and remove Gwei from config

* Attempt to fix test

* Fix tests
2019-01-25 15:10:53 +08:00
Preston Van Loon
956721fe43 Simplified validator workflow 2 - updateAssignments (#1371)
* Add attestation p2p messages

* first pass refactor

* lint

* viz fix

* comment unused const for now

* Add opentracing spans

* PR feedback

* added updateAssignments implementation

* update proto

* handle error in runner

* only do updates on epoch start

* gazelle

* goimports
2019-01-25 11:26:03 +08:00
Ivan Martinez
45e9eda43c Normalize ETH to Gwei client-wide (#1381) 2019-01-24 15:29:04 -08:00
terence tsao
821e7148f8
Remove Shard Committees 4 - Validator Registries Processing (#1368) 2019-01-23 23:09:52 -08:00
terence tsao
987b6e53b8
Remove Shard Committees 3 - Get RANDAO Mix Helper (#1364) 2019-01-23 22:44:19 -08:00
terence tsao
5cb361895d
Rm Shard Committees 2 - Get Crosslink Committees Helpers (#1360) 2019-01-21 23:38:26 -08:00
Ed Mazurek
10b237e72d db methods: remove Get prefix (#1351)
* db methods: remove Get prefix for getter functions

* db methods: consistent test names by removing Get
2019-01-21 17:34:11 +08:00
Nishant Das
7ff544fddf
Fix travis and Other Linter Errors (#1356)
* fix travis and other linter errors

* remove megacheck
2019-01-21 13:35:34 +08:00
terence tsao
779bccba1e
Rm Shard Committees 1 - Update Protos and Configs (#1353) 2019-01-20 10:26:33 -08:00
Raul Jordan
f89fce9bd7
Implement Basic LMD Ghost Fork Choice Skeleton + Helper Funcs (#1310)
* 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
2019-01-19 10:57:51 +08:00
Nishant Das
08a06458d9 Add in ChainStart Listener (#1327)
* changing handling of logs

* gazelle

* removing outdated vars

* fixing tests

* adding vrc bindings to service

* updating vrc sol and bindings

* more changes

* adding trie

* remove functions

* addressing preston's review

* tests

* gazelle

* fixed tests

* note

* Lint

* doc

* exploration test

* adding new methods and tests

* adding log type checker

* lint

* Adding processChainstartLog

* gazelle

* addressing comments

* addressing comments and adding tests

* review comments

* comment

* comment

* abi naming
2019-01-17 23:14:32 +08:00
terence tsao
2b24e7940e function to update penalized exit balances (#1335) 2019-01-17 09:10:42 +08:00
Nishant Das
75a431c969 Modify PowChain service (#1289)
* changing handling of logs

* gazelle

* removing outdated vars

* fixing tests

* adding vrc bindings to service

* updating vrc sol and bindings

* more changes

* adding trie

* remove functions

* addressing preston's review

* tests

* gazelle

* fixed tests

* note

* Lint

* doc

* exploration test

* adding new methods and tests

* adding log type checker

* lint

* gazelle

* addressing comments
2019-01-16 22:01:21 +08:00
terence tsao
463cd58171
Implement Process Penalties and Exit Logic (#1291)
* implemented process pentalties and exit logic

* tests

* add MaxWithdrawalsPerEpoch to config

* preston's feedback, replaced index with idx

* s/e/penalizedEpoch

* removed blank line
2019-01-15 21:52:57 -08:00
Raul Jordan
d47db5e834
Advance Beacon State Transition Part 6: Simulate Validator Exits (#1302)
* 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
2019-01-15 01:02:49 +08:00
Preston Van Loon
592c5c3d92 Refactor hashing of beaconblock to shared (#1315)
* Add beacon block hash function

* Refactor/remove old hash method

* gazelle
2019-01-15 00:41:20 +08:00
Raul Jordan
e25436557a Advance Beacon State Transition Part 5: Simulate Casper Slashings (#1298)
* 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
2019-01-14 23:54:27 +08:00
Nishant Das
c186274891
Encoding/Decoding Deposit Data Fix (#1317)
* fix encoding/decoding

* comments
2019-01-14 22:42:26 +08:00
terence tsao
e313e97666
Implement Validator Rotation Logic (#1279) 2019-01-13 12:52:31 -08:00
Preston Van Loon
b7b2e51450
Add reflection gRPC service to beacon-chain gRPC server (#1313)
* Add reflection gRPC service to beacon-chain gRPC server

* Move reflection to end of server bootstrap
2019-01-13 11:58:52 -05:00
Andrei Ivasko
b29188128d ToBytes32 (#1306) 2019-01-13 09:04:14 -05:00
Preston Van Loon
ddf454a04d Ignore empty public keys in gRPC request (#1309)
* Ignore empty public keys in gRPC request

* Remove log
2019-01-13 12:44:28 +08:00
Raul Jordan
3c5f5cfcd3
Advance Beacon State Transition Part 4: Simulate Proposer Slashings (#1297)
* 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
2019-01-12 10:11:43 +08:00
Raul Jordan
4b775e76d5 Advance Beacon State Transition Part 3: Simulate Validator Deposits (#1276)
* 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
2019-01-12 09:10:39 +08:00
Raul Jordan
5258f3d3d1
Advance Beacon State Transition Part 2: Simulate Block Randao at Every Slot (#1252) 2019-01-11 18:55:01 +08:00
Raul Jordan
1f11b821ab
Implement PoW Chain Deposit Trie in Go (#1285) 2019-01-11 16:29:30 +08:00
Preston Van Loon
83a31c50b8 Better printing of version number when starting nodes (#1294) 2019-01-11 10:19:58 +08:00
Preston Van Loon
b23ca60efd
Add simple version to binaries via golink (#1286)
* Add version linking to binaries via --workspace_status_command=./scripts/workspace_status.sh

* dont export some things

* lint and better date

* even better date
2019-01-09 23:19:33 -05:00
Nishant Das
09d4c3b25d
Modifying Block Proposals for Validator Clients (#1224)
* adding rpc method

* permissions

* adding functions

* gazelle

* adding new methods

* gomocks and test

* tests again

* new changes

* fix tests

* tests and godoc

* gazelle

* lint

* nosec

* addressing review comments

* addressing more review comments

* fix merge issues
2019-01-10 10:56:26 +08:00
terence tsao
060a311a14 Core Package Clean up Part 2 (#1268)
* comments on core package declarations

* fixed sentence

* cap

* no extra line

* fixed tests

* gazelle
2019-01-10 07:49:50 +08:00
terence tsao
911d30031a
Hook up Epoch-Processing Logic Inside State Transitions (#1246) 2019-01-09 09:26:40 -08:00
Raul Jordan
4bb6196f4f
Wrap Up Data Structure Renaming (#1270)
* spec renames

* fix goimports

* fix items
2019-01-09 03:49:17 -06:00
terence tsao
138bc37a60
Renaming Poc_ and Pow_receipt_ fields (#1271) 2019-01-08 20:42:42 -08:00
Nishant Das
bb7b0a324b
Fix Bug On Startup Using Genesis.json (#1258)
* fix bug

* making requested changes

* new changes

* changing initialize state

* remove genesis.json and references

* remove log

* readme

* readme

* remove reference
2019-01-09 11:03:57 +08:00
Raul Jordan
c86bd54ad1
Simulated Backend State Transition Tests Part 1 (#1221) 2019-01-06 09:25:43 -06:00
Preston Van Loon
f47f123aab Remove some redundant fetches from DB for the beacon state (#1257) 2019-01-06 13:05:16 +08:00
terence tsao
141a8dba87
Reformat Configs for Readability (#1256) 2019-01-05 20:36:05 -08:00
Preston Van Loon
aa4f66edeb fix some lint issues (#1239)
* fix some lint issues

* print error

* unname the unused params
2019-01-05 21:12:59 -06:00
terence tsao
074ac07dc8
Replace Validator Status Code With Activation/Exit Slot (#1233) 2019-01-04 22:39:07 -08:00
Raul Jordan
ccc2a4b91f
Process Validator Deposits (#1184) 2019-01-04 23:39:34 -06:00
Raul Jordan
7e1af4fceb
Remove Use of Proto .GetX for Value Getters (#1235) 2019-01-04 21:58:19 -06:00
Nishant Das
204b5ac594
Remove Special Records and Timestamp (#1223)
* remove dep fields

* permissions
2019-01-03 16:04:12 +08:00
terence tsao
576136e621
Cleanup Attestation Helper Function and Test (#1220) 2019-01-02 12:19:08 -08:00
Nishant Das
f305ee7fe6
Remove Deprecated Fields from Beacon State (#1222)
* remove fields

* remove deadcode
2019-01-02 13:23:03 +08:00
terence tsao
1314077a4d
Code Clean Up Part 1 - Core Package (#1216) 2019-01-01 09:17:44 -08:00
Arun Kumar
01e7755f30 Update slashing conditions according to specs (#1210) 2018-12-31 13:52:12 -08:00
terence tsao
d3acd397fb
Implemented Process Validator Registry (#1213) 2018-12-31 10:24:52 -08:00
terence tsao
f0c9a9f0de Implement Get Initial Genesis State (#1208)
* beginning epoch processing helper funcs

* starting InitialBeaconState

* tests

* gazelle
2018-12-31 15:40:14 +08:00
Preston Van Loon
e71a1b2703
Disable race detection on go docker images, use pure=on when there are no c++ deps (#1215) 2018-12-30 22:40:39 -05:00
Preston Van Loon
a901a154dc
Health check endpoints for services (#1183)
* /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
2018-12-30 16:20:43 -05:00
Raul Jordan
2c2b30fa3a Implement Process Deposit Validator Helper Function (#1200) 2018-12-29 14:10:48 -08:00
terence tsao
085bd27fe1 Implemented Can Process Validator Registry (#1188) 2018-12-29 12:21:34 -06:00
terence tsao
b23ccc608c
Update Validator Status and Process Ejections (#1186) 2018-12-29 09:24:11 -08:00
terence tsao
e03355f141
Helpers for Updating Validator Status (#1181) 2018-12-29 08:55:16 -08:00
Nishant Das
929bc04211
Implement IsSurroundVote, IsDoubleVote, GetForkVersion,GetDomain helpers (#1180)
* Adding vote helpers

* Adding fork/domain helpers

* Adding comments

* visibility

* removing misc package
2018-12-28 15:29:02 +08:00
Raul Jordan
f5abc780ab
Verify Block Proposer RANDAO (#1104) 2018-12-27 23:19:32 -06:00
Nishant Das
e95e3ed517
Update State Transitions to Process Block Roots (#1176)
* Adding block root updating functions

* Adding block root updating functions

* Commiting stuff

* Updating test

* permissions

* adding tests

* fixing tests and gazelle

* Revert randao changes

* Comment

* Addressing review

* indenting
2018-12-27 14:48:09 +08:00
terence tsao
c24e6806f3
Implement Validator Registry Delta Chain Tip Helper for Validator Rotation (#1179) 2018-12-26 21:47:05 -08:00
terence tsao
8515cc3cd1
Attestation Inclusion and Crosslink Rewards and Penalties (#1178) 2018-12-26 21:27:35 -08:00
terence tsao
75bf268d8b Rewards/Penalties for Justification and Finalization Case 2 (#1175) 2018-12-26 22:11:02 -06:00
Raul Jordan
952dbe983e
Integrate Block Operations Into State Transition (#1135) 2018-12-26 21:15:12 -06:00
terence tsao
72428239b8
Rewards/Penalties for Justification and Finalization Case 1 (#1173) 2018-12-26 07:46:06 -08:00
terence tsao
f975af8bc7
Rewards Penalties Helpers (#1168) 2018-12-26 07:22:52 -08:00
Nishant Das
5804dcfb67
Add Batch Syncing for Initial Sync (#1119)
* adding proto objects

* simulator changes

* adding stuff for initial sycn

* more changes

* finally fixed test

* fixing tests and sync

* test fix

* adding batched block response

* remove types references

* fix tests

* addressing review

* removing genesis block

* updating protos

* fix merge conflicts

* file permissions
2018-12-26 22:16:46 +08:00
Nishant Das
9db1002d87
Updating Genesis Block to Spec (#1172)
* Updating to spec

* addressing review comments
2018-12-25 14:47:07 +08:00
terence tsao
5b967fc6ce
Implement Crosslink Processing (#1167) 2018-12-24 06:58:18 -08:00
terence tsao
c7a92b88c8
Epoch Processing: Receipt Root, Justification and Finalization (#1158) 2018-12-23 22:36:09 -08:00
Raul Jordan
5d26efcfaa
Deprecate types.BeaconState with pb.BeaconState Generated Proto (#1164) 2018-12-23 16:51:04 -06:00
Preston Van Loon
10f45744d6
Use gogo protobuf as the protoc compiler (#1165)
* 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
2018-12-23 15:34:59 -05:00
terence tsao
b9a233da7d Implemented Rest of Epoch Helpers (#1145)
* beginning epoch processing helper funcs

* renamed helpers to under epoch_operations

* implemented AttestingValidatorIndices

* deleted old epoch_processing.go file

* implemented WinningRoot & LowerThan helper funcs

* rest of the epoch helpers

* gazelle

* added tests

* merged

* mentioned LowerThan is for big endian format

* fixed spelling
2018-12-22 15:38:09 -05:00
Raul Jordan
1065617087 Replace Attestation Type Primitive With Proto Generated Type (#1149)
* 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
2018-12-22 15:30:59 -05:00
Raul Jordan
e49a190754
Replace Types of Block Primitives With Proto Generated Types (#1137)
* 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
2018-12-20 17:00:38 -05:00
Raul Jordan
6125c304ba
Remove Deprecated Spec Logic (#1138)
* no more deprecated stuff

* remove incentive functions

* rem deprecated

* remove funcs
2018-12-19 20:45:21 -05:00
terence tsao
6eb2d816b4
Implemented ValidatorBalance field in Proto with Some Helpers (#1139) 2018-12-19 16:49:22 -08:00
Nishant Das
e92032346f Partial Implementation of the Slot Processing Routine (#1083) 2018-12-19 00:18:42 -05:00
terence tsao
74532a80d1
Boundary Attestation and Balances Helper functions (#1115) 2018-12-18 20:55:36 -08:00
terence tsao
6fb3af04da
Implement Attestation Participants Helper Function (#1111) 2018-12-17 10:34:28 -08:00
Kushagra Sharma
a0c540d780 Fixed hang when multiple processes open same DB (#1116)
* Fixed hang when multiple processes open same DB

* fixed error check and message

* removed punctuation on error message
2018-12-17 17:11:11 +08:00
Raul Jordan
58549b95e0
Implement Process Block Receipt Root Records (#1105)
* process receipt root records

* complete process pow roots

* gazelle

* remote print
2018-12-15 17:53:02 -06:00
Raul Jordan
1828537dd5
Implement Process Exits Block Operation (#1097)
* processing exit definition

* exit ops

* finished verification exits

* 100% cov

* comment

* fix
2018-12-15 17:06:24 -06:00
terence tsao
5c7539e2a1
Quick fix on a pseudocode typo (#1106) 2018-12-14 16:34:28 -08:00
terence tsao
53749c49d0 Get Epoch (&Boundary) Attestations Helper Functions (#1103) 2018-12-14 14:49:03 -06:00
Raul Jordan
708daae04f
Implement Attestation Processing Block Operations (#1088) 2018-12-14 13:35:53 -06:00
terence tsao
122ad6ef3c
Implemented Get_block_root Helper Function (#1096) 2018-12-13 11:35:11 -08:00
Raul Jordan
5e85133e16
Implement Casper Slashing Block Operations (#1086) 2018-12-13 10:35:50 -06:00
terence tsao
8d1718edf9 Helper Functions to Retrieve Total Validator Balances (#1087)
* helper functions to get active validator total balances

* forgot to * params.BeaconConfig().Gwei

* tests

* GetEffectiveBalance comments & MaxDepositInGwei in config

* format
2018-12-13 15:46:44 +08:00
Nishant Das
8d042e8d02 Update Wrapper for Beacon State (#1084) 2018-12-12 15:04:25 -08:00
Raul Jordan
94e4bc1f18
Implement Proposer Slashing Block Operations (#1076) 2018-12-12 10:18:50 -06:00
terence tsao
ecbf50c2fe Use Validator Status in Proto (#1082)
* use validator status code in proto

* typo & constant casing
2018-12-11 22:40:17 -06:00
Preston Van Loon
b4f8c0afaf
Add new ShardAndCommitteesAtSlot from spec (#1075)
* Add new ShardAndCommitteesAtSlot method

* remove debug print

* one more test condition for fun

* simplify
2018-12-11 21:01:27 -05:00
terence tsao
8402a1dd61
Part 1 of Cleaning Up State Proto (#1070) 2018-12-11 07:46:01 -08:00
terence tsao
3c7b5bb13a
Part 3 of Restructuring BeaconBlock Proto - Remove Special Record (#1067) 2018-12-10 09:00:34 -08:00
Nishant Das
724b036fff
Combine Sync Services (#1060)
* adding initial service

* got it working

* deleting redundant querier file

* golint

* formatting span messages

* lint

* lint

* addressing raul's comments
2018-12-10 13:26:44 +08:00
terence tsao
071cc85bc6
Update Shuffle Function (#1055) 2018-12-09 11:21:23 -08:00
Nishant Das
954af67882
Change to Golang Crypto Library (#1054)
* deprecate hashutil

* Revert "deprecate hashutil"

This reverts commit 6ee40f916c6fcf73fe372b980ba5645fe0456f9d.

* changing to golang crypto lib

* Add comment

* add test
2018-12-07 01:01:51 +08:00
terence tsao
3e8c2b2957
Updated Genesis JSON and Fixed Test (#1044) 2018-12-05 15:44:07 -08:00
terence tsao
52a987ee44 Change Hashing Function from Blake2b to Sha3 (#1045)
* switched from blake2b to sha3

* fixed test

* use sha3 from eth1.0
2018-12-05 12:13:33 +08:00
Preston Van Loon
29bba21ce2
Explicitly initialize the fork data for genesis state (#1034)
* Explicitly initialize the fork data for genesis block

* gofmt using 1.11.2

* gofmt
2018-12-03 22:45:38 -05:00
terence tsao
b8a9e839e7
clean up BeaconBlock's validator fields (#1037) 2018-12-03 19:05:22 -08:00
terence tsao
121654ff12
Removed Deprecated BeaconBlock Fields (#1035) 2018-12-03 08:10:47 -08:00
Preston Van Loon
8620311bfc
Rename crosslinks to latest crosslinks (#1032) 2018-12-02 22:10:47 -05:00
terence tsao
57038551d6
Update ValidatorRecord Proto (#1030) 2018-12-02 18:17:48 -08:00
Preston Van Loon
7cd6223755
Rename recent block hashes (#1029)
* update beacon-state proto to new spec

* AttestationData

* use bazel's pb.go

* boundry -> boundary

* Rename RecentBlockHashes to LatestBlockHashes
2018-12-02 15:25:55 -05:00
Preston Van Loon
e6d550a2c6
Refactor fork data (#1028)
* update beacon-state proto to new spec

* AttestationData

* use bazel's pb.go

* boundry -> boundary

* Refactor fork data

* comment
2018-12-02 15:19:49 -05:00
Raul Jordan
a99de08562
Merge Active/Cystallized State (#1019) 2018-12-01 16:09:12 -06:00
terence tsao
a4e565e3a7 Return Unused Error in State_transition (#1007)
* add todo for 712

* return unused err
2018-11-29 22:34:21 -06:00
terence tsao
13d805f398 Align Constant Variables With Latest Spec Changes (#989)
* add todo for 712

* update constants from latest spec
2018-11-28 16:46:04 -06:00
Jie Hou
aad64d113a Auto Clean Block Vote Cache (#972)
* 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
2018-11-28 17:02:35 +08:00
Preston Van Loon
8587c637a0 Added flag for p2p port (#968)
* Added flag for p2p port

* Register flag with main

* lint

* Fix flag
2018-11-26 10:54:02 +08:00
Preston Van Loon
0559d01261
Add support for connecting via relay nodes (#827)
* 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
2018-11-25 11:55:02 -05:00
terence tsao
f8496f78a9 remove BlockVoteCacheDeepCopy function (#966) 2018-11-25 22:26:44 +08:00
terence tsao
72b3c48f2f add todo for 712 (#967) 2018-11-25 21:45:48 +08:00
terence tsao
5bdfb024c0 remove appendNewSpecialRecord (#965) 2018-11-25 02:01:49 -06:00
Raul Jordan
8c9c78f128
Merge Active/Crystallized State (#953) 2018-11-24 12:57:07 -06:00
Preston Van Loon
74731870eb
Fix service registry breakage (#954)
* fix service registry breakage

* added logging
2018-11-24 07:03:36 -05:00
Nishant Das
e08bc39420
lint (#937) 2018-11-23 11:21:02 +08:00
Raul Jordan
30e34745e5
Refactor More Casper Functions Into Beacon-Chain/Core (#890) 2018-11-22 11:18:06 -08:00
Nishant Das
5329ef8e5b fix specials (#914) 2018-11-22 09:01:23 -08:00
Nishant Das
16b04699d0 Allow Initial Sync to Work with Simulator (#669)
* 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
2018-11-21 10:00:36 -08:00
Nishant Das
e0d13ec304 goimports (#882) 2018-11-21 06:27:04 -05:00
terence tsao
391eacd1d7
Refactor Casper Validators Into Core/Validators Stateless Package (#875) 2018-11-20 22:44:04 -08:00
Raul Jordan
a1c5499e77 Refactor Casper Incentives Into Core/Incentives Stateless Package (#870) 2018-11-20 22:23:18 -08:00
terence tsao
cb65c556d6
Config Updates to Latest Spec (#868) 2018-11-20 17:41:20 -08:00
Raul Jordan
891dc2e2de
Define BeaconState Core Type and Protobuf Definition (#863)
* define protos for beacon state

* tests pass

* address feedback
2018-11-20 11:43:07 -08:00
Jie Hou
bd400707c2 Implement YAML Based Shuffle Test (#815) 2018-11-18 22:54:04 -08:00
Nishant Das
f46ee335bd
Allow Sync Service to Query State Of Network (#787)
* 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
2018-11-19 09:59:11 +08:00
terence tsao
abfe430f03 Beacon Node Logging Enhancement (#826)
* fixed logging

* typo
2018-11-18 18:21:02 -05:00
Andrei Ivasko
85653335f1 Standartize params for BeaconChain and Validator projects (#796)
* 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
2018-11-19 00:39:35 +08:00
Preston Van Loon
14f5c732c8 Fix error message lint issues (#824)
* Getting ready to turn up the linter

* fix test
2018-11-19 00:33:05 +08:00
Raul Jordan
f6c1864d6d
Cleanup of Miscellaneous Items Around the Repo (#790) 2018-11-16 12:01:41 -05:00
terence tsao
5b09bfa777 Fixed broken reference link to eth2.0 spec (#784)
* Fixed broken link

* updated more broken links
2018-11-16 11:14:33 +08:00
Leandro Lugaresi
d061c784e0 Added Prometheus Client and p2p Metrics (#673)
* 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
2018-11-15 07:54:45 -05:00
terence tsao
e1137e5801 Allow Beacon Node to Connect to Bootstrap Node for Peer Discovery (#740)
* 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
2018-11-14 21:25:06 -05:00
terence tsao
a0569ee7ad Fixed Validator Shuffling (#749)
* fixed parent hashes copy bug

* use data
2018-11-14 15:24:34 -05:00
terence tsao
9e096302d2
revert 2 initial committees to 3 (#746) 2018-11-13 07:26:47 -08:00
terence tsao
6520c8ffc2 Fixed GetShardAndCommitteesForSlot index out of range (#744)
* fixed committees index offset

* remove debug logs

* aligned tests
2018-11-12 13:29:32 -05:00
Jie Hou
0de655eaab Move BlockVoteCache out of ActiveState (#739) 2018-11-11 08:54:17 -08:00
Yutaro Mori
8235c35e07
Various Fixes to Allow State Recalculation to Succeed (#733)
* Allow state recalculations to correctly advance

* fixes

* comments
2018-11-08 19:13:50 +01:00
terence tsao
3c6952c510
Synchronize Beacon Node with Spec (#719) 2018-11-08 09:19:39 -08:00
terence tsao
4c6565d419 Integers to Bytes Helper Methods (#734)
* Change validator functions done

* implemented helper methods to convert int to bytes

* use them across prysm

* bazel gazelle

* forgot build.bazel
2018-11-08 11:52:51 -05:00
Nishant Das
37bc1c67be
Adding Basic Private Key Management (#671)
* adding flags

* adding modified key utils

* adding more funcs

* more changes

* more changes

* documentation

* changes to node

* gazelle

* fixing bazel build

* gazelle

* adding tests

* more tests

* addressing terence's feedback

* adding geth header

* test

* changes

* fixedd it

* fixed marshalling

* adding more to tests

* gazelle

* adding more tests

* lint

* add cov

* cov

* fix imports
2018-11-08 11:22:31 +08:00
Raul Jordan
6476fb54af
Dynamic Chain Test Language Package With YAML Parser (#681) 2018-11-07 14:07:41 -05:00
Yutaro Mori
d7bfa1c3b4 Delete test files before running tests (#729) 2018-11-06 13:43:10 -08:00
Yutaro Mori
278a81032f
Always pass an item through channel when processing blocks (#728) 2018-11-06 21:48:11 +01:00
terence tsao
8dc3fb5c85
Removed Demo Debug Flags (#680) 2018-11-05 18:35:50 +01:00
Yutaro Mori
4db3a3f2d1
Properly clean up attestations during state transitions (#705) 2018-11-03 16:50:14 +04:00
terence tsao
8408315f9c switch ethereum 2.0 to ethereum serenity (#714) 2018-11-01 07:02:01 -04:00
terence tsao
80d6c60769 fixed error strings (#708) 2018-10-31 23:05:55 +01:00
Raul Jordan
95625629f7
Disable Codecov Patch As It Is Unreliable (#713) 2018-10-30 17:00:20 +01:00
Yutaro Mori
370065593f Fix parent attestation check (#700) 2018-10-24 15:14:58 +08:00
Yutaro Mori
dd0a15abb2
Convert remaining int config values to uint64 (#695) 2018-10-24 01:37:17 +09:00
Yutaro Mori
7caedbaf27 Miscellaneous Fixes for Demo (#694)
* Various fixes to get code in line with demo

* more fixes
2018-10-23 11:07:43 -05:00
Yutaro Mori
4c5099c8ba Miscellaneous Cleanup Around Block Processing Logic (#684)
* Cleanup code around block processing

* gazelle

* gofmt
2018-10-22 16:04:17 -05:00
Ivan Martinez
d1dbe05147 Copy State in CalculateNewActiveState and NewStateRecalculations (#677)
* 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
2018-10-19 14:59:48 +08:00
Raul Jordan
bdec3f4740
Discard Block With Slot Lower Than LastFinalizedSlot (#679) 2018-10-18 14:21:46 -05:00
Raul Jordan
19bbcb74c8
Remove Unnecessary Interfaces, Clean Up Some Naming (#678) 2018-10-18 12:33:38 -05:00
Raul Jordan
81ff9fd7e3
Implement GHOST Beacon Chain Fork Choice Rule (#643) 2018-10-17 23:23:18 -05:00
terence tsao
4e1f187c9f Fixed RANDAO Regression (#672) 2018-10-17 20:41:47 -05:00
terence tsao
b19e24e9e0
Implemented Update Ancestor Hashes Function (#660) 2018-10-17 16:00:23 -07:00
terence tsao
31adcce976
Implement Validator Exiting Logic (#667) 2018-10-16 23:32:26 -07:00
Yutaro Mori
c00a1d3132 Replace LevelDB with Bolt (#666) 2018-10-17 01:11:24 -05:00
terence tsao
b98d30cf18
Implement RANDAO From Spec (#651) 2018-10-15 17:02:00 -07:00
Yutaro Mori
1f00cfe23e
Replaced HasStoredState with IsSyncedWithNetwork (#662) 2018-10-16 07:22:15 +09:00
Nishant Das
5117e6d195 Refactor Crystallized State (#641) 2018-10-15 06:17:07 -07:00
Yutaro Mori
2697d99762 Fix getSignedParentHashes (#664)
* fix getSignedParentHashes

* Add another check
2018-10-15 16:50:08 +08:00
Catalin Pirvu
c3a7dfce96 Add check for validity to CheckBit method (#658) 2018-10-15 02:35:52 +08:00
Yutaro Mori
8bffae1316 Various cleanup and bugfixes around validator/RBC interaction (#657) 2018-10-14 10:29:57 -05:00
Ivan Martinez
6d46dda33c Make blake2b hash util in shared/ (#649) 2018-10-13 21:32:29 -05:00
terence tsao
dc8d40d10d Replace Dynasty with Validator Set Change (#655) 2018-10-13 21:12:06 -05:00
Yutaro Mori
b00cdb656a
Cleanup simulator service (#653) 2018-10-13 16:22:36 +09:00
Yutaro Mori
4c657fef04 Proposal to upgrade to 1.11 (#652) 2018-10-13 13:23:41 +08:00
Yutaro Mori
f767b11348
Prevent 0 value for committeesPerSlot in shuffle function (#648) 2018-10-13 14:05:19 +09:00
terence tsao
6d0290664a
Implement Validator Rotation during State Recalculation (#645) 2018-10-12 11:27:55 -07:00
Yutaro Mori
d1eefa5cc7 Use consistent hash formatting (#650) 2018-10-12 08:35:49 -07:00
Yutaro Mori
04c7a89f1d [WIP] Partial fix for the validator code (#647) 2018-10-11 23:41:17 -05:00
Nishant Das
c67a084b55 Clean Up Todos and Add in Issue Checker (#640) 2018-10-11 13:52:09 -05:00
Ivan Martinez
26cad3f9c1 Enforce Max Committee Size and Remove Multiple Slots Per Committee (#644) 2018-10-10 18:27:56 -05:00
Yutaro Mori
724ae3c999 Implement Precise Ticker For Slot Interval (#635) 2018-10-10 11:17:48 -05:00
terence tsao
efeb6976d1
Align Block and State Field Names with Spec (#628) 2018-10-09 19:34:50 -07:00
Yutaro Mori
3e8a450e0f Fix Flaky Tests (#636) 2018-10-09 10:52:20 -05:00
Raul Jordan
cd2073e84f
Cleanup and Refactor Shared Package (#634) 2018-10-09 00:58:54 -05:00
terence tsao
1c7af71774
Add SpecialRecord Type and Updated Config (#624) 2018-10-06 08:30:15 -07:00
Yutaro Mori
ce99bd7605 Refactor to Create DB Package (#582) 2018-10-05 13:14:50 -04:00
Nishant Das
3dfbec9d3c
Update Rewards to Align with Spec (#596)
* Adding integer square root and other changes to spec

* adding doc

* fixing tests

* fix spec

* fix rewards

* Remove failing test

* fix test

* lint
2018-10-04 12:49:18 +08:00
Raul Jordan
075e333215
fix shuffle (#611) 2018-10-03 09:08:12 -04:00
Raul Jordan
b8036fcb0f
Fix Validator Assignment (#609)
* fix

* ready
2018-10-02 22:39:19 -05:00
Preston Van Loon
763d0d6bdc
Add Go tools in bazel (#608)
* add atlassian bazel tools

* Add bazel entrypoints for native go stuff

* gazelle
2018-10-02 22:04:36 -04:00
Preston Van Loon
8bcddf5fdc
Migrate dependencies on @com_github_ethereum_go_ethereum//event (#601)
* Add go-ethereum's event and

* remove swp file

* goimports

* remove unused code

* fix gazelle
2018-10-02 21:49:01 -04:00
terence tsao
aec2ea3b1b Fixed Simulator Slot Alignment (#607) 2018-10-02 20:02:52 -05:00
Raul Jordan
593e3dcdf9
Beacon Node Determines Slot From Genesis Block if ChainState Detected (#606) 2018-10-02 15:07:33 -05:00
terence tsao
d5bf733948 Fixed Simulator Can't get ParentSlot (#602) 2018-10-02 13:34:26 -05:00
Raul Jordan
1abed55bdd Update Beacon/Validator Flags to Disable Reward/Cross-Link Checking by Default (#597)
* flag updates

* enable att validity, cross links, rewards

* tests all pass

* fix race

* fix cov

* fix flag

* fix conf

* fix race

* fix gazelle
2018-10-02 10:04:37 +08:00
Preston Van Loon
6e2b6229fe
Revert "Fixed Sync With Simulator (#588)" (#600)
This reverts commit 085b45626e.
2018-10-01 20:54:45 -04:00
terence tsao
085b45626e Fixed Sync With Simulator (#588) 2018-10-01 14:14:10 -05:00
Nishant Das
c4ea6b8e13
adding attestation (#590) 2018-09-29 17:09:05 +08:00
terence tsao
d65e2a4157
Implemented Dev Flag to Use Demo Config (#586) 2018-09-27 23:48:39 -07:00
Raul Jordan
367aae3bf4
Fix State Recalc in Slot Assignment (#585) 2018-09-27 23:49:29 -05:00
terence tsao
965c6a30cf Add Back Deleted Test and New Logs (#584) 2018-09-27 19:57:09 -05:00
terence tsao
2566687db7
Validator Client Use Assignment Stream to Determine Responsibility (#566) 2018-09-27 14:46:07 -07:00
terence tsao
bc7e07d5dd
Load Genesis State Config when Flag is Specified (#576) 2018-09-26 23:58:00 -07:00
Nishant Das
48c07bfeb9 Update Rewards to Align with Spec (#570)
* updating rewards

* add tests

* adding tests

* lint
2018-09-26 22:20:59 -05:00
Raul Jordan
e10baf7c80
Validator Assignment RPC Beacon Node Stream (#563) 2018-09-26 21:34:35 -05:00
Nishant Das
542ddef9e8
fixing error (#574) 2018-09-27 01:06:45 +08:00
Jie Hou
c37ad4b446 Initialize ActiveStateHash and CrystallizedStateHash for Genesis BeaconBlock (#518) 2018-09-26 08:34:23 -07:00
Preston Van Loon
5bc324d2f1 Change pubkey from uint64 to bytes (#561)
* Change pubkey from uint64 to bytes

* add the rebuilt proto pb.go
2018-09-24 22:01:26 -05:00
Raul Jordan
78ccea9865 Refactor ValidatorSlot RPC and Casper to Return ValidatorSlotAndResponsibility (#565)
* slot responsibility casper refactor

* fix
2018-09-24 23:18:27 +08:00
terence tsao
b59a4eef4e
Fixed Bugs after Crosschecking 2.1 Spec (#564) 2018-09-23 22:36:51 -07:00
terence tsao
1aeb0e6b10 Part 1 of Attestation Service - [sync -> blockchain -> rpc] (#548)
* Revert "Add Skip Coverage Condition in Coverage.sh (#416)"

This reverts commit 72a5dd1cf4.

* add coverage.sh back

* beginning sig aggregation routine

* fixed errors

* fixed existing tests

* merged master

* add attestation build.bazel

* private visibility

* tests for attestation service

* lint

* bazel gazelle

* add validator beacon file

* lint

* tests for sync service

* removed tmp.go

* bazel gazelle
2018-09-24 09:22:09 +08:00
terence tsao
1988dd0d5d
Change Default Validator Balance to Big Int (#559) 2018-09-22 13:15:39 -07:00