e744d1a07e
* Optimize Shuffled Indices Cache (#2728) * Refactor Deposit Contract Test Setup (#2731) * add new package * fix all tests * lint * change hash function (#2732) * Remove Deprecated Validator Protobuf (#2727) * Remove deprecated validator protos * Fix to comments * Fix most of skipped tests (#2735) * Cache Active Validator Indices, Count, and Balances (#2737) * Optimize Base Reward Calculation (#2753) * benchmark process epoch * revert prof.out * Add some optimizations * beware where we use ActiveValidatorIndices... * revert extra file * gaz * quick commit to get feedback * revert extra file * started fixing tests * fixed broken TestProcessCrosslink_NoUpdate * gaz * cache randao seed * fixed all the tests * fmt and lint * spacing * Added todo * lint * revert binary file * started regression test * basic tests done * using a fifo for active indices cache * using a fifo for active count cache * using a fifo for total balance cache * using a fifo for active balance cache * using a fifo for start shard cache * using a fifo for seed cache * gaz * clean up * fixing tests * fixed all the core tests * fixed all the tests!!! * lint * comment * rm'ed commented code * cache size to 1000 should be good enough * optimized base reward * revert binary file * Added comments to calculate adjusted quotient outside * removed deprecated configs (#2755) * Optimize Process Eth1 Data Vote (#2754) * Cleanup and Docs update (#2756) * Add graffiti and update generate seed (#2759) * Benchmark Process Block with Attestations (#2758) * Tidying up Godoc for Core Package (#2762) * Clean up Old RPC Endpoints (#2763) * Update RPC end point for Proposer (#2767) * add RequestBlock * run mockgen * implemented RequestBlock * updated proto definitions * updated tests * updated validator attest tests * done * comment * todo issue * removed unused proto * Update attesting indices v0.6 (#2449) * sort participants slice * add bitfield functions and tests * added BitfieldBit test * add AttestationParticipantsNew * revert AttestationParticipants to its previous change * add tests * remove verifybitfieldnew * fix tests and remove multiple tests * remove duplicate test * change magic number into ceildiv8 * Implement Justification and finalization Processing (#2448) * Add convert to indexed (#2519) * sort participants slice * add bitfield functions and tests * added BitfieldBit test * add AttestationParticipantsNew * revert AttestationParticipants to its previous change * add tests * remove verifybitfieldnew * fix tests and remove multiple tests * remove duplicate test * start work * convert attestation to indexed attestations * fix test for convert index * remove calling getter * add more tests * remove underscore * changes name to signature (#2535) * update registry updates func (#2521) * update registry updates func * added tests and moved to epoch processing * fixed naming issues * Update Committee Helpers to v0.6.0 (#2398) * Update Committee Helper Part 2 (#2592) * Implement Process Slashings for 0.6 (#2523) * Update Proposer/Attester Slashings and Slashing Helpers (#2603) * Implement Final Updates 0.6 (#2562) * ValidatorStatus Estimating Activation RPC Server (#2469) * fix spacing * working on position in queue * fmt * spacing * feedback * tests * rename * Only Perform Initial Sync With a Single Peer (#2471) * fix spacing * use send instead of broadcast in initial sync * Fix Estimation of Deposit Inclusion Slot in ValidatorActivationStatus (#2472) * fix spacing * fix time estimates * correct slot estimation * naming * Update beacon-chain/rpc/validator_server.go Co-Authored-By: rauljordan <raul@prysmaticlabs.com> * SSZ web api for decoding input data (#2473) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * standardize slot numbers (#2475) * Add CORS for ssz api (#2476) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * needed CORS * Allow Client to Retrieve Multiple Validator Statuses (#2474) * multiple validator statuses * gazelle * context * fixing bugs * remove old way of checking * fix logging * make activation queue more accurate * fix rpc test * add test * fix remaining tests * lint * comment * review comments * Update Prysm README (#2477) * README updated * readme updates * no err throw (#2479) * Fix Status Nil Pointer Error (#2480) * no err throw * nil errors * 3.175 (#2482) * Better Error Message if Failing to Exit Initial Sync (#2483) * no err throw * nil errors * better error on init sync * Only Log Active Balances (#2485) * only log active balance * dont need () * change logging (#2487) * fix chainstart waiting on rpc server (#2488) * shift ticker to after activation (#2489) * Add drain script (#2418) * Add drain script * Fix script to drain contracts from newest to oldest * Add README * remove comments * Only after block 400k, look up by deposit event * issue warn log on disconnecting peer instead of error (#2491) * Display Only Active Validator Data (#2490) * Fix Validator Status Field in RPC Server (#2492) * fix status of key * status test fix * fmt * Estimate the Time Till Follow Distance Is Completed (#2486) * use estimation instead * fix test * fixing another test * fix tests and preston's comments * remove unused var * fix condition * Revert "fix condition" This reverts commit dee0e3112c01f68f30a2e50cd4eb35f29f672e1d. * dont return error * add production config for testnet release (#2493) * Lookup Validator Index in State in Status Check (#2494) * state lookup * refactor duplicate code * refactor with mapping * fix broken tests * finish refactor * merged master * updated EpochCommitteeCount and fixed tests * implemented ShardDelta * test for ShardDelta * implemented EpochStartShard * added epoch out of bound test * test for accurate start shard * lint * implemented process_final_updates * move to the top of the file * add comment back * gaz * Test for process final updates * fixed tests * fixed all the tests * Update Reward Helper v0.6 (#2470) * added BaseReward * added rewards helper * added test for BaseReward * extra space * move exported function above * update to new spec (#2614) * Update Block Processing Voluntary Exits (#2609) * Update processEth1Data for v0.6 (#2516) * Clean up Helper Functions Part 1 (#2612) * Finalize helper functions for 0.6 (#2632) * Process Beacon Chain Transfers v0.6 (#2642) * add transfers * beacon transfer operations complete * full cov * transfer testing * finished tests * Update beacon-chain/core/blocks/block_operations_test.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Update beacon-chain/core/blocks/block_operations.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Implement Process Crosslink From 0.6 (#2460) * Process Block Eth1 Data v0.6 (#2645) * Get attestation data slot v0.6 (#2593) * attestation.go is ready, tests not * ready for review * fixing linter issues * modified Crosslink and AttestationData proto fields to spec 2.0,marked deprecated fields * gazelle * fixed tests * fixed error * error msg * Process Block Deposits v0.6 (#2647) * imports fixes * deposits tests pass * wrapped up gazelle * spacing * Implement Crosslink Delta Rewards for 0.6 (#2517) * update process crosslink and update existing tests * added a test case to cover no crosslink changes * more test * preston's feedback * spellings * ValidatorStatus Estimating Activation RPC Server (#2469) * fix spacing * working on position in queue * fmt * spacing * feedback * tests * rename * Only Perform Initial Sync With a Single Peer (#2471) * fix spacing * use send instead of broadcast in initial sync * Fix Estimation of Deposit Inclusion Slot in ValidatorActivationStatus (#2472) * fix spacing * fix time estimates * correct slot estimation * naming * Update beacon-chain/rpc/validator_server.go Co-Authored-By: rauljordan <raul@prysmaticlabs.com> * SSZ web api for decoding input data (#2473) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * standardize slot numbers (#2475) * Add CORS for ssz api (#2476) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * needed CORS * Allow Client to Retrieve Multiple Validator Statuses (#2474) * multiple validator statuses * gazelle * context * fixing bugs * remove old way of checking * fix logging * make activation queue more accurate * fix rpc test * add test * fix remaining tests * lint * comment * review comments * Update Prysm README (#2477) * README updated * readme updates * no err throw (#2479) * Fix Status Nil Pointer Error (#2480) * no err throw * nil errors * 3.175 (#2482) * Better Error Message if Failing to Exit Initial Sync (#2483) * no err throw * nil errors * better error on init sync * Only Log Active Balances (#2485) * only log active balance * dont need () * change logging (#2487) * fix chainstart waiting on rpc server (#2488) * shift ticker to after activation (#2489) * Add drain script (#2418) * Add drain script * Fix script to drain contracts from newest to oldest * Add README * remove comments * Only after block 400k, look up by deposit event * issue warn log on disconnecting peer instead of error (#2491) * Display Only Active Validator Data (#2490) * Fix Validator Status Field in RPC Server (#2492) * fix status of key * status test fix * fmt * Estimate the Time Till Follow Distance Is Completed (#2486) * use estimation instead * fix test * fixing another test * fix tests and preston's comments * remove unused var * fix condition * Revert "fix condition" This reverts commit dee0e3112c01f68f30a2e50cd4eb35f29f672e1d. * dont return error * add production config for testnet release (#2493) * Lookup Validator Index in State in Status Check (#2494) * state lookup * refactor duplicate code * refactor with mapping * fix broken tests * finish refactor * merged master * Starting, I need get_epoch_start_shard * updated EpochCommitteeCount and fixed tests * implemented ShardDelta * test for ShardDelta * implemented EpochStartShard * added epoch out of bound test * test for accurate start shard * lint * need to use changes from latest crosslinks * added BaseReward and totalActiveBalance * added test for base reward * merged master * all tests passing * start testing * done * add ProcessBlockHeader v0.6 (#2534) * add ProcessBlockHeader * function has all its dependancies in place * arange the basic ok test * gazzele and skip test update * skip wrong sig test * fmt imports and change requests * goimports fmt * map for struct fields to be location independent * reorder protobuf fields * added tests * gazzle fix * few change requests fixes * revert changes in types.proto * revert changes in types * fix tests * fix lint * fmt imports * fix gazelle * fix var naming * pb update * var naming * tarance change request fixes * fix test * Add Process Registry for Epoch Processing (#2668) * update update-process-registry * added back the old tests * fmt * gaz * Follow up on process block header v0.6 (#2666) * Putting Crosslink Delta Back (#2654) * update process crosslink and update existing tests * added a test case to cover no crosslink changes * more test * preston's feedback * spellings * ValidatorStatus Estimating Activation RPC Server (#2469) * fix spacing * working on position in queue * fmt * spacing * feedback * tests * rename * Only Perform Initial Sync With a Single Peer (#2471) * fix spacing * use send instead of broadcast in initial sync * Fix Estimation of Deposit Inclusion Slot in ValidatorActivationStatus (#2472) * fix spacing * fix time estimates * correct slot estimation * naming * Update beacon-chain/rpc/validator_server.go Co-Authored-By: rauljordan <raul@prysmaticlabs.com> * SSZ web api for decoding input data (#2473) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * standardize slot numbers (#2475) * Add CORS for ssz api (#2476) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * needed CORS * Allow Client to Retrieve Multiple Validator Statuses (#2474) * multiple validator statuses * gazelle * context * fixing bugs * remove old way of checking * fix logging * make activation queue more accurate * fix rpc test * add test * fix remaining tests * lint * comment * review comments * Update Prysm README (#2477) * README updated * readme updates * no err throw (#2479) * Fix Status Nil Pointer Error (#2480) * no err throw * nil errors * 3.175 (#2482) * Better Error Message if Failing to Exit Initial Sync (#2483) * no err throw * nil errors * better error on init sync * Only Log Active Balances (#2485) * only log active balance * dont need () * change logging (#2487) * fix chainstart waiting on rpc server (#2488) * shift ticker to after activation (#2489) * Add drain script (#2418) * Add drain script * Fix script to drain contracts from newest to oldest * Add README * remove comments * Only after block 400k, look up by deposit event * issue warn log on disconnecting peer instead of error (#2491) * Display Only Active Validator Data (#2490) * Fix Validator Status Field in RPC Server (#2492) * fix status of key * status test fix * fmt * Estimate the Time Till Follow Distance Is Completed (#2486) * use estimation instead * fix test * fixing another test * fix tests and preston's comments * remove unused var * fix condition * Revert "fix condition" This reverts commit dee0e3112c01f68f30a2e50cd4eb35f29f672e1d. * dont return error * add production config for testnet release (#2493) * Lookup Validator Index in State in Status Check (#2494) * state lookup * refactor duplicate code * refactor with mapping * fix broken tests * finish refactor * merged master * Starting, I need get_epoch_start_shard * updated EpochCommitteeCount and fixed tests * implemented ShardDelta * test for ShardDelta * implemented EpochStartShard * added epoch out of bound test * test for accurate start shard * lint * need to use changes from latest crosslinks * added BaseReward and totalActiveBalance * added test for base reward * merged master * all tests passing * start testing * done * fixed tests * addressed shay's feedback * Implement Attestation Delta for v0.6 (#2646) * update process crosslink and update existing tests * added a test case to cover no crosslink changes * more test * preston's feedback * spellings * ValidatorStatus Estimating Activation RPC Server (#2469) * fix spacing * working on position in queue * fmt * spacing * feedback * tests * rename * Only Perform Initial Sync With a Single Peer (#2471) * fix spacing * use send instead of broadcast in initial sync * Fix Estimation of Deposit Inclusion Slot in ValidatorActivationStatus (#2472) * fix spacing * fix time estimates * correct slot estimation * naming * Update beacon-chain/rpc/validator_server.go Co-Authored-By: rauljordan <raul@prysmaticlabs.com> * SSZ web api for decoding input data (#2473) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * standardize slot numbers (#2475) * Add CORS for ssz api (#2476) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * needed CORS * Allow Client to Retrieve Multiple Validator Statuses (#2474) * multiple validator statuses * gazelle * context * fixing bugs * remove old way of checking * fix logging * make activation queue more accurate * fix rpc test * add test * fix remaining tests * lint * comment * review comments * Update Prysm README (#2477) * README updated * readme updates * no err throw (#2479) * Fix Status Nil Pointer Error (#2480) * no err throw * nil errors * 3.175 (#2482) * Better Error Message if Failing to Exit Initial Sync (#2483) * no err throw * nil errors * better error on init sync * Only Log Active Balances (#2485) * only log active balance * dont need () * change logging (#2487) * fix chainstart waiting on rpc server (#2488) * shift ticker to after activation (#2489) * Add drain script (#2418) * Add drain script * Fix script to drain contracts from newest to oldest * Add README * remove comments * Only after block 400k, look up by deposit event * issue warn log on disconnecting peer instead of error (#2491) * Display Only Active Validator Data (#2490) * Fix Validator Status Field in RPC Server (#2492) * fix status of key * status test fix * fmt * Estimate the Time Till Follow Distance Is Completed (#2486) * use estimation instead * fix test * fixing another test * fix tests and preston's comments * remove unused var * fix condition * Revert "fix condition" This reverts commit dee0e3112c01f68f30a2e50cd4eb35f29f672e1d. * dont return error * add production config for testnet release (#2493) * Lookup Validator Index in State in Status Check (#2494) * state lookup * refactor duplicate code * refactor with mapping * fix broken tests * finish refactor * merged master * Starting, I need get_epoch_start_shard * updated EpochCommitteeCount and fixed tests * implemented ShardDelta * test for ShardDelta * implemented EpochStartShard * added epoch out of bound test * test for accurate start shard * lint * need to use changes from latest crosslinks * added BaseReward and totalActiveBalance * added test for base reward * implemented process_attestation_delta * comments * comments * merged master * all tests passing * start testing * done * merged master * fixed tests * tests, more to come * tests done * lint * spaces over tabs * addressed shay's feedback * merged master * Implement process_rewards_and_penalties for 0.6 (#2665) * update process crosslink and update existing tests * added a test case to cover no crosslink changes * more test * preston's feedback * spellings * ValidatorStatus Estimating Activation RPC Server (#2469) * fix spacing * working on position in queue * fmt * spacing * feedback * tests * rename * Only Perform Initial Sync With a Single Peer (#2471) * fix spacing * use send instead of broadcast in initial sync * Fix Estimation of Deposit Inclusion Slot in ValidatorActivationStatus (#2472) * fix spacing * fix time estimates * correct slot estimation * naming * Update beacon-chain/rpc/validator_server.go Co-Authored-By: rauljordan <raul@prysmaticlabs.com> * SSZ web api for decoding input data (#2473) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * standardize slot numbers (#2475) * Add CORS for ssz api (#2476) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * needed CORS * Allow Client to Retrieve Multiple Validator Statuses (#2474) * multiple validator statuses * gazelle * context * fixing bugs * remove old way of checking * fix logging * make activation queue more accurate * fix rpc test * add test * fix remaining tests * lint * comment * review comments * Update Prysm README (#2477) * README updated * readme updates * no err throw (#2479) * Fix Status Nil Pointer Error (#2480) * no err throw * nil errors * 3.175 (#2482) * Better Error Message if Failing to Exit Initial Sync (#2483) * no err throw * nil errors * better error on init sync * Only Log Active Balances (#2485) * only log active balance * dont need () * change logging (#2487) * fix chainstart waiting on rpc server (#2488) * shift ticker to after activation (#2489) * Add drain script (#2418) * Add drain script * Fix script to drain contracts from newest to oldest * Add README * remove comments * Only after block 400k, look up by deposit event * issue warn log on disconnecting peer instead of error (#2491) * Display Only Active Validator Data (#2490) * Fix Validator Status Field in RPC Server (#2492) * fix status of key * status test fix * fmt * Estimate the Time Till Follow Distance Is Completed (#2486) * use estimation instead * fix test * fixing another test * fix tests and preston's comments * remove unused var * fix condition * Revert "fix condition" This reverts commit dee0e3112c01f68f30a2e50cd4eb35f29f672e1d. * dont return error * add production config for testnet release (#2493) * Lookup Validator Index in State in Status Check (#2494) * state lookup * refactor duplicate code * refactor with mapping * fix broken tests * finish refactor * merged master * Starting, I need get_epoch_start_shard * updated EpochCommitteeCount and fixed tests * implemented ShardDelta * test for ShardDelta * implemented EpochStartShard * added epoch out of bound test * test for accurate start shard * lint * need to use changes from latest crosslinks * added BaseReward and totalActiveBalance * added test for base reward * implemented process_attestation_delta * comments * comments * merged master * all tests passing * start testing * done * merged master * fixed tests * tests, more to come * tests done * lint * spaces over tabs * addressed shay's feedback * starting but need to merge a few things... * tests * fmt * Update Slot Processing and State Transition v0.6 (#2664) * edit state transition to add slot processing logic, reorder logic * fix build * lint * tests passing * spacing * tests pass * imports * passing tests * Implement Process Epoch for 0.6 (#2675) * can't find process j f functons * implemented process_epoch * tests done * lint * nishant's feedback * stupid goland replace * goimports * Update CommitteeAssignment (#2693) * cleaned up skipped tests for core processing (#2697) * Process Block Attestations v0.6 (#2650) * attestation.go is ready, tests not * ready for review * fixing linter issues * modified Crosslink and AttestationData proto fields to spec 2.0,marked deprecated fields * gazelle * fixed tests * fixed error * add att processing: * process atts * error msg * finish process attestations logic * spacing * ssz move * inclusion delay failure passing * more attestation tests * more att tests passing * more tests * ffg data mismatching test * ffg tests complete * gofmt * fix testing to match attestation updates * ssz * lint * Fixed Skipped Tests for RPC Server (#2712) * Remove Obsolete Deposit Proto Objects (#2673) * remove deposit data * remove deposit input * fix references * remove deposit helpers * fix all refs * gaz * rgene proto * fix all tests * remove deposit data deprecated field * fix remaining references * fix all tests * fix lint * regen proto * fix test * Remove Deprecated Protobuf State Fields (#2713) * Remove Deprecated Protobuf Crosslink/Slashing/Block Fields (#2714) * Remove Deprecated Beacon Block Proto Fields (#2717) * Remove Deprecated Attestation Proto Fields (#2723) * Cache Shuffled Validator Indices (#2682) * YAML shuffle tests for v0.6 (#2667) * new shuffle tests * added comment for exported function * fix format and print * added config files handling * gazelle fix * shuffle test debugging * added shuffle list and benchmark * hash function addition from nishant code * gazelle fix * remove unused function * few minor changes * add test to test protos optimization * test a bigger list * remove commented code * small changes * fix spec test and test indices to pass * remove empty line * abstraction of repeated code and comment arrangement * terence change requests * fix new test * add small comment for better readability * change from unshuflle to shuffle * comment * better comment * fix all tests * Remove Latest Block (#2721) * lint * remove latest block * lint * add proto * fix build * Fix Deposit Trie (#2686) * remove deposit data * remove deposit input * fix references * remove deposit helpers * fix all refs * gaz * rgene proto * fix all tests * remove deposit data deprecated field * fix remaining references * fix all tests * fix lint * new tests with contract * gaz * more tests * fixed bugs * new test * finally fixed it * gaz * fix test * Remove Committee Cache (#2729) * Benchmark Compute Committee (#2698) * Fixed Skipped Attestation Tests (#2730) * Optimize Shuffled Indices Cache (#2728) * Refactor Deposit Contract Test Setup (#2731) * add new package * fix all tests * lint * change hash function (#2732) * Remove Deprecated Validator Protobuf (#2727) * Remove deprecated validator protos * Fix to comments * Fix most of skipped tests (#2735) * Optimize Base Reward Calculation (#2753) * benchmark process epoch * revert prof.out * Add some optimizations * beware where we use ActiveValidatorIndices... * revert extra file * gaz * quick commit to get feedback * revert extra file * started fixing tests * fixed broken TestProcessCrosslink_NoUpdate * gaz * cache randao seed * fixed all the tests * fmt and lint * spacing * Added todo * lint * revert binary file * started regression test * basic tests done * using a fifo for active indices cache * using a fifo for active count cache * using a fifo for total balance cache * using a fifo for active balance cache * using a fifo for start shard cache * using a fifo for seed cache * gaz * clean up * fixing tests * fixed all the core tests * fixed all the tests!!! * lint * comment * rm'ed commented code * cache size to 1000 should be good enough * optimized base reward * revert binary file * Added comments to calculate adjusted quotient outside * removed deprecated configs (#2755) * Optimize Process Eth1 Data Vote (#2754) * Cleanup and Docs update (#2756) * Add graffiti and update generate seed (#2759) * Benchmark Process Block with Attestations (#2758) * Tidying up Godoc for Core Package (#2762) * Clean up Old RPC Endpoints (#2763) * Update RPC end point for Proposer (#2767) * add RequestBlock * run mockgen * implemented RequestBlock * updated proto definitions * updated tests * updated validator attest tests * done * comment * todo issue * removed unused proto * Cache Active Validator Indices, Count, and Balances (#2737) * Update Deposit Contract (#2648) * lint * add new contract * change version * remove log * generating abi and binary files * fix tests * update to current version * new changes * add new hash function * save hashed nodes * add more things * new method * add update to trie * new stuff * gaz * more stuff * finally fixed build * remove deposit data * Revert "remove deposit data" This reverts commit 9085409e91be0c94550af10290eaad72ad40a6de. * more changes * lint and gaz * lint * Update Shard Helpers for 0.6 (#2497) * ValidatorStatus Estimating Activation RPC Server (#2469) * fix spacing * working on position in queue * fmt * spacing * feedback * tests * rename * Only Perform Initial Sync With a Single Peer (#2471) * fix spacing * use send instead of broadcast in initial sync * Fix Estimation of Deposit Inclusion Slot in ValidatorActivationStatus (#2472) * fix spacing * fix time estimates * correct slot estimation * naming * Update beacon-chain/rpc/validator_server.go Co-Authored-By: rauljordan <raul@prysmaticlabs.com> * SSZ web api for decoding input data (#2473) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * standardize slot numbers (#2475) * Add CORS for ssz api (#2476) * first pass ssz server for decoding deposit input data * fix decoding * revert viz change on helper * add image target * use /api prefix, add deployment for cluster * fix lint * needed CORS * Allow Client to Retrieve Multiple Validator Statuses (#2474) * multiple validator statuses * gazelle * context * fixing bugs * remove old way of checking * fix logging * make activation queue more accurate * fix rpc test * add test * fix remaining tests * lint * comment * review comments * Update Prysm README (#2477) * README updated * readme updates * no err throw (#2479) * Fix Status Nil Pointer Error (#2480) * no err throw * nil errors * 3.175 (#2482) * Better Error Message if Failing to Exit Initial Sync (#2483) * no err throw * nil errors * better error on init sync * Only Log Active Balances (#2485) * only log active balance * dont need () * change logging (#2487) * fix chainstart waiting on rpc server (#2488) * shift ticker to after activation (#2489) * Add drain script (#2418) * Add drain script * Fix script to drain contracts from newest to oldest * Add README * remove comments * Only after block 400k, look up by deposit event * issue warn log on disconnecting peer instead of error (#2491) * Display Only Active Validator Data (#2490) * Fix Validator Status Field in RPC Server (#2492) * fix status of key * status test fix * fmt * Estimate the Time Till Follow Distance Is Completed (#2486) * use estimation instead * fix test * fixing another test * fix tests and preston's comments * remove unused var * fix condition * Revert "fix condition" This reverts commit dee0e3112c01f68f30a2e50cd4eb35f29f672e1d. * dont return error * add production config for testnet release (#2493) * Lookup Validator Index in State in Status Check (#2494) * state lookup * refactor duplicate code * refactor with mapping * fix broken tests * finish refactor * merged master * updated EpochCommitteeCount and fixed tests * implemented ShardDelta * test for ShardDelta * implemented EpochStartShard * added epoch out of bound test * test for accurate start shard * lint * Update Genesis State Function to v0.6 (#2465) * add pseudocode * make changes * fix all tests * fix tests * lint * regen protos and mocks * regenerated protos * started fixing core * all core tests passing! * removed shared/forkutils * started fixing blockchain package * lint * updating rpc package * add back deleted stuff * add back deleted stuff that was deleted accidentally * add back protos and mocks * fix errors * fix genesis issue * fix genesis issue for slot ticker * fix all genesis errors * fix build files * temp change for go-ssz * fix test * Revert "temp change for go-ssz" This reverts commit 3411cb9d6d519cb521181486debc3b21603c8873. * update to latest go-ssz * unstaged changes * Update Attester Server RPC Calls (#2773) * Update config and function parameters to v0.7 (#2791) * Minor Updates to 0.7 (#2795) * Refactor Deposit Flow and Cleanup Tests (#2788) * More WIP on cleaning deposit flow * Fix tests * Cleanup and imports * run gazelle * Move deposit to block_operations * gazelle * Update beacon-chain/core/blocks/block_operations.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Fix docs * Remove unneeded calculations * Fix tests * Fix tests finally (?) * Optimize Committee Assignment RPC (#2787) * Update BlockRoot to BlockHash (#2816) * Fix Final Missing Items in Block Processing v0.6 (#2710) * override config successfully * passes processing * add signing root helper * blockchain tests pass * tests blocked by signing root * lint * fix references * fix protos * proper use of signing root * only few failing tests now * fix final test * tests passing * lint and imports * rem unused * Update beacon-chain/core/blocks/block_operations.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * lint * Update beacon-chain/attestation/service_test.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Update beacon-chain/db/block_test.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * rename to hash tree root * rename decode to unmarshal * fix * use latest ssz * all tests passing * lint * fmt * Add Config YAML for Spec Tests (#2818) * Align Protobuf Type Names (#2825) * gofmt * Revert "Align Protobuf Type Names (#2825)" (#2827) This reverts commit 882d067144c674bbf4eeee00404acaa0a9b1fd33. * Update Domain Related Functions (#2832) * Add Functions for Compressed and Uncompressed HashG2 With Domain (#2833) * add tests * gaz * lint * Revert "Add Functions for Compressed and Uncompressed HashG2 With Domain (#2833)" (#2835) This reverts commit 7fb2ebf3f12f043d7bd12f43500dc2bd133df573. * Add ConvertToPb to package testutil (#2838) * Block Processing Bug Fixes (#2836) * Update types PB with Size Tags (#2840) * Epoch processing spec tests (#2814) * Remove Deposit Index (#2851) * Shuffle tests revisited (#2829) * first commit * remove old files, add log * remove duplicate yaml testing code * reduce visability * nishant feedback changes * skip TestFromYaml_Pass * added tags to bazel build * gazelle fix * remove unused vars * adda back config * remove config handling * remove unused var * gazelle fix * SSZ compatibility test for protobufs (#2839) * update workspace spec sha * remove yamls from branch * BLS spec tests (#2826) (#2856) * bls spec tests * add more bls tests * use ioutil instead of bazel runfiles * dont read bytes * skip tests that overflow uint64 * manually fix input data * add tests * lint and gaz * add all new changes * some refactoring, cleanup, remove new API methods that only exist for tests * gaz * Remove yamls, skip test * Slot processing spec test (#2813) * eth1data rpc endpoint (#2733) * eth1data rpc endpoint * first version * comment added * gazelle fix * new function to go once over the deposit array * fix tests * export DepositContainer * terence feedback * move structure decleration * binary search * fix block into Block * preston feedback * keep slice sorted to remove overhead in retrival * merge changes * feedback * update to the latest go-ssz * revert change * chnages to fit new ssz * revert merge reversion * go fmt goimprts duplicate string * exception for lint unused doesParentExist * feedback changes * latesteth1data to eth1data * goimports and stop exposing Eth1Data * revert unneeded change * remove exposure of DepositContainer * feedback and fixes * fix workspace duplicate dependancy * greatest number of deposits at current height * add count votes function * change method name * revert back to latesteth1data * latesteth1data * preston feedback * seperate function add tests fix bug * stop exposing voteCountMap * eth1data comment fix * preston feedback * fix tests * new proto files * workspace to default version of ssz * new ssz * chnage test size * marshalled marshaled * Attesting Indices Fix (#2862) * add change * fix one test * fix all tests * add test * clear cache * removed old chaintest, simulated backend and state generator (#2863) * Block Processing Sanity Spec Tests (#2817) * update PrevEpoch * add new changes * shift to blocks package * add more changes * new changes * updated pb with size tags * add new changes * fix errors * uncomment code * more changes * add new changes * rename and lint * gaz * more changes * proccess slot SigningRoot instead of HashTreeRoot * ensure yaml generated structs work * block sanity all passing * minimal and mainnet all pass * remove commented code * fix one test * fix all tests * fix again * no state comparison * matching spec * change target viz * comments gazelle * clear caches before test cases * latest attempts * clean up test format * remove debugging log, remove yaml * unskip attestation * remove skip, check post state, diff state diffs * handle err * add bug fixes * fixed one more bug * fixed churn limit bug * change hashProto to HashTreeRoot * all tests pass :) * fix all tests * gaz * add regression tests * fix test bug * Mutation testing fixes for beacon-chain/core/helpers/attestation.go (#2868) * mutation testing for attestation.go * new line * lint * revert fmt.Errorf deletion * gofmt * Add some fixes for mutation testing on blocks.go (#2869) * Fix sizes * gaz * Spec freeze release candidate spectests * Align Protobuf Type Names (#2872) * Removes some deprecated fields from protobuf (#2877) * search and replace checkpoints * fix tests, except spec tests * Update Configs for Freeze (#2876) * update configs * updated minimal configs * almost there * all tests passing except for spec tests * better comment for MinGenesisTime * done, ready for review * rm seconds per day * feedback * Mutation testing fixes for beacon-chain/core/helpers/committee.go (#2870) * Add some fixes for mutation testing on blocks.go * working on mutation testing fo committee.go * gofmt * goimports * update readme target * update latest sha for spec tests * fix build * Update State Transition Function (#2867) * Change Base Reward Factor (#2888) * Update Freeze Spec Simplification Section - part 1 (#2893) * finished changes to attesting_indices * removed index_count <= 2**40 requirement * lint * reverted index_count <= 2**40 check * added short cut len(a) > len(b) * Update justification bits (#2894) * updated all the helper pseudocodes (#2895) * Make Constants Explicit and Minor Cleanups (#2898) * Rename outdated configs, make constants explicitly delcared * Remove activate_validator, not needed * Remove GenesisSlot and GenesisEpoch * Remove unused import * Move Block Operation Length Checks to ProcessOperations (#2900) * Move block operation length checks to ProcessOperations * Write tests for each length check in ProcessOperations * Remove unneeded test * Move checks to a new function * Move duplicate check back into ProcessOperations * reorder proto fields (#2902) * Slashing Penalty Calculation Change (#2889) * lint * change config val * add max helper * changes to slashing and process slashing, add a min function for integers * gaz * fix failing tests * fix test * fixed all tests * Change Yaml tag * lint * remove gc hack * fix test * gaz * preston's comments * change failing field * fix and regen proto * lint * Implement Compact Committee Root (#2897) * add tags * add function * add new code * add function * add all new changes * lint * add tests * fix tests * fix more tests * fix all outstanding tests * gaz * Update beacon-chain/core/helpers/committee.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * comment * Remove deprecated fields from attestation data (#2892) * fix broken tests * remove comment * fixes * Update Deposit Contract (#2903) * update to new contract * fix references * fix tests * fix some more tests * fix local deposit trie * gaz * shays review * more changes * update WORKSPACE to use 0.8 spec tests * Perform Mutesting in Helpers Package (#2912) * Perform mutesting on validator * Mutesting in helpers package * Mutested eth1data * s/volundary/voluntary (#2914) * Update BLS Domain (#2916) * change from integer to byte slice * add test * fix func for bytes4 * Fix Spec tests (#2907) * fix panics * handle failed transitions * remove log * fix to protos * new changes * remove i * change ssz commit * new changes * update epoch tests * fix epoch testing * fix shuffle tests * fix test * Perform Mutesting in Epoch and State Packages (#2913) * done with updates (#2890) * Add Max Size Tag for Protobuf Fields (#2908) * No more space between ssz-size numbers * Regen pb.go * Fixed a few incorrect proto fields (#2926) * Update Validator Workflow (#2906) * Justification spec tests (#2896) * update go-ssz * Fix SSZ Compatibility Test (#2924) * figuring out how to seqeeze in multiple fields in a tag for pb * Added max tags and regenerated pb.go * updated to new standard * New bitfield types in proto (#2915) * Cast bytes to correct bitfield, failing tests now though * Add forked gogo/protobuf until https://github.com/gogo/protobuf/pull/582 * remove newline * use proper override for gogo-protobuf * fix a few tags * forgot to include custody bits and Slashable not used * Update yaml struct to use pb * Update workspace to use latest ssz * All tests fail * Use the latest go-ssz commit * All pass except for state (too long to taste) * Update test.proto * Added rest of the tests * use 1 justification bits * fix tag test, apply @rauljordan's suggestion * add IsEmpty and use ssz struct * delete unused file * Update zero hash to sha256().digest() (#2932) * update zero hash * change zero hash to conform with spec * goimports * add test for zero hash * Revert "Update zero hash to sha256().digest() (#2932)" (#2933) This reverts commit b926ae0667b18aef3f7e0e8ec8a9b3e98b3d2ccc. * Fix compress validator (#2936) * fix compress validator * update go-ssz * build without the bytes test * try minimal * Block operations spec tests (#2828) * update PrevEpoch * debugging proposer slashing tests * fmt * add deposit tests * Added skeleton for attestation minimal test * remove bazel runfiles thing * add deposits * proposer slashing test is done * comment * complete test, some failing cases * sig verify on * refactor slightly to support mainnet and minimal * included mainnet stuff * Add block header tests * volunary exit done * transfer done * new changes * fix all tests * update domain functions * fmt * fixed lint * fixed all the tests * fixed a transfer bug * finished attester slashing tests and fixed a few bugs * started fixing... * cleaned up exit and proposr slashing tests * attester slashing passing * refactored deposit tests * remove yamls, update ssz * Added todo for invalid sig * gazelle * deposits test done! * transfer tests done and pass! * fix attesting indices bug * temporarily disabled signature verification * cleaned up most of the block ops, except for att * update committee AttestingIndices * oops, i dont know how or why i changed this file * fixed all the rpc tests * 6 more failing packages * test max transfer in state package * replace hashproto with treehash in package blockchain * gazelle * fix test * fix test again * fixed transition test, 2 more left * expect an error in attestation tests * Handle panic when no votes in aggregate attestation * clear cache * Add differ, add logging, tests pass yay * remove todo, add tag * fixed TestReceiveBlock_RemovesPendingDeposits * TestAttestationMinimal/success_since_max_epochs_per_crosslink fails now... * handle panics * Transfer tests were disabled in https://github.com/ethereum/eth2.0-specs/pull/1238 * more fixes after merge, updating block_operations.yaml.go to match yaml * figuring out how to seqeeze in multiple fields in a tag for pb * Added max tags and regenerated pb.go * updated to new standard * New bitfield types in proto (#2915) * Cast bytes to correct bitfield, failing tests now though * Add forked gogo/protobuf until https://github.com/gogo/protobuf/pull/582 * remove newline * fix references and test panic * change to proto objects from custom types * fix panics in tests * use proper override for gogo-protobuf * fix a few tags * fix tests * forgot to include custody bits and Slashable not used * fix tests * sort again * Update yaml struct to use pb * Update workspace to use latest ssz * All tests fail * Use the latest go-ssz commit * All pass except for state (too long to taste) * Update test.proto * Added rest of the tests * use 1 justification bits * minor fixes * wrong proto.Equal * fix tag test, apply @rauljordan's suggestion * add IsEmpty and use ssz struct * inverted logic * update zero hash * change zero hash to conform with spec * goimports * add test for zero hash * Revert "Update zero hash to sha256().digest() (#2932)" This reverts commit b926ae0667b18aef3f7e0e8ec8a9b3e98b3d2ccc. * update ssz, fix import, shard big test * checkpoint * fix compress validator * update go-ssz * missing import * missing import * tests now pass * been a good day * update test size * fix lint * imports and remove unused const * update bazel jobs flag * update bazel jobs flag * satisfy deprecation warning * Add ssz regression tests for investigation of test failures in PR #2828 (#2935) * Adding regression tests for investigation * add another example * goimports * add quick comment about test case 0 * Epoch Process Slashings Spec Tests (#2930) * updated justification bits, tests passing OK * regen pb.go, clarify bit operations * justification and finalization tests; failing * Add wrapper, so we call the correct method * checkpoint * Update tar ref * TestSlashingsMinimal/small_penalty still failing * Use bigint instead of () and float * Revert a bad merge from workspace * Fmt * add note about https://github.com/ethereum/eth2.0-specs/issues/1284 * improve tests * gaz * Perform Mutesting In core/state Package (#2923) * Perform mutesting on validator * Mutesting in helpers package * Mutested eth1data * Perform mutesting in epoch and state packages * Fix voluntary exits test * Fix typo * Fix comments * Fix formatting * Fix error message * Handle missing errors * Handle all errors * Perform Mutesting In State Package * Fix block roots size * Remove comment * Fix error * add backend service * Add ssz compatibility tests for signing root (#2931) * Added tests for signing root * imports * fix lint on travis * fix bes flag * Final updates spec tests (#2901) * set up tests * need to reorder pbs * figuring out how to seqeeze in multiple fields in a tag for pb * Added max tags and regenerated pb.go * updated to new standard * New bitfield types in proto (#2915) * Cast bytes to correct bitfield, failing tests now though * Add forked gogo/protobuf until https://github.com/gogo/protobuf/pull/582 * remove newline * use proper override for gogo-protobuf * fix a few tags * forgot to include custody bits and Slashable not used * playing with tags idea, can revert this commit later * fixes after merge * reset caches before test * all epoch tests pass * gazelle * Genesis trigger (#2905) * genesis change * integrate changes * bodyroot * remove unused code * HasChainStarted * added isValidGenesisState to ProcessLog * state fix * fix gazelle * uint64 timestamp * SetupInitialDeposits adds proof * remove unneeded parts of test * deposithash * merkleproof from spec utils * Revert "merkleproof from spec utils" This reverts commit 1b0a124352e7b62e3c3220fb0d64e295b474b430. * fix test failures * chain started and hashtree root in tests * simple eth2genesistime * eth2 genesis time * fix zero time * add comment * remove eth1data and feedback * fix build issues * main changes: add fields and methods to track active validator count * gaz * fix test * fix more tests * improve test utils * shift spec method to state package, improve test setup * fixed log processing tests * remove log * gaz * fix invalid metric * use better tag names, not latest * Remove Block Signing Root (#2945) * replace with hash tree root * Revert "replace with hash tree root" This reverts commit 77d8f16a160e42f3c3d598df66c30a66657de1bf. * replace with signing root instead * remove one more ref * Create Test Runner for Genesis State Spec Tests (#2940) * genesis change * integrate changes * bodyroot * remove unused code * HasChainStarted * added isValidGenesisState to ProcessLog * state fix * fix gazelle * uint64 timestamp * SetupInitialDeposits adds proof * remove unneeded parts of test * deposithash * merkleproof from spec utils * Revert "merkleproof from spec utils" This reverts commit 1b0a124352e7b62e3c3220fb0d64e295b474b430. * fix test failures * chain started and hashtree root in tests * simple eth2genesistime * eth2 genesis time * fix zero time * add comment * remove eth1data and feedback * fix build issues * main changes: add fields and methods to track active validator count * gaz * fix test * fix more tests * improve test utils * Start genesis spec tests * shift spec method to state package, improve test setup * Add Genesis validity spec test * Bazel * fixed log processing tests * remove log * gaz * fix invalid metric * use json tags * fix up latest changes * Fix most of test errors * Attempts to see whats wrong with genesis validity * Fix merge * skip minimal * fix state test * new commit * fix nishant comment * gaz * Static check on branch spec-v0.6 (#2946) * Ran staticcheck and fixed the important complains * commit * commit * Create Test Runner for Genesis State Spec Tests (#2940) * genesis change * integrate changes * bodyroot * remove unused code * HasChainStarted * added isValidGenesisState to ProcessLog * state fix * fix gazelle * uint64 timestamp * SetupInitialDeposits adds proof * remove unneeded parts of test * deposithash * merkleproof from spec utils * Revert "merkleproof from spec utils" This reverts commit 1b0a124352e7b62e3c3220fb0d64e295b474b430. * fix test failures * chain started and hashtree root in tests * simple eth2genesistime * eth2 genesis time * fix zero time * add comment * remove eth1data and feedback * fix build issues * main changes: add fields and methods to track active validator count * gaz * fix test * fix more tests * improve test utils * Start genesis spec tests * shift spec method to state package, improve test setup * Add Genesis validity spec test * Bazel * fixed log processing tests * remove log * gaz * fix invalid metric * use json tags * fix up latest changes * Fix most of test errors * Attempts to see whats wrong with genesis validity * Fix merge * skip minimal * fix state test * new commit * fix nishant comment * gaz * Add Back Eth1Data After Bad Merge (#2953) * eth1data rpc endpoint * first version * comment added * gazelle fix * new function to go once over the deposit array * fix tests * export DepositContainer * terence feedback * move structure decleration * binary search * fix block into Block * preston feedback * keep slice sorted to remove overhead in retrival * merge changes * feedback * update to the latest go-ssz * revert change * chnages to fit new ssz * revert merge reversion * go fmt goimprts duplicate string * exception for lint unused doesParentExist * feedback changes * latesteth1data to eth1data * goimports and stop exposing Eth1Data * revert unneeded change * remove exposure of DepositContainer * feedback and fixes * fix workspace duplicate dependancy * greatest number of deposits at current height * add count votes function * change method name * revert back to latesteth1data * latesteth1data * preston feedback * seperate function add tests fix bug * stop exposing voteCountMap * eth1data comment fix * preston feedback * fix tests * new proto files * workspace to default version of ssz * new ssz * chnage test size * marshalled marshaled * everything passing again * add skip reason * cleanup deposit contract slightly * remove unused chainstart param (#2957) * fix breakages from #2957 (#2958) * fix breakages from #2957 * oops * Fix deposit input data (#2956) * fix deposit input data * fix deposit input data * gaz and build fix * Add Tests for Genesis Deposits Caching (#2952) * remove old method and replace with an improved one * add new files * gaz * add test * added all these tests * gaz * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * fix merkle proof error * fix config * Minor fixes for runtime (#2960) * Minor fixes for runtime * use comments * goimports * revert beacon-chain/core/state/state.go and fix comment for lint * fix test too * Minor runtime fixes (#2961) * Add support for bundling binaries and fix ARM64 builds (#2970) * Add support for bundling binaries and fix ARM64 builds * Fix exports * ignore manual targets wrt vis check * fix graknlabs * update spec tests (#2979) * hotfix until https://github.com/graknlabs/bazel-distribution/pull/169 * Overflow slashing calculation fix (#2977) * Runtime Fixes (#2736) * first batch of fixes * add log * more fixes * another bug fixed * update deposit contract and other fixes * remove logs * new changes * fixes * fix build * remove config * more fixes * add more changes * add back todo * make compute state root work * remove commented out and fix condition * fix commented code * fix config * gaz * remove flag * remove init * new fixes * fix test * one more fix * fix all tests * change back config * fix one more bug * remove logging bool * Only build test targets when running bazel test //... * Align prysm to spec v0.8.1 (#2978) * Bazel problem * Update zero hash representation to be clear (cosmetic) * Update minor cosmetic fixes * Fixed lookahead off by 1 * Update randao.go * update ssz * test failures fixed * test fixes * fix up workspace * lint * fixed errs * Updated pubkey loggings (#2983) * Fix proposer assignment (#2984) * add jvm limits * add jvm limits * Removed logging from state transition functions (#2980) * Match spec on proposer index division (#2985) * Match spec on proposer index division * gaz * fixes * Fix Default Eth1Data (#2982) * fix bug * Update beacon-chain/core/state/transition.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * more fixes * reg test * Set ejection balance to 1.6 (#2987) * improve block processing log (#2990) * Fix HistoricalRootsLimit (#2989) * fix historical lenght * fix genesis state initialization and test * fix genesis state initialization and test * fix genesis state initialization and test * fix genesis state initialization and test * hack config until https://github.com/prysmaticlabs/prysm/issues/2993 * More Runtime Fixes (#2986) * local changes * add val sig * attester fix * one more fix * fixed all tests * rem validator issue * fix finality issue (#2994) * Fix validator prev balance calculation (#2992) * attester fix * one more fix * fixed all tests * Fix validator prev balances calculation * go fmt * 48 bytes * Fix Querier to handle Deposit Logs Race (#2999) * fix sync issue * fix build * add regression test * add var for magic number * Fix eth1data and deposits (#2996) * Work in progress, eth1data works, deposits are included at the appropriate time, and activation happens at the correct time * revert blockInfo being public * git tests to build, not yet pass though * add tests * some commentary * fix comment * goimports * fmt and remove unused method * Update rules go (#2975) * update rules_go * Fix some cross compile builds stuff * add missing deps * update to 0.19.1 * Update Protobufs to Match Ethereum APIs (#2998) * add beacon block and attestation files * add all types * include all new proto type definitions * add add all proto definitions * fix all comments to say 48 bytes * include latest changes * readd common * no swag * add build file * deps issue * right package names * address feedback, maintain parity between upstream ethereumapis * delete pb * bad gens * Update "Testing Prysm" readme section (#3000) Resolves invalid url link to golangci-lint. * Update badge to version 0.8.1 * elaborate on test skip * revert shared/p2p/options.go * make travis happy with goimports * Update beacon-chain/core/blocks/block.go Co-Authored-By: Preston Van Loon <preston@prysmaticlabs.com> |
||
---|---|---|
.github | ||
.well-known | ||
beacon-chain | ||
contracts | ||
docs | ||
k8s | ||
proto | ||
scripts | ||
shared | ||
third_party | ||
tools | ||
validator | ||
.bazelrc | ||
.buildkite-bazelrc | ||
.codecov.yml | ||
.gitattributes | ||
.gitignore | ||
.golangci.yml | ||
.travis.yml | ||
BUILD.bazel | ||
CONTRIBUTING.md | ||
LICENSE.md | ||
nogo_config.json | ||
PULL_REQUEST_TEMPLATE.md | ||
README.md | ||
renovate.json | ||
service-account.json.enc | ||
VERSION | ||
WORKSPACE |
Prysm: Ethereum 'Serenity' 2.0 Go Implementation
This is the Core repository for Prysm, Prysmatic Labs' Go implementation of the Ethereum protocol 2.0 (Serenity).
Need assistance?
A more detailed set of installation and usage instructions as well as explanations of each component are available on our official documentation portal. If you still have questions, feel free to stop by either our Discord or Gitter and a member of the team or our community will be happy to assist you.
Interested in what's next? Be sure to read our Roadmap Reference Implementation document. This page outlines the basics of sharding as well as the various short-term milestones that we hope to achieve over the coming year.
Come join the testnet!
Participation is now open to the public in our testnet release for Ethereum 2.0 phase 0. Visit prylabs.net for more information on the project itself or to sign up as a validator on the network.
Table of Contents
- Dependencies
- Installation
- Running an Ethereum 2.0 Beacon Node
- Staking ETH: Running a Validator Client
- Testing Prysm
- Contributing
- License
Dependencies
Prysm can be installed either with Docker (recommended method) or using our build tool, Bazel. The below instructions include sections for performing both.
For Docker installations:
- The latest release of Docker
For Bazel installations:
- The latest release of Bazel
- A modern GNU/Linux operating system
Installation
Build via Docker
- Ensure you are running the most recent version of Docker by issuing the command:
docker -v
- To pull the Prysm images from the server, issue the following commands:
docker pull gcr.io/prysmaticlabs/prysm/validator:latest
docker pull gcr.io/prysmaticlabs/prysm/beacon-chain:latest
This process will also install any related dependencies.
Build via Bazel
- Open a terminal window. Ensure you are running the most recent version of Bazel by issuing the command:
bazel version
- Clone this repository and enter the directory:
git clone https://github.com/prysmaticlabs/prysm
cd prysm
- Build both the beacon chain node implementation and the validator client:
bazel build //beacon-chain:beacon-chain
bazel build //validator:validator
Bazel will automatically pull and install any dependencies as well, including Go and necessary compilers.
Running an Ethereum 2.0 Beacon Node
To understand the role that both the beacon node and validator play in Prysm, see this section of our documentation.
Running via Docker
Docker on Linux/Mac:
- To start your beacon node, issue the following command:
docker run -v /tmp/prysm-data:/data -p 4000:4000 \
gcr.io/prysmaticlabs/prysm/beacon-chain:latest \
--datadir=/data
--clear-db
Docker on Windows:
-
You will need to share the local drive you wish to mount to to container (e.g. C:).
- Enter Docker settings (right click the tray icon)
- Click 'Shared Drives'
- Select a drive to share
- Click 'Apply'
-
You will next need to create a directory named
/tmp/prysm-data/
within your selected shared Drive. This folder will be used as a local data directory for Beacon Node chain data as well as account and keystore information required by the validator. Docker will not create this directory if it does not exist already. For the purposes of these instructions, it is assumed thatC:
is your prior-selected shared Drive. -
To run the beacon node, issue the following command:
docker run -it -v c:/tmp/prysm-data:/data -p 4000:4000 gcr.io/prysmaticlabs/prysm/beacon-chain:latest --datadir=/data --clear-db
Running via Bazel
- To start your Beacon Node with Bazel, issue the following command:
bazel run //beacon-chain -- --clear-db --datadir=/tmp/prysm-data
This will sync up the Beacon Node with the latest head block in the network.
Staking ETH: Running a Validator Client
Once your beacon node is up, the chain will be waiting for you to deposit 3.2 Goerli ETH into the Validator Deposit Contract to activate your validator (discussed in the section below). First though, you will need to create a validator client to connect to this node in order to stake and participate. Each validator represents 3.2 Goerli ETH being staked in the system, and it is possible to spin up as many as you desire in order to have more stake in the network.
Activating Your Validator: Depositing 3.2 Goerli ETH
Using your validator deposit data from the previous step, follow the instructions found on https://alpha.prylabs.net/participate to make a deposit.
It will take a while for the nodes in the network to process your deposit, but once your node is active, the validator will begin doing its responsibility. In your validator client, you will be able to frequently see your validator balance as it goes up over time. Note that, should your node ever go offline for a long period, you'll start gradually losing your deposit until you are removed from the system.
Starting the validator with Bazel
- Open another terminal window. Enter your Prysm directory and run the validator by issuing the following command:
cd prysm
bazel run //validator
Congratulations, you are now running Ethereum 2.0 Phase 0!
Testing Prysm
To run the unit tests of our system, issue the command:
bazel test //...
To run our linter, make sure you have golangci-lint installed and then issue the command:
golangci-lint run
Contributing
We have put all of our contribution guidelines into CONTRIBUTING.md! Check it out to get started.