Commit Graph

174 Commits

Author SHA1 Message Date
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
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
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
45a4442f53
fix config in validator helpers (#1483)
* fix config in validator helpers

* fix tests too
2019-02-04 20:56:08 -05: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
Preston Van Loon
30080656bc Update config for deposits processing (#1473) 2019-02-03 20:21:18 +01: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
Raul Jordan
425ec4eee1
Add NoSigVerification Option to State Transition (#1434)
* no sig verify

* gofmt
2019-01-30 13:45:01 +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
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
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
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
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
terence tsao
2b24e7940e function to update penalized exit balances (#1335) 2019-01-17 09:10:42 +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
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
Andrei Ivasko
b29188128d ToBytes32 (#1306) 2019-01-13 09:04:14 -05: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
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
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
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
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
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
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