Commit Graph

160 Commits

Author SHA1 Message Date
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
4cadd534db
Update Genesis Slot and Epoch (#1537) 2019-02-10 23:09:35 +01: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
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
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
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
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
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
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
terence tsao
d1df055ab1
Aligning ETH2.0 spec - Removed Balances from Validator Proto (#1470) 2019-02-04 08:31:43 +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
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
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
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
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
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
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
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
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
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
terence tsao
e313e97666
Implement Validator Rotation Logic (#1279) 2019-01-13 12:52:31 -08:00
Andrei Ivasko
b29188128d ToBytes32 (#1306) 2019-01-13 09:04:14 -05: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
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
Preston Van Loon
f47f123aab Remove some redundant fetches from DB for the beacon state (#1257) 2019-01-06 13:05:16 +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
terence tsao
1314077a4d
Code Clean Up Part 1 - Core Package (#1216) 2019-01-01 09:17:44 -08:00
Raul Jordan
f5abc780ab
Verify Block Proposer RANDAO (#1104) 2018-12-27 23:19:32 -06:00
Raul Jordan
952dbe983e
Integrate Block Operations Into State Transition (#1135) 2018-12-26 21:15:12 -06:00
Raul Jordan
5d26efcfaa
Deprecate types.BeaconState with pb.BeaconState Generated Proto (#1164) 2018-12-23 16:51:04 -06: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
Nishant Das
e92032346f Partial Implementation of the Slot Processing Routine (#1083) 2018-12-19 00:18:42 -05:00
terence tsao
122ad6ef3c
Implemented Get_block_root Helper Function (#1096) 2018-12-13 11:35:11 -08:00
terence tsao
8402a1dd61
Part 1 of Cleaning Up State Proto (#1070) 2018-12-11 07:46:01 -08:00
terence tsao
121654ff12
Removed Deprecated BeaconBlock Fields (#1035) 2018-12-03 08:10:47 -08:00
Raul Jordan
a99de08562
Merge Active/Cystallized State (#1019) 2018-12-01 16:09:12 -06:00
terence tsao
391eacd1d7
Refactor Casper Validators Into Core/Validators Stateless Package (#875) 2018-11-20 22:44:04 -08:00
terence tsao
cb65c556d6
Config Updates to Latest Spec (#868) 2018-11-20 17:41:20 -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
Jie Hou
0de655eaab Move BlockVoteCache out of ActiveState (#739) 2018-11-11 08:54:17 -08:00
terence tsao
3c6952c510
Synchronize Beacon Node with Spec (#719) 2018-11-08 09:19:39 -08: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
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
terence tsao
80d6c60769 fixed error strings (#708) 2018-10-31 23:05:55 +01: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
Raul Jordan
81ff9fd7e3
Implement GHOST Beacon Chain Fork Choice Rule (#643) 2018-10-17 23:23:18 -05: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
Nishant Das
5117e6d195 Refactor Crystallized State (#641) 2018-10-15 06:17:07 -07:00
Yutaro Mori
8bffae1316 Various cleanup and bugfixes around validator/RBC interaction (#657) 2018-10-14 10:29:57 -05:00
Yutaro Mori
d1eefa5cc7 Use consistent hash formatting (#650) 2018-10-12 08:35:49 -07: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
ce99bd7605 Refactor to Create DB Package (#582) 2018-10-05 13:14:50 -04: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
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
terence tsao
d65e2a4157
Implemented Dev Flag to Use Demo Config (#586) 2018-09-27 23:48:39 -07:00
terence tsao
bc7e07d5dd
Load Genesis State Config when Flag is Specified (#576) 2018-09-26 23:58:00 -07:00
Raul Jordan
e10baf7c80
Validator Assignment RPC Beacon Node Stream (#563) 2018-09-26 21:34:35 -05:00
Jie Hou
c37ad4b446 Initialize ActiveStateHash and CrystallizedStateHash for Genesis BeaconBlock (#518) 2018-09-26 08:34:23 -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
fa96e57ca2
Re-Add Block Validity Checks (#541) 2018-09-21 14:33:53 -05:00
Raul Jordan
190a976d3d
Validator Clients Use an Internal Clock to Determine Slot Responsibility (#467) 2018-09-21 09:32:20 -05:00
Raul Jordan
4bc2176898
Refactor Block Processing + UpdateHead to Use Slot Numbers (#474) 2018-09-18 09:06:28 -04: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
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
terence tsao
a630abae59
Dynasty Transition During Block Processing (#498) 2018-09-11 20:17:20 -07:00
Yutaro Mori
f312c013fc beacon-chain: Refactor Beacon Chain To Simplify Block Processing (#473) 2018-09-11 07:09:41 +02: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
fe3c647c45
Skip Block if Attestation is Bad (#455) 2018-09-04 16:18:55 -07: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
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
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
e1f727cbb2
Implement Beacon Node Validator and Observer Entry Points (#414) 2018-08-20 08:50:11 -07: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