Commit Graph

147 Commits

Author SHA1 Message Date
terence tsao
8515cc3cd1
Attestation Inclusion and Crosslink Rewards and Penalties (#1178) 2018-12-26 21:27:35 -08: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
9db1002d87
Updating Genesis Block to Spec (#1172)
* Updating to spec

* addressing review comments
2018-12-25 14:47:07 +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
Jie Hou
337f6ae58c SSZ: Support Pointer and Array (#1114) 2018-12-20 06:51:12 -08:00
terence tsao
74532a80d1
Boundary Attestation and Balances Helper functions (#1115) 2018-12-18 20:55:36 -08:00
renovate[bot]
4a784d3735 Update com_github_prometheus_common commit hash to 67670fe (#1125)
* Update com_github_prometheus_common commit hash to 67670fe

* fix formatting, the values are now floats, not ints

* delete metric with a now wild floating point value
2018-12-18 21:50:26 -05:00
terence tsao
6fb3af04da
Implement Attestation Participants Helper Function (#1111) 2018-12-17 10:34:28 -08:00
Jonathan Gimeno
4f316d6ed0 Issue 1017 taken port (#1108)
* add git ignore to avoid intellij bazel plugin files.

* check if port for p2p is available

* add unit test for port taken
2018-12-17 16:57:22 +08: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
Raul Jordan
708daae04f
Implement Attestation Processing Block Operations (#1088) 2018-12-14 13:35:53 -06:00
Jie Hou
d38f3be8b9 SSZ: Support More Types (#1079)
* Add uint32 and uint64 support

* Add sample usage and its test

* BUILD file fix

* Add period in go doc comments.
2018-12-14 12:35:32 -06: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
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
Jie Hou
258fba8d45 Preliminary Implementation of SSZ (#1039)
* WIP: support uint8 and uint16

* WIP: Supports encode/decode for bytes

* WIP: Add encode/decode for slice

* WIP: Add struct encoding

* WIP: Add decoder for struct

* WIP: fix tests

* WIP: Aggregating tests

* WIP: data driven test

* WIP: implemented more decode tests

* WIP: Clean code and add more error check

* WIP: more polishing

* WIP: Added optional encode size calculation pass

* WIP: Improve error message reporting

* WIP: Add encoderDecoderCache

* Fix bazel

* Rearrange code

* Fix lint

* Address Nishant's comment

* Fix comments
2018-12-11 10:15:37 +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
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
Raul Jordan
a99de08562
Merge Active/Cystallized State (#1019) 2018-12-01 16:09:12 -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
Preston Van Loon
c8ce74825e Bootstrap the DHT service (#973)
* Bootstrap the DHT service, add some tracing spans

* fix

* test fix

* dont ignore error
2018-11-26 10:18:43 -06:00
Preston Van Loon
fa37ef1721 Bootnode query tool (#969)
* Add a tool to query bootstrap DHT node and ping the peer

* Add quick note

* Gazelle

* quick fixes

* fixes
2018-11-26 11:19:32 +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
Preston Van Loon
203cef3140 Delete unused CurrentSimulatorSlot (#964) 2018-11-25 12:17:27 +08: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
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
terence tsao
cb65c556d6
Config Updates to Latest Spec (#868) 2018-11-20 17:41:20 -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
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
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
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
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
Preston Van Loon
e330249e49
Enable DHT support for p2p peer discovery (#730) 2018-11-06 20:52:36 -05:00
Preston Van Loon
3118947271
Update libp2p deps (#717)
* Revert "Fix LibP2P Global Proto Bug on Travis (#690)"

This reverts commit 7300204176.

* update libp2p deps

* goimports
2018-11-03 12:59:39 -04:00
terence tsao
8408315f9c switch ethereum 2.0 to ethereum serenity (#714) 2018-11-01 07:02:01 -04:00
Raul Jordan
7300204176
Fix LibP2P Global Proto Bug on Travis (#690) 2018-10-22 14:39:29 -05:00
Raul Jordan
f2bc9e0352
BLS Public API (#676)
* public bls api

* added basic tests

* merge master
2018-10-18 00:44:00 -05: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
Yutaro Mori
d1eefa5cc7 Use consistent hash formatting (#650) 2018-10-12 08:35:49 -07:00
Nishant Das
c67a084b55 Clean Up Todos and Add in Issue Checker (#640) 2018-10-11 13:52:09 -05:00
Raul Jordan
cd2073e84f
Cleanup and Refactor Shared Package (#634) 2018-10-09 00:58:54 -05: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
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
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
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
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
Preston Van Loon
91f26f1421 Use hamming.CountBitsBytes (#547) 2018-09-20 10:56:51 -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
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
Preston Van Loon
db1138ae1f
Fix p2p issues in #465 (#489) 2018-09-09 18:15:24 -04:00
Preston Van Loon
b02042dbe9 shared: Split P2P Topics And Introduce Middleware (Adapters) (#421) 2018-08-29 11:32:54 -05:00
Preston Van Loon
9c764555eb k8s: Kubernetes - Part 2 of ?? (#401) 2018-08-14 11:16:21 -05: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
Ivan Martinez
390ac62ed8 Update docs client/beacon-chain wide (#386) 2018-08-09 11:25:48 -07:00
Nishant Das
2cf7fa0174
Check Last Finalized Epoch (#357)
* Adding proto topics

* Adding crystallized state request

* Reverting shanges to proto

* Adding db checks

* get crystallised state

* Finalize epoch for mapping

* more changes

* cleaning up main routine

* adding tests

* fix test

* Adding ability to save blocks

* Adding block fetcher

* Another test for setting finalized epoch

* adding final tests

* finished tests

* adding comments

* gazelle

* Making requested changes

* Fixing lint

* stop sync from exiting

* fixing lint

* lint

* Adding new request type to proto

* Making changes to block/state requests

* Change tests

* fixing error messages

* gazelle and lint

* adding back crystallised state

* fix tests

* Fixing merge conflicts

* Addressing review comments

* Changing back to one service

* removing  case
2018-08-07 20:12:10 +08:00
terence tsao
c9f1bfc19c
Simulate Epoch Transition (#361) 2018-08-01 08:24:55 -07:00
Raul Jordan
13a011ce5f
proto: Structure Protos for Beacon and for Sharding (#359) 2018-07-31 13:54:45 -05:00
Raul Jordan
cccd675a84
beacon: Initial Sync Network Simulator (#341) 2018-07-30 23:41:27 -05:00
Yutaro Mori
f9d23da2dd Decouple Database From the ServiceRegistry (#335) 2018-07-29 23:14:50 -07:00
Preston Van Loon
bb29e367d5 Add Golint (#344) 2018-07-28 21:18:56 -04:00
Preston Van Loon
9cf375267e Add Security Linter: gosec (#343) 2018-07-28 20:44:24 -04:00
Raul Jordan
9ab02849b6
beacon: Initial Beacon P2P Protobufs, Subscriptions (#327) 2018-07-28 15:53:02 -04:00
Yutaro Mori
8d858aad9b Add Feed Subscribe() Convenience Method (#333) 2018-07-26 07:16:31 -07:00
Yutaro Mori
09ca832a5f beacon: Beginning the Sync Service for the Beacon Chain (#322) 2018-07-25 11:57:44 -05:00
Federico Gimenez
b8fe4228af Add Mutex on Top of p2p Feeds Map (#321)
* add mutex on top of p2p feeds map

* lock read too

* add concurrent write test and enable race detector

* restrict race detection to concurrent feed map write test

* gazelle fix

* increase ram and I/O in bazel's local_resources

* reverted local_resources changes

* address review comments

* do not disable sandboxing on travis

* address review comments
2018-07-26 00:11:15 +08:00
terence tsao
8d42418d0d client: add rpc to client (#320) 2018-07-24 23:52:39 -05:00
Preston Van Loon
d33836b48e shared: Move p2p Library to Shared (#317) 2018-07-24 10:21:58 -05:00
Raul Jordan
b6cd890a67 Log Verbosity Flags + Logrus Package Level Logs With Fields (#304)
Former-commit-id: f7344b7d3fb2fa07f0fd421c5ed3721f6c7a9258 [formerly e678ab2f1681d9492c0e1b142cd06ee08a462fdb]
Former-commit-id: d942da3d5cfcde921bebb149c26edd5c4ed178dd
2018-07-21 12:51:18 -05:00
Raul Jordan
92af8bc351 Rename Entire Project to Repo, Change Import Paths and Readmes (#298)
Former-commit-id: b7b8bbd10777012ae6f7d30eb6b05c3b1c3ec5d3 [formerly 06e1112fa0e1092a7137186d3a386972daa2effe]
Former-commit-id: ff2bc760c9dafb6250f056606eb2cbf96b6afa5b
2018-07-20 16:31:26 -05:00
Raul Jordan
4d5d229f0f beacon: Define a Core Blockchain Package and Persisted Structure for Beacon (#278)
Former-commit-id: bbd5b46e7f64f762350d6fb496492207e70d7130 [formerly 43a37f7139b7d1d90f0c27a7406b63bdf390ad96]
Former-commit-id: bb7a2ff0a7619f8de0bd38cd2c9eb0de7c189edb
2018-07-19 11:31:50 -05:00
Preston Van Loon
9ac88d11da sharding: Local networked P2P! (#222)
Former-commit-id: d22d05529bb0050b8a03053a28d876e3e458bbff [formerly 284a04699110aa285a42f5b0ad244ca9bd77d2df]
Former-commit-id: 83cd9c8a48fb5ce9c57ff8ef6c2b1741a4d05130
2018-07-17 13:39:04 -05:00
Preston Van Loon
77267169ea Add More Lint Rules With gometalinter (#284)
* turn up linter to 11

* Added extra linting rules and fixed all lint issues

* add deadline of 10m


Former-commit-id: 632999fcaa8370516d6fe76c28c503cb2e3319b7 [formerly d4354f631b1eb4f7918cde28bf063f756ae92a54]
Former-commit-id: 3aaf78a56b76850b0123d61551ac554ccecfe9ad
2018-07-15 15:06:36 -04:00
Raul Jordan
e305d58355 shared: reinclude debug.Exit() usefulness (#275)
Former-commit-id: 423052bc5858f3e5772b37bb9d0b4a05f9b131ac [formerly 869ca9c92bc215b0583953bb5ab2479927b15256]
Former-commit-id: bfd9353f0234864c9823ad3ee10d152d59af791c
2018-07-13 22:35:15 -05:00
Raul Jordan
83569f1342 shared: Abstract Service Registry Into Shared Folder, Add Beacon Node and Beacon Entry Point (#268)
Former-commit-id: 406ba2f1e65ec58e822fcf1b9d54c44ba51a559c [formerly 52aebe050663c4dc73fc56e5e4c6846620267f1f]
Former-commit-id: c959a9fda119e4403136ac4f8d1b345d464ab5df
2018-07-13 21:15:37 -05:00
Raul Jordan
739f34f26c sharding: Test for Node Fetch and Register Service, 100% Simulator Coverage (#254)
Former-commit-id: 2fe6fdb393917f90c9a8a0c6dfb866738736803e [formerly 03d3519c59eb7f78e20ff08c081031d9b1f673bc]
Former-commit-id: a1cba8b7ec0517748d5df0bab458b2466f7b6329
2018-07-13 11:47:57 -05:00