Commit Graph

398 Commits

Author SHA1 Message Date
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
Raul Jordan
673c4f840f
Streaming Validator Assignment Service Definition (#554) 2018-09-22 13:19:34 -05:00
Preston Van Loon
e5569c88f8
More todos (#558)
* Add TODO link for issue #555

* Remove database related TODO

* update todo for issue #426
2018-09-22 12:58:24 -04:00
Raul Jordan
5c0ee65619
Finished TODO cleanup (#553) 2018-09-21 22:36:38 -05:00
Raul Jordan
419cff2512
--Dev Mode Flag for Local Demo/Development (#537) 2018-09-21 16:02:17 -05:00
Nishant Das
53508d6bec Update Rewards to Align With New Spec (#504) 2018-09-21 14:56:39 -05:00
Raul Jordan
fa96e57ca2
Re-Add Block Validity Checks (#541) 2018-09-21 14:33:53 -05:00
Nishant Das
e9ae09ef4c Fixing profiling and tracing (#550) 2018-09-21 13:35:48 -05:00
Raul Jordan
190a976d3d
Validator Clients Use an Internal Clock to Determine Slot Responsibility (#467) 2018-09-21 09:32:20 -05:00
Daniel Schonfeld
8b61994fb3 Attestation Justified Slot Validation Per Spec (#516)
* 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
2018-09-20 20:31:29 -04:00
Divyank Katira
2a51ed3f39 P2P Message Execution Tracing (#517)
* Request execution tracing initial commit

* Resolve linter issues

* Run gazelle

* Make trace sampling configurable, clean up, update doc

* Document trace span creation

* Fix linter issue
2018-09-20 07:46:35 -04:00
Preston Van Loon
75d32588e0 format and cleanup some TODOs (#544) 2018-09-19 21:14:31 -07:00
terence tsao
b4e57489af Fixed Bugs for Proposer Attestation (#539) 2018-09-19 10:23:26 -04:00
Preston Van Loon
8bfed4897f Added Comments/Documentation on Recent Block Hashes of ActiveState (#533)
* Add some clarifying comments to calculateNewBlockHash

* missing )

* words
2018-09-19 12:28:50 +08:00
Raul Jordan
4bc2176898
Refactor Block Processing + UpdateHead to Use Slot Numbers (#474) 2018-09-18 09:06:28 -04:00
terence tsao
ddfe1715c9 RPC methods for Validators to Get ShardID, Index and Slot (#526) 2018-09-17 22:36:09 -04:00
Preston Van Loon
3c264be1c1
Clean up some p2p related TODOs (#521)
* 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
2018-09-16 14:02:53 -04:00
Nishant Das
cddae7a306
Implement RPC Messaging Between Validators (#475)
* Adding Proto files

* Move to shared package

* adding attestation sub

* gazelle

* attestation check

* proposal finished

* Add in attesters responsibilities

* fixing dependency issues

* adding topics

* refactoring tests

* Adding more tests

* adding more changes

* gazelle

* removing attester p2p

* remove mock

* changing to new proposer model

* changing tests

* making changes

* gazelle

* adding gomock

* adding rpc methods, reverting changes to other proto files

* gazelle and test changes

* adding tests

* adding mocks and tests

* gazelle

* fixing merge issues

* lint

* lint
2018-09-16 09:12:36 +08:00
terence tsao
ae84cfcfa2
Implement Proposer Attestation Check for Block Validity (#508) 2018-09-15 07:51:17 -07:00
Jie Hou
be11f2f103 Check attestation slot number (#515) 2018-09-13 22:07:30 -07:00
terence tsao
9639161fcc
Aligning With Latest 2.1 Spec (#513) 2018-09-13 17:36:57 -07:00
terence tsao
593c1ec9fc Filled in ContainsBlock for Blockchain Service (#512)
* Revert "Add Skip Coverage Condition in Coverage.sh (#416)"

This reverts commit 72a5dd1cf4.

* add coverage.sh back

* filled in contains block to not always return false

* fixed lint

* lint
2018-09-13 23:24:18 +08:00
Daniel Schonfeld
15a6545f64 Default values for Genesis Block (#507)
* return a genesis block filled with default values
modified tests to reflect the block's requirements

* linted
2018-09-13 21:21:57 +08:00
terence tsao
a630abae59
Dynasty Transition During Block Processing (#498) 2018-09-11 20:17:20 -07:00
Preston Van Loon
366124991b Allow users to use 0x prefix for their pubkey (#500) 2018-09-11 18:55:05 -07:00
terence tsao
861b960ed9
Implement Attester Responsibilities for Demo (#487) 2018-09-11 10:08:31 -07:00
Yutaro Mori
f312c013fc beacon-chain: Refactor Beacon Chain To Simplify Block Processing (#473) 2018-09-11 07:09:41 +02:00
Preston Van Loon
78c763368b Update rules_go, bazel_gazelle, and go-ethereum to Support Go 1.11 (#490)
* Update rules_go, bazel-gazelle, and go-ethereum to support go 1.11

* gazelle
2018-09-10 23:14:29 +02:00
Preston Van Loon
db1138ae1f
Fix p2p issues in #465 (#489) 2018-09-09 18:15:24 -04:00
Ivan Martinez
d4e8de95d8 Change IndicesForSlots to ShardsAndCommitteesForSlots (#481)
* Change IndicesForSlots to ShardsAndCommitteesForSlots

* Capitalize function properly
2018-09-09 11:05:36 +08:00
terence tsao
b0f5ef0da0
Save Attestation and AttestationHashes to DB (#472) 2018-09-08 18:52:18 -07:00
terence tsao
d4209b7357 beacon: Process Crosslink During Cycle Transition (#482)
* 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
2018-09-08 17:20:06 +02:00
terence tsao
8897ddaa6b
Fixed Broken Markdown links (#483) 2018-09-08 06:50:21 -07:00
Raul Jordan
ee91be2c4a
validator: Implementing Partial Implementation of Proposer Responsibility (#441)
* 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
2018-09-04 23:35:32 -04:00
terence tsao
fe3c647c45
Skip Block if Attestation is Bad (#455) 2018-09-04 16:18:55 -07:00
Nishant Das
42d93812ce beacon: Implement Sync Handler for Block Requests By Slot Number (#461)
* 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
2018-09-04 10:48:07 -04:00
Yutaro Mori
6acf9d9db5
remove unused code (#462) 2018-09-02 13:46:42 -04:00
Nishant Das
4891f68929
Persist Blocks and State in DB (#440)
* 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
2018-09-03 00:44:03 +08:00
terence tsao
8ce739adfb Add LastJustifiedSlot in Crystallized State Field (#454)
* 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
2018-09-02 14:34:29 +08:00
Raul Jordan
4937da5c7d
Update Documentation + Create a Subproject for Important Markdown Docs (#451)
* add docs folder for markdowns

* create scripts project, move readmes

* update all docs

* fix travis
2018-09-01 21:25:06 -05:00
Ivan Martinez
d30d81a608 Rename all mentions of height to slot (#456)
#442
2018-09-01 12:01:53 -04:00
Yutaro Mori
f0abbf6f26
Refactor Validator Shuffling Logic (#444)
* Refactor and fix bugs for validator shuffling logic

* fix lint errors

* fixes

* address pr comments

* comments

* typo

* fix tests

* better readability

* gofmt
2018-08-30 22:55:52 -04:00
terence tsao
366e5168ba
Initialize New Cycle during Block Processing (#443) 2018-08-29 16:21:15 -07:00
terence tsao
9be495dc1f Add Casper/Sharding/Beacon Chain FAQs to Readmes (#446)
* Revert "Add Skip Coverage Condition in Coverage.sh (#416)"

This reverts commit 72a5dd1cf4.

* add coverage.sh back

* add casper/sharding faqs to readmes
2018-08-29 14:42:51 -04:00
Preston Van Loon
b02042dbe9 shared: Split P2P Topics And Introduce Middleware (Adapters) (#421) 2018-08-29 11:32:54 -05:00
terence tsao
f37a59d2f8
Part 5 of Aligning Beacon Chain with Latest 2.1 - Block Vote Cache (#436) 2018-08-28 17:55:56 -07:00
terence tsao
6389877154
Part 4 of Aligning Beacon Chain with Latest 2.1 - Bootstrapping Genesis (#430) 2018-08-25 11:59:46 -07:00
terence tsao
1598ae8605
Part 3 of Aligning Beacon Chain with Latest 2.1 - Processing Attestations (#423) 2018-08-24 09:07:23 -07:00
Raul Jordan
4a1b5db07b
beacon: Store Incoming Blocks and Calculated States in DAG (#422)
* 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
2018-08-23 22:09:59 -06:00
terence tsao
7c8331e9d3
Renamed Client to Validator (#428) 2018-08-22 12:15:21 -07:00
terence tsao
56ba92ac93
Updated Docker Rules (#424) 2018-08-21 19:59:36 -07:00
Yutaro Mori
7cfda8a149 Extract Initial Sync Into its Own Package (#404)
* 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
2018-08-22 09:52:03 +08:00
Yutaro Mori
920a9a874d
fix race condition in rpc tests (#425) 2018-08-21 20:45:47 -04:00
terence tsao
e1f727cbb2
Implement Beacon Node Validator and Observer Entry Points (#414) 2018-08-20 08:50:11 -07:00
terence tsao
5356bda411 beacon: Use Blake2b Sum512 Instead of 256 (#419)
* Revert "Add Skip Coverage Condition in Coverage.sh (#416)"

This reverts commit 72a5dd1cf4.

* use blake2b512

* messed up on coverage.sh
2018-08-19 18:01:19 -06:00
terence tsao
09824428e8 beacon: Improve Utils Coverage to 100% (#415) 2018-08-18 20:24:42 -06:00
Raul Jordan
d3b5a7c67b
beacon: Implement Beacon Node gRPC Server Streams (#400)
* remove client helper in internal

* tidying up the sharding client project

* update all docs

* implementing beacon rpc server methods

* address prs

* begin coverage

* regen proto

* include announcement chans

* tests pass, announcing as canonical only after block has passed all processing

* system functioning yay

* tests pass

* bootstrap validators

* default balance params

* fix lint

* fix all tests

* increasing cov

* 100% test cov rpc

* build file for internal

* typo

* graceful stop

* merge with Terence's PR

* address review comments

* fixed blockchain tests and lint

* added ethdb

* persists last simulated session

* cov

* ready

* fix lint

* fix cov tests

* fix lint

* config options for args

* fix lint

* lint fix
2018-08-17 21:34:56 -06:00
terence tsao
72282a90ba
Part 2 of Aligning Core Package with Latest 2.1 - Helper Functions (#403) 2018-08-17 18:54:34 -07:00
terence tsao
b7bf48bc3e Fixed NewSimulatedBackend (#405)
* 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
2018-08-16 15:37:53 -06:00
terence tsao
06ca8e758f beacon: Improve Test Coverage for Beacon Chain Package (#402) 2018-08-14 22:49:59 -06:00
terence tsao
1f56c4304d
Part 1 of Aligning Core Blockchain Package with Latest 2.1 Spec (#371) 2018-08-13 17:58:37 -07:00
Ivan Martinez
4976461e62 Implement GenesisBlock() to Grab the Block from Memory DB (#373)
* 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
2018-08-12 22:07:37 -04:00
Federico Gimenez
dd29481abe Fix beacon-chain/sync Test Race (#390)
* fix beacon-chain/sync test race

* address review comments

* remove unused file

* gazelle

* disable race for client/contracts

* address review comments

* fix conflict

* remove duplicated deps, embed

* remove unneeded file
2018-08-12 16:27:21 -04:00