prysm-pulse/beacon-chain/blockchain/service.go

395 lines
14 KiB
Go
Raw Normal View History

// Package blockchain defines the life-cycle and status of the beacon chain
// as well as the Ethereum Serenity beacon chain fork-choice rule based on
// Casper Proof of Stake finality.
package blockchain
import (
"context"
"fmt"
"runtime"
"sync"
"time"
"github.com/gogo/protobuf/proto"
2019-08-02 02:27:38 +00:00
"github.com/pkg/errors"
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
"github.com/prysmaticlabs/go-ssz"
Part 5 of update fork choice - implement new ReceiveBlock (#3242) * Implemented new fork choice service and helpers * Added rest of the tests * Lint * Add back helpers test * Add benchmark tests * Add yaml driven framework tests * Reformatted to doc, helpers and metrics.go * include new getter for block * create block filters from indices * give every block index a unique bucket * construct block indices by bucket mmap * almost done save for the block filters * include block filters, need a few more small touches for fetching the proper indices by bucket * full functionality to filter by parent root * tests pass when using the same logic as attestations * todo * proper todo formatting * first minimum slot range filter * slot range filters pass * more filter criteria passing * tests passing * add todos * all block tests pass and work * rem fmt * range retrieval test * fixed test conditions * Implemented new receive block methods * Comments * Remove mark evil block * instantiate the other buckets * simplify bucket lookups * deprecate non map code * revamp to remove old index prefixes * create indices from data * create indices from data * fetch block roots by slot range * better abstractions * simpler abstractions * roots rename * comment * preston feedback * Fixed existing tests * allow blocks without parent root * Cleaned up a few things * Removed todo * Lint * Cleaned up a few things * A few functions don't need to be exported * Gaz * Fixed visibility * Review feedback * Review feedback part1 * Raul's feedback, refactored OnBlock and OnAttestation to its own file * Fixed grammar * Lint * Renamed to receive_block.go * Use time.Time * Preston's feedback, removed OnTick and Store.time * Dont have to cast it to kv * add block caching layer * runlock * lockinggg * Fixed * Avoid 2 fetches of the same data * latest votes map * Gaz * Test passes * Lint * Fixed db set up * Fixed all the tests * Gazelle * Added tests * Remove todo * remove kv * Last clean up * Last clean up Last clean up * Lint * Preston's feedback
2019-08-21 17:40:00 +00:00
"github.com/prysmaticlabs/prysm/beacon-chain/blockchain/forkchoice"
"github.com/prysmaticlabs/prysm/beacon-chain/cache/depositcache"
"github.com/prysmaticlabs/prysm/beacon-chain/core/blocks"
Efficient computation of epoch participation (#4430) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Define framework * Use participation fetcher * Build * Fixed all tests * Lint * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Fixed rest of the test * Pass in correct chain service * Pass in another chain service * Run time * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * Current -> Prev * Tests * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Update test * Conflict * Update beacon-chain/blockchain/chain_info.go * Conflict * Merge branch 'efficient-participation' of git+ssh://github.com/prysmaticlabs/prysm into efficient-participation * Merge refs/heads/master into efficient-participation
2020-01-07 19:28:25 +00:00
"github.com/prysmaticlabs/prysm/beacon-chain/core/epoch/precompute"
"github.com/prysmaticlabs/prysm/beacon-chain/core/feed"
statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state"
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
"github.com/prysmaticlabs/prysm/beacon-chain/core/state"
"github.com/prysmaticlabs/prysm/beacon-chain/db"
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
"github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations"
"github.com/prysmaticlabs/prysm/beacon-chain/p2p"
"github.com/prysmaticlabs/prysm/beacon-chain/powchain"
pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
"github.com/prysmaticlabs/prysm/shared/bytesutil"
"github.com/prysmaticlabs/prysm/shared/featureconfig"
Fix Stuck Beacon Node (#4454) * Revert "Revert #4392 (#4449)" This reverts commit 67c380b197536a3cf2309c200897ba5d2d8b1ddd. * bound start req * Merge refs/heads/master into revert-4449-revert-4392 * fix test * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * add flag for deployment block * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * use constant and comments * lint * skip test for now * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Update shared/params/config.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Update beacon-chain/powchain/testing/mock.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * preston's review * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * add flag * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * use stateutils * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392
2020-01-16 01:46:15 +00:00
"github.com/prysmaticlabs/prysm/shared/stateutil"
"github.com/sirupsen/logrus"
"go.opencensus.io/trace"
)
// Service represents a service that handles the internal
// logic of managing the full PoS beacon chain.
type Service struct {
Efficient computation of epoch participation (#4430) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Define framework * Use participation fetcher * Build * Fixed all tests * Lint * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Fixed rest of the test * Pass in correct chain service * Pass in another chain service * Run time * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * Current -> Prev * Tests * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Update test * Conflict * Update beacon-chain/blockchain/chain_info.go * Conflict * Merge branch 'efficient-participation' of git+ssh://github.com/prysmaticlabs/prysm into efficient-participation * Merge refs/heads/master into efficient-participation
2020-01-07 19:28:25 +00:00
ctx context.Context
cancel context.CancelFunc
beaconDB db.HeadAccessDatabase
Efficient computation of epoch participation (#4430) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Define framework * Use participation fetcher * Build * Fixed all tests * Lint * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Fixed rest of the test * Pass in correct chain service * Pass in another chain service * Run time * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * Current -> Prev * Tests * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Update test * Conflict * Update beacon-chain/blockchain/chain_info.go * Conflict * Merge branch 'efficient-participation' of git+ssh://github.com/prysmaticlabs/prysm into efficient-participation * Merge refs/heads/master into efficient-participation
2020-01-07 19:28:25 +00:00
depositCache *depositcache.DepositCache
chainStartFetcher powchain.ChainStartFetcher
attPool attestations.Pool
forkChoiceStore forkchoice.ForkChoicer
genesisTime time.Time
p2p p2p.Broadcaster
maxRoutines int64
headSlot uint64
headBlock *ethpb.SignedBeaconBlock
headState *pb.BeaconState
canonicalRoots map[uint64][]byte
headLock sync.RWMutex
stateNotifier statefeed.Notifier
genesisRoot [32]byte
epochParticipation map[uint64]*precompute.Balance
epochParticipationLock sync.RWMutex
}
// Config options for the service.
type Config struct {
[Interop] Improve RPC Codebase + Start Beacon Chain With Mock ETH1 Values (#3407) * add main.go * interop readme * proper visibility * standardize and abstract into simpler funcs * formatting * no os pkg * add test * no panics anywhere, properly and nicely handle errors * proper comments * fix broken test * readme * comment * recommend ssz * install * tool now works * README * build * readme * 64 validators * rem print * register the no powchain flag * work on mock eth1 start * common interface * getting closer with the interface defs * only two uses of powchain * remove powchain dependency * remove powchain dependency * common powchain interface * proper comment in case of flag * proper args into rpc services * rename fields * pass in mock flag into RPC * conforms to iface * use client instead of block fetcher iface * broken tests * block fetcher * finalized * resolved broken build * fix build * comment * fix tests * tests pass * resolved confs * took them out * rename into smaller interfaces * resolve some confs * ensure tests pass * properly utilize mock instead of localized mock * res lint * lint * finish test for mock eth1data * run gazelle * include flag again * fix broken build * disable powchain * dont dial eth1 nodes * reenable pow * use smaller interfaces, standardize naming * abstract mock into its own package * faulty mock lint * fix stutter in lint * rpc tests all passing * use mocks for operations * no more mocks in the entire rpc package * no mock * viz * testonly
2019-09-09 21:13:50 +00:00
BeaconBlockBuf int
ChainStartFetcher powchain.ChainStartFetcher
BeaconDB db.HeadAccessDatabase
[Interop] Improve RPC Codebase + Start Beacon Chain With Mock ETH1 Values (#3407) * add main.go * interop readme * proper visibility * standardize and abstract into simpler funcs * formatting * no os pkg * add test * no panics anywhere, properly and nicely handle errors * proper comments * fix broken test * readme * comment * recommend ssz * install * tool now works * README * build * readme * 64 validators * rem print * register the no powchain flag * work on mock eth1 start * common interface * getting closer with the interface defs * only two uses of powchain * remove powchain dependency * remove powchain dependency * common powchain interface * proper comment in case of flag * proper args into rpc services * rename fields * pass in mock flag into RPC * conforms to iface * use client instead of block fetcher iface * broken tests * block fetcher * finalized * resolved broken build * fix build * comment * fix tests * tests pass * resolved confs * took them out * rename into smaller interfaces * resolve some confs * ensure tests pass * properly utilize mock instead of localized mock * res lint * lint * finish test for mock eth1data * run gazelle * include flag again * fix broken build * disable powchain * dont dial eth1 nodes * reenable pow * use smaller interfaces, standardize naming * abstract mock into its own package * faulty mock lint * fix stutter in lint * rpc tests all passing * use mocks for operations * no more mocks in the entire rpc package * no mock * viz * testonly
2019-09-09 21:13:50 +00:00
DepositCache *depositcache.DepositCache
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
AttPool attestations.Pool
[Interop] Improve RPC Codebase + Start Beacon Chain With Mock ETH1 Values (#3407) * add main.go * interop readme * proper visibility * standardize and abstract into simpler funcs * formatting * no os pkg * add test * no panics anywhere, properly and nicely handle errors * proper comments * fix broken test * readme * comment * recommend ssz * install * tool now works * README * build * readme * 64 validators * rem print * register the no powchain flag * work on mock eth1 start * common interface * getting closer with the interface defs * only two uses of powchain * remove powchain dependency * remove powchain dependency * common powchain interface * proper comment in case of flag * proper args into rpc services * rename fields * pass in mock flag into RPC * conforms to iface * use client instead of block fetcher iface * broken tests * block fetcher * finalized * resolved broken build * fix build * comment * fix tests * tests pass * resolved confs * took them out * rename into smaller interfaces * resolve some confs * ensure tests pass * properly utilize mock instead of localized mock * res lint * lint * finish test for mock eth1data * run gazelle * include flag again * fix broken build * disable powchain * dont dial eth1 nodes * reenable pow * use smaller interfaces, standardize naming * abstract mock into its own package * faulty mock lint * fix stutter in lint * rpc tests all passing * use mocks for operations * no more mocks in the entire rpc package * no mock * viz * testonly
2019-09-09 21:13:50 +00:00
P2p p2p.Broadcaster
MaxRoutines int64
StateNotifier statefeed.Notifier
}
// NewService instantiates a new block service instance that will
// be registered into a running beacon node.
func NewService(ctx context.Context, cfg *Config) (*Service, error) {
ctx, cancel := context.WithCancel(ctx)
Part 5 of update fork choice - implement new ReceiveBlock (#3242) * Implemented new fork choice service and helpers * Added rest of the tests * Lint * Add back helpers test * Add benchmark tests * Add yaml driven framework tests * Reformatted to doc, helpers and metrics.go * include new getter for block * create block filters from indices * give every block index a unique bucket * construct block indices by bucket mmap * almost done save for the block filters * include block filters, need a few more small touches for fetching the proper indices by bucket * full functionality to filter by parent root * tests pass when using the same logic as attestations * todo * proper todo formatting * first minimum slot range filter * slot range filters pass * more filter criteria passing * tests passing * add todos * all block tests pass and work * rem fmt * range retrieval test * fixed test conditions * Implemented new receive block methods * Comments * Remove mark evil block * instantiate the other buckets * simplify bucket lookups * deprecate non map code * revamp to remove old index prefixes * create indices from data * create indices from data * fetch block roots by slot range * better abstractions * simpler abstractions * roots rename * comment * preston feedback * Fixed existing tests * allow blocks without parent root * Cleaned up a few things * Removed todo * Lint * Cleaned up a few things * A few functions don't need to be exported * Gaz * Fixed visibility * Review feedback * Review feedback part1 * Raul's feedback, refactored OnBlock and OnAttestation to its own file * Fixed grammar * Lint * Renamed to receive_block.go * Use time.Time * Preston's feedback, removed OnTick and Store.time * Dont have to cast it to kv * add block caching layer * runlock * lockinggg * Fixed * Avoid 2 fetches of the same data * latest votes map * Gaz * Test passes * Lint * Fixed db set up * Fixed all the tests * Gazelle * Added tests * Remove todo * remove kv * Last clean up * Last clean up Last clean up * Lint * Preston's feedback
2019-08-21 17:40:00 +00:00
store := forkchoice.NewForkChoiceService(ctx, cfg.BeaconDB)
return &Service{
Efficient computation of epoch participation (#4430) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Define framework * Use participation fetcher * Build * Fixed all tests * Lint * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Fixed rest of the test * Pass in correct chain service * Pass in another chain service * Run time * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * Current -> Prev * Tests * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Update test * Conflict * Update beacon-chain/blockchain/chain_info.go * Conflict * Merge branch 'efficient-participation' of git+ssh://github.com/prysmaticlabs/prysm into efficient-participation * Merge refs/heads/master into efficient-participation
2020-01-07 19:28:25 +00:00
ctx: ctx,
cancel: cancel,
beaconDB: cfg.BeaconDB,
depositCache: cfg.DepositCache,
chainStartFetcher: cfg.ChainStartFetcher,
attPool: cfg.AttPool,
forkChoiceStore: store,
p2p: cfg.P2p,
canonicalRoots: make(map[uint64][]byte),
maxRoutines: cfg.MaxRoutines,
stateNotifier: cfg.StateNotifier,
epochParticipation: make(map[uint64]*precompute.Balance),
}, nil
}
// Start a blockchain service's main event loop.
func (s *Service) Start() {
ctx := context.TODO()
beaconState, err := s.beaconDB.HeadState(ctx)
if err != nil {
log.Fatalf("Could not fetch beacon state: %v", err)
}
Use cache state during init sync (#4199) * Initial sync state cache * Gaz * Gaz * Don't save head root * Fix config validator * Uncomment save head * Merge branch 'master' into initial-sync-no-verify * Minor refactor * Merge branch 'initial-sync-no-verify' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify * Merge branch 'master' into initial-sync-no-verify * Tests * Merge branch 'initial-sync-no-verify' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify * Merge branch 'master' into initial-sync-no-verify * Add lock * Merge branch 'initial-sync-no-verify' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify * Tests * Removed save head * One more test * Merge branch 'master' into initial-sync-no-verify * Raul's feedback * Merge branch 'initial-sync-no-verify' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify * Comment * Gazelle * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify * revert * Update beacon-chain/blockchain/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify * Merge branch 'initial-sync-no-verify' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify * Fixed test * Fixed feature flag * Merge branch 'master' into initial-sync-no-verify * Fixed cache gensis state test * Merge branch 'initial-sync-no-verify' of https://github.com/prysmaticlabs/prysm into initial-sync-no-verify
2019-12-06 00:49:19 +00:00
// For running initial sync with state cache, in an event of restart, we use
// last finalized check point as start point to sync instead of head
// state. This is because we no longer save state every slot during sync.
if featureconfig.Get().InitSyncCacheState {
cp, err := s.beaconDB.FinalizedCheckpoint(ctx)
if err != nil {
log.Fatalf("Could not fetch finalized cp: %v", err)
}
if beaconState == nil {
beaconState, err = s.beaconDB.State(ctx, bytesutil.ToBytes32(cp.Root))
if err != nil {
log.Fatalf("Could not fetch beacon state: %v", err)
}
}
}
// If the chain has already been initialized, simply start the block processing routine.
if beaconState != nil {
log.Info("Blockchain data already exists in DB, initializing...")
s.genesisTime = time.Unix(int64(beaconState.GenesisTime), 0)
if err := s.initializeChainInfo(ctx); err != nil {
log.Fatalf("Could not set up chain info: %v", err)
}
justifiedCheckpoint, err := s.beaconDB.JustifiedCheckpoint(ctx)
if err != nil {
log.Fatalf("Could not get justified checkpoint: %v", err)
}
finalizedCheckpoint, err := s.beaconDB.FinalizedCheckpoint(ctx)
if err != nil {
log.Fatalf("Could not get finalized checkpoint: %v", err)
}
if err := s.forkChoiceStore.GenesisStore(ctx, justifiedCheckpoint, finalizedCheckpoint); err != nil {
log.Fatalf("Could not start fork choice service: %v", err)
}
s.stateNotifier.StateFeed().Send(&feed.Event{
Type: statefeed.Initialized,
Data: &statefeed.InitializedData{
StartTime: s.genesisTime,
},
})
} else {
log.Info("Waiting to reach the validator deposit threshold to start the beacon chain...")
[Interop] Improve RPC Codebase + Start Beacon Chain With Mock ETH1 Values (#3407) * add main.go * interop readme * proper visibility * standardize and abstract into simpler funcs * formatting * no os pkg * add test * no panics anywhere, properly and nicely handle errors * proper comments * fix broken test * readme * comment * recommend ssz * install * tool now works * README * build * readme * 64 validators * rem print * register the no powchain flag * work on mock eth1 start * common interface * getting closer with the interface defs * only two uses of powchain * remove powchain dependency * remove powchain dependency * common powchain interface * proper comment in case of flag * proper args into rpc services * rename fields * pass in mock flag into RPC * conforms to iface * use client instead of block fetcher iface * broken tests * block fetcher * finalized * resolved broken build * fix build * comment * fix tests * tests pass * resolved confs * took them out * rename into smaller interfaces * resolve some confs * ensure tests pass * properly utilize mock instead of localized mock * res lint * lint * finish test for mock eth1data * run gazelle * include flag again * fix broken build * disable powchain * dont dial eth1 nodes * reenable pow * use smaller interfaces, standardize naming * abstract mock into its own package * faulty mock lint * fix stutter in lint * rpc tests all passing * use mocks for operations * no more mocks in the entire rpc package * no mock * viz * testonly
2019-09-09 21:13:50 +00:00
if s.chainStartFetcher == nil {
log.Fatal("Not configured web3Service for POW chain")
return // return need for TestStartUninitializedChainWithoutConfigPOWChain.
}
go func() {
stateChannel := make(chan *feed.Event, 1)
stateSub := s.stateNotifier.StateFeed().Subscribe(stateChannel)
defer stateSub.Unsubscribe()
for {
select {
case event := <-stateChannel:
if event.Type == statefeed.ChainStarted {
data := event.Data.(*statefeed.ChainStartedData)
log.WithField("starttime", data.StartTime).Debug("Received chain start event")
s.processChainStartTime(ctx, data.StartTime)
return
}
case <-s.ctx.Done():
log.Debug("Context closed, exiting goroutine")
return
case err := <-stateSub.Err():
log.WithError(err).Error("Subscription to state notifier failed")
return
}
}
}()
}
go s.processAttestation()
}
// processChainStartTime initializes a series of deposits from the ChainStart deposits in the eth1
// deposit contract, initializes the beacon chain's state, and kicks off the beacon chain.
func (s *Service) processChainStartTime(ctx context.Context, genesisTime time.Time) {
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
preGenesisState := s.chainStartFetcher.PreGenesisState()
if err := s.initializeBeaconChain(ctx, genesisTime, preGenesisState, s.chainStartFetcher.ChainStartEth1Data()); err != nil {
log.Fatalf("Could not initialize beacon chain: %v", err)
}
s.stateNotifier.StateFeed().Send(&feed.Event{
Type: statefeed.Initialized,
Data: &statefeed.InitializedData{
StartTime: genesisTime,
},
})
}
// initializes the state and genesis block of the beacon chain to persistent storage
// based on a genesis timestamp value obtained from the ChainStart event emitted
// by the ETH1.0 Deposit Contract and the POWChain service of the node.
func (s *Service) initializeBeaconChain(
ctx context.Context,
genesisTime time.Time,
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
preGenesisState *pb.BeaconState,
eth1data *ethpb.Eth1Data) error {
_, span := trace.StartSpan(context.Background(), "beacon-chain.Service.initializeBeaconChain")
defer span.End()
s.genesisTime = genesisTime
unixTime := uint64(genesisTime.Unix())
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
genesisState, err := state.OptimizedGenesisBeaconState(unixTime, preGenesisState, eth1data)
if err != nil {
return errors.Wrap(err, "could not initialize genesis state")
}
if err := s.saveGenesisData(ctx, genesisState); err != nil {
return errors.Wrap(err, "could not save genesis data")
}
log.Info("Initialized beacon chain genesis state")
// Update committee shuffled indices for genesis epoch.
if err := helpers.UpdateCommitteeCache(genesisState, 0 /* genesis epoch */); err != nil {
return err
}
if err := helpers.UpdateProposerIndicesInCache(genesisState, 0 /* genesis epoch */); err != nil {
return err
}
return nil
}
// Stop the blockchain service's main event loop and associated goroutines.
func (s *Service) Stop() error {
defer s.cancel()
return nil
}
// Status always returns nil unless there is an error condition that causes
// this service to be unhealthy.
func (s *Service) Status() error {
if runtime.NumGoroutine() > int(s.maxRoutines) {
return fmt.Errorf("too many goroutines %d", runtime.NumGoroutine())
}
return nil
}
// This gets called to update canonical root mapping.
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
func (s *Service) saveHead(ctx context.Context, signed *ethpb.SignedBeaconBlock, r [32]byte) error {
s.headLock.Lock()
defer s.headLock.Unlock()
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
if signed == nil || signed.Block == nil {
return errors.New("cannot save nil head block")
}
s.headSlot = signed.Block.Slot
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
s.canonicalRoots[signed.Block.Slot] = r[:]
if err := s.beaconDB.SaveHeadBlockRoot(ctx, r); err != nil {
return errors.Wrap(err, "could not save head root in DB")
}
s.headBlock = proto.Clone(signed).(*ethpb.SignedBeaconBlock)
headState, err := s.beaconDB.State(ctx, r)
if err != nil {
return errors.Wrap(err, "could not retrieve head state in DB")
}
s.headState = headState
log.WithFields(logrus.Fields{
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
"slot": signed.Block.Slot,
"headRoot": fmt.Sprintf("%#x", r),
}).Debug("Saved new head info")
return nil
}
// This gets called to update canonical root mapping. It does not save head block
// root in DB. With the inception of inital-sync-cache-state flag, it uses finalized
// check point as anchors to resume sync therefore head is no longer needed to be saved on per slot basis.
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
func (s *Service) saveHeadNoDB(ctx context.Context, b *ethpb.SignedBeaconBlock, r [32]byte) error {
s.headLock.Lock()
defer s.headLock.Unlock()
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
s.headSlot = b.Block.Slot
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
s.canonicalRoots[b.Block.Slot] = r[:]
s.headBlock = proto.Clone(b).(*ethpb.SignedBeaconBlock)
headState, err := s.beaconDB.State(ctx, r)
if err != nil {
return errors.Wrap(err, "could not retrieve head state in DB")
}
s.headState = headState
log.WithFields(logrus.Fields{
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
"slot": b.Block.Slot,
"headRoot": fmt.Sprintf("%#x", r),
}).Debug("Saved new head info")
return nil
}
// This gets called when beacon chain is first initialized to save validator indices and pubkeys in db
func (s *Service) saveGenesisValidators(ctx context.Context, state *pb.BeaconState) error {
pubkeys := make([][]byte, len(state.Validators))
indices := make([]uint64, len(state.Validators))
for i, v := range state.Validators {
pubkeys[i] = v.PublicKey
indices[i] = uint64(i)
}
return s.beaconDB.SaveValidatorIndices(ctx, pubkeys, indices)
}
// This gets called when beacon chain is first initialized to save genesis data (state, block, and more) in db
func (s *Service) saveGenesisData(ctx context.Context, genesisState *pb.BeaconState) error {
s.headLock.Lock()
defer s.headLock.Unlock()
Fix Stuck Beacon Node (#4454) * Revert "Revert #4392 (#4449)" This reverts commit 67c380b197536a3cf2309c200897ba5d2d8b1ddd. * bound start req * Merge refs/heads/master into revert-4449-revert-4392 * fix test * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * add flag for deployment block * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * use constant and comments * lint * skip test for now * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Update shared/params/config.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Update beacon-chain/powchain/testing/mock.go Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * preston's review * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * add flag * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * use stateutils * Merge branch 'revert-4449-revert-4392' of https://github.com/prysmaticlabs/geth-sharding into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392 * Merge refs/heads/master into revert-4449-revert-4392
2020-01-16 01:46:15 +00:00
stateRoot, err := stateutil.HashTreeRootState(genesisState)
if err != nil {
return errors.Wrap(err, "could not tree hash genesis state")
}
genesisBlk := blocks.NewGenesisBlock(stateRoot[:])
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
genesisBlkRoot, err := ssz.HashTreeRoot(genesisBlk.Block)
if err != nil {
return errors.Wrap(err, "could not get genesis block root")
}
if err := s.beaconDB.SaveBlock(ctx, genesisBlk); err != nil {
return errors.Wrap(err, "could not save genesis block")
}
if err := s.beaconDB.SaveState(ctx, genesisState, genesisBlkRoot); err != nil {
return errors.Wrap(err, "could not save genesis state")
}
if err := s.beaconDB.SaveHeadBlockRoot(ctx, genesisBlkRoot); err != nil {
return errors.Wrap(err, "could not save head block root")
}
if err := s.beaconDB.SaveGenesisBlockRoot(ctx, genesisBlkRoot); err != nil {
return errors.Wrap(err, "could save genesis block root")
}
if err := s.saveGenesisValidators(ctx, genesisState); err != nil {
return errors.Wrap(err, "could not save genesis validators")
}
genesisCheckpoint := &ethpb.Checkpoint{Root: genesisBlkRoot[:]}
if err := s.forkChoiceStore.GenesisStore(ctx, genesisCheckpoint, genesisCheckpoint); err != nil {
return errors.Wrap(err, "Could not start fork choice service: %v")
}
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
s.genesisRoot = genesisBlkRoot
s.headBlock = genesisBlk
s.headState = genesisState
s.canonicalRoots[genesisState.Slot] = genesisBlkRoot[:]
return nil
}
// This gets called to initialize chain info variables using the finalized checkpoint stored in DB
func (s *Service) initializeChainInfo(ctx context.Context) error {
s.headLock.Lock()
defer s.headLock.Unlock()
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
genesisBlock, err := s.beaconDB.GenesisBlock(ctx)
if err != nil {
return errors.Wrap(err, "could not get genesis block from db")
}
if genesisBlock == nil {
return errors.New("no genesis block in db")
}
genesisBlkRoot, err := ssz.HashTreeRoot(genesisBlock.Block)
if err != nil {
return errors.Wrap(err, "could not get signing root of genesis block")
}
s.genesisRoot = genesisBlkRoot
finalized, err := s.beaconDB.FinalizedCheckpoint(ctx)
if err != nil {
return errors.Wrap(err, "could not get finalized checkpoint from db")
}
if finalized == nil {
// This should never happen. At chain start, the finalized checkpoint
// would be the genesis state and block.
return errors.New("no finalized epoch in the database")
}
s.headState, err = s.beaconDB.State(ctx, bytesutil.ToBytes32(finalized.Root))
if err != nil {
return errors.Wrap(err, "could not get finalized state from db")
}
s.headBlock, err = s.beaconDB.Block(ctx, bytesutil.ToBytes32(finalized.Root))
if err != nil {
return errors.Wrap(err, "could not get finalized block from db")
}
Update run time to v0.9.3 (#4154) * Remove custody (#3986) * Update proto fields * Updated block operations * Fixed all block operation tests * Fixed tests part 1 * Fixed tests part 1 * All tests pass * Clean up * Skip spec test * Fixed ssz test * Skip ssz test * Skip mainnet tests * Update beacon-chain/operations/attestation.go * Update beacon-chain/operations/attestation.go * Decoy flip flop check (#3987) * Bounce attack check (#3989) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Update beacon-chain/blockchain/forkchoice/process_block.go * Conflict * Unskip mainnet spec tests (#3998) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update beacon-chain/core/blocks/block_operations.go * Unskip minimal spec tests (#3999) * Starting * Fixed attestation mainnet test * Unskip ssz static and block processing tests * Fixed workspace * fixed workspace * fixed workspace * Update workspace * Unskip all minimal spec tests * Update workspace for general test * Unskip test (#4001) * Update minimal seconds per slot to 6 (#3978) * Bounce attack tests (#3993) * New store values * Update process block * Update process attestation * Update tests * Helper * Fixed blockchain package tests * Slots since epoch starts tests * Update justified checkpt tests * Conflict * Fixed logic * Update process_block.go * Use helper * Conflict * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.1 * Conflict * Fixed failed tests * Lower MinGenesisActiveValidatorCount to 16384 (#4100) * Fork choice beacon block checks (#4107) * Prevent future blocks check and test * Removed old code * Update aggregation proto (#4121) * Update def * Update spec test * Conflict * Update workspace * patch * Resolve conflict * Patch * Change workspace * Update ethereumapis to a forked branch at commit https://github.com/prysmaticlabs/ethereumapis/pull/46/commits/6eb1193e47f66c7dabc33958b1996ec16c1b6e16 * Fixed all the tests * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into conflict * fix patch * Need to regenerate test data * Merge branch 'master' into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Enable snappy compression for all (#4157) * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * enable snappy compression for all * Validate aggregate and proof subscriber (#4159) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Conflict * Update workspace * Conflict * Conflict * Conflict * Merge branch 'master' into v0.9.2 * Merge branch 'master' into v0.9.2 * Conflict * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Remove migrate to snappy (#4205) * Feature flag: Deprecate --prune-states, release to all (#4204) * Deprecated prune-states, release to all * imports * remote unused import * remove unused import * Rm prune state test * gaz * Refactoring for dynamic pubsub subscriptions for non-aggregated attestations (#4189) * checkpoint progress * chkpt * checkpoint progress * put pipeline in its own file * remove unused imports * add test, it's failing though * fix test * remove head state issue * add clear db flag to e2e * add some more error handling, debug logging * skip processing if chain has not started * fix test * wrap in go routine to see if anything breaks * remove duplicated topic * Add a regression test. Thanks @nisdas for finding the original problem. May it never happen again *fingers crossed* * Comments * gofmt * comment out with TODO * Sync with master * Sync with master * RPC servers use attestation pool (#4223) * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Refactor RPC to Fully Utilize Ethereum APIs (#4243) * include attester as a file in the validator server * remove old proposer server impl * include new patch and properly sync changes * align with public pbs * ensure matches rpc def * fix up status tests * resolve all broken test files in the validator rpc package * gazelle include * fix up the duties implementation * fixed up all get duties functions * all tests pass * utilize new ethereum apis * amend validator client to use the new beacon node validator rpc client * fix up most of validator items * added in mock * fix up test * readd test * add chain serv mock * fix a few more validator methods * all validator tests passingggg * fix broken test * resolve even more broken tests * all tests passsssss * fix lint * try PR * fix up test * resolve broken other tests * Sync with master * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into v0.9.2 * Aggregate and proof subscriber (#4240) * Added subscribers * Fixed conflict * Tests * fix up patch * Use upstream pb * include latest patch * Fmt * Save state before head block * skip tests (#4275) * Delete block attestations from the pool (#4241) * Added subscribers * Clean up * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Merge branch 'v0.9.2' of https://github.com/prysmaticlabs/prysm into use-att-pool-3 * Test * Fixed test * Initial work on voluntary exit (#4207) * Initial implementation of voluntary exit: RPC call * Update for recent merges * Break out validation logic for voluntary exits to core module * RequestExit -> ProposeExit * Decrease exit package visibility * Move to operation feed * Wrap errors * Fix critical proposer selection bug #4259 (#4265) * fix critical proposer selection bug #4259 * gofmt * add 1 more validator to make it 5 * more tests * Fixed archivedProposerIndex * Fixed TestFilterAttestation_OK * Refactor ComputeProposerIndex, add regression test for potential out of range panic * handle case of nil validator * Update validators_test.go * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Leftover merge files, oops * gaz * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * Fixes Duplicate Validator Bug (#4322) * Update dict * Test helper * Regression test * Comment * Reset test cache * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fixes after PR #4328 * Complete attestation pool for run time (#4286) * Added subscribers * Fixed conflict * Delete atts in pool in validate pipeline * Moved it to subscriber * Test * Fixed test * New curl for forkchoice attestations * Starting att pool service for fork choice * Update pool interface * Update pool interface * Update sync and node * Lint * Gazelle * Updated servers, filled in missing functionalities * RPC working with 1 beacon node 64 validators * Started writing tests. Yay * Test to aggregate and save multiple fork choice atts * Tests for BatchAttestations for fork choice * Fixed exisiting tests * Minor fixes * Fmt * Added batch saves * Lint * Mo tests yay * Delete test * Fmt * Update interval * Fixed aggregation broadcast * Clean up based on design review comment * Fixed setupBeaconChain * Raul's feedback. s/error/err * resolve conflicts * Merge branch 'v0.9.2' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Removed old protos and fixed tests (#4336) * Merge refs/heads/master into v0.9.2 * Disallow duplicated indices and test (#4339) * Explicit use of GENESIS_SLOT in fork choice (#4343) * Update from 2 to 3 (#4345) * Remove verify unaggregated attestation when aggregating (#4347) * use slot ticker instead of run every (#4348) * Add context check for unbounded loop work (#4346) * Revert "Explicit use of GENESIS_SLOT in fork choice (#4343)" (#4349) This reverts commit d3f6753c77f8f733563d00ab649c5159b2c2926f. * Refactor Powchain Service (#4306) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * fix lint * raul's comments * use one method * fix test * raul's comment Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Ensure best better-justification is stored for fork choice (#4342) * Ensure best better-justification is stored. Minor refactor * Tests * Merge refs/heads/v0.9.2 into better-best-justified * Merge refs/heads/v0.9.2 into better-best-justified * Ensure that epoch of attestation slot matches the target epoch (#4341) * Disallow duplicated indices and test * Add slot to target epoch check to on_attestation * Add slot to target epoch check to process_attestation * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into no-dup-att-indices * Fixed TestProcessAttestations_PrevEpochFFGDataMismatches * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Merge refs/heads/v0.9.2 into no-dup-att-indices * Update beacon-chain/blockchain/forkchoice/process_attestation_test.go Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> * Merge refs/heads/v0.9.2 into no-dup-att-indices * Filter viable branches in fork choice (#4355) * Only activate upon finality (#4359) * Updated functions * Tests * Merge branch 'v0.9.2' of git+ssh://github.com/prysmaticlabs/prysm into queue-fix-on-finality * Comment * Merge refs/heads/v0.9.2 into queue-fix-on-finality * Fixed failing test from 4359 (#4360) * Fixed * Skip registry spec tests * Wait for state to be initialized at least once before running slot ticker based on genesis time (#4364) * Sync with master * Fix checkpoint root to use genesis block root (#4368) * Return an error on nil head state in fork choice (#4369) * Return error if nil head state * Fixed tests. Saved childen blocks state Co-authored-by: terence tsao <terence@prysmaticlabs.com> * Update metrics every epoch (#4367) * return empty slice if state is nil (#4365) * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * Pubsub: Broadcast attestations to committee based subnets (#4316) * Working on un-aggregated pubsub topics * update subscriber to call pool * checkpointing * fix * untested message validation * minor fixes * rename slotsSinceGenesis to slotsSince * some progress on a unit test, subscribe is not being called still... * dont change topic * need to set the data on the message * restore topic * fixes * some helpful parameter changes for mainnet operations * lint * Terence feedback * unskip e2e * Unit test for validate committee index beacon attestation * PR feedbacK Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into resolveConflicts * remove condition * Remove unused operation pool (#4361) * Merge refs/heads/master into v0.9.2 * Aggregate attestations periodically (#4376) * Persist ETH1 Data to Disk (#4329) * add data structures * generate proto * add in new fields * add comments * add new mock state * add new mock state * add new methods * some more changes * check genesis time properly * lint * fix refs * fix tests * lint * lint * lint * gaz * adding in new proto message * remove outdated vars * add new changes * remove latest eth1data * continue refactoring * finally works * lint * fix test * fix all tests * fix all tests again * fix build * change back * add full eth1 test * fix logs and test * add constant * changes * fix bug * lint * fix another bug * change back * Apply suggestions from code review Co-Authored-By: Raul Jordan <raul@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Fixed VerifyIndexedAttestation (#4382) * rm signing root (#4381) * rm signing root * Fixed VerifyIndexedAttestation * Check proposer slashed status inside ProcessBlockHeaderNoVerify * Fixed TestUpdateJustified_CouldUpdateBest Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove Redundant Trie Generation (#4383) * remove trie generation * remove deposit hashes * Merge branch 'master' of https://github.com/prysmaticlabs/geth-sharding into v0.9.2 * fix build * Conflict * Implement StreamAttestations RPC Endpoint (#4390) * started attestation stream * stream attestations test * on slot tick test passing * imports * gaz * Update beacon-chain/rpc/beacon/attestations_test.go Co-Authored-By: shayzluf <thezluf@gmail.com> Co-authored-by: shayzluf <thezluf@gmail.com> * Fixed goimport (#4394) * Use custom stateutil ssz for ssz HTR spec tests (#4396) * Use custom stateutil ssz for ssz HTR spec tests * gofmt * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge refs/heads/master into v0.9.2 * set mainnet to be the default for build and run (#4398) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * gracefully handle deduplicated registration of topic validators (#4399) Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * SSZ: temporarily disable roots cache until cache issues can be resolved (#4407) * temporarily disable roots cache until cache issues can be resolved * Also use custom ssz for spectests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Remove process block attestations as separate routine (#4408) * Removed old save/process block atts * Fixed tests Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save Deposit Cache to Disk (#4384) * change to protos * fix build * glue everything together * fix test * raul's review * preston's comments Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Fix activation queue sorting (#4409) * Removed old save/process block atts * Fixed tests * Proper sorting by eligibility epoch then by indices * Deleted old colde * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Merge branch 'master' into v0.9.2 * Merge refs/heads/master into v0.9.2 * stop recursive lookup if context is cancelled (#4420) * Fix proposal bug (#4419) * Add Pending Deposits Safely (#4422) * safely prune cache * use proper method * preston's,terence's reviews and comments * revert change to build files * use as feature config instead * Release custom state ssz (#4421) * Release custom state ssz, change all HTR of beacon state to use custom method * typo * use mainnet config Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Merge branch 'master' of github.com:prysmaticlabs/prysm into v0.9.2 * Update initial sync save justified to align with v0.9.3 (#4432) * Merge refs/heads/master into v0.9.2 * Merge refs/heads/master into v0.9.2 * fix build * don't blacklist on pubsub (#4435) * Fix Flakey Slot Ticker Test (#4434) * use interface instead for the slot ticker * fixed up flakey tests * add gen time * get duties comment * fix lifecycle test * more fixes * Configurable min genesis delay (#4437) * Configurable min genesis delay based on https://github.com/ethereum/eth2.0-specs/pull/1557 * remove feature flag for genesis delay * fix * demo config feedback * patch readme * save keys unencrypted for validators (#4439) * Add new demo configuration targeting mainnet scale (#4397) * Add new demo configuration targeting mainnet, with 1/10th of the deposit value * reduce quotant by 1/10th. Use 1/10th mainnet values * only change the inactivity quotant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Save justified checkpoint state (#4433) * Save justified checkpoint state * Lint * Feedback * Fixed test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> * Update shared/testutil/deposits.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update proto/testing/ssz_regression_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/core/epoch/epoch_processing.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/kv/forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/service.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber_beacon_blocks_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/sync/subscriber.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/proposer.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/prepare_forkchoice.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/operations/attestations/pool.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/powchain/log_processing_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/aggregator/server.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/rpc/validator/exit_test.go Co-Authored-By: Ivan Martinez <ivanthegreatdev@gmail.com> * Update beacon-chain/cache/depositcache/pending_deposits.go * Update beacon-chain/cache/depositcache/pending_deposits_test.go * Update beacon-chain/rpc/validator/proposer.go * Merge refs/heads/master into v0.9.2 * Fix e2e genesis delay issues (#4442) * fix e2e genesis delay issues * register flag * typo * Update shared/featureconfig/config.go Co-Authored-By: Nishant Das <nishdas93@gmail.com> * Apply suggestions from code review Co-Authored-By: Nishant Das <nishdas93@gmail.com> * skip demo e2e * fix validator Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com> * Batch Eth1 RPC Calls (#4392) * add new methods * get it working * optimize past deposit logs processing * revert change * fix all tests * use mock * lint * lint * check for nil * stop panics * Apply suggestions from code review Co-Authored-By: terence tsao <terence@prysmaticlabs.com> * Terence's Review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-01-07 18:47:39 +00:00
if s.headBlock != nil && s.headBlock.Block != nil {
s.headSlot = s.headBlock.Block.Slot
}
s.canonicalRoots[s.headSlot] = finalized.Root
return nil
}