prysm-pulse/shared/featureconfig/flags.go

143 lines
4.7 KiB
Go
Raw Normal View History

package featureconfig
import (
Refactor dependencies, make Prysm "go gettable" (#6053) * Fix a few deps to work with go.mod, check in generated files * Update Gossipsub to 1.1 (#5998) * update libs * add new validators * add new deps * new set of deps * tls * further fix gossip update * get everything to build * clean up * gaz * fix build * fix all tests * add deps to images * imports Co-authored-by: rauljordan <raul@prysmaticlabs.com> * Beacon chain builds with go build * fix bazel * fix dep * lint * Add github action for testing go * on PR for any branch * fix libp2p test failure * Fix TestProcessBlock_PassesProcessingConditions by updating the proposer index in test * Revert "Fix TestProcessBlock_PassesProcessingConditions by updating the proposer index in test" This reverts commit 43676894ab01f03fe90a9b8ee3ecfbc2ec1ec4e4. * Compute and set proposer index instead of hard code * Add back go mod/sum, fix deps * go build ./... * Temporarily skip two tests * Fix kafka confluent patch * Fix kafka confluent patch * fix kafka build * fix kafka * Add info in DEPENDENCIES. Added a stub link for Why Bazel? until https://github.com/prysmaticlabs/documentation/issues/138 * Update fuzz ssz files as well * Update fuzz ssz files as well * getting closer * rollback rules_go and gazelle * fix gogo protobuf * install librdkafka-dev as part of github actions * Update kafka to a recent version where librkafkfa is not required for go modules * clarify comment * fix kafka build * disable go tests * comment * Fix geth dependencies for end to end * rename word * lint * fix docker Co-authored-by: Nishant Das <nishdas93@gmail.com> Co-authored-by: rauljordan <raul@prysmaticlabs.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
2020-05-31 06:44:34 +00:00
"github.com/urfave/cli/v2"
)
var (
// ToledoTestnet flag for the multiclient eth2 testnet.
ToledoTestnet = &cli.BoolFlag{
Name: "toledo",
Usage: "This defines the flag through which we can run on the Toledo Multiclient Testnet",
}
// PyrmontTestnet flag for the multiclient eth2 testnet.
PyrmontTestnet = &cli.BoolFlag{
Name: "pyrmont",
Usage: "This defines the flag through which we can run on the Pyrmont Multiclient Testnet",
}
// Mainnet flag for easier tooling, no-op
Mainnet = &cli.BoolFlag{
Value: true,
Name: "mainnet",
Usage: "Run on Ethereum 2.0 Main Net. This is the default and can be omitted.",
}
devModeFlag = &cli.BoolFlag{
Name: "dev",
Usage: "Enable experimental features still in development. These features may not be stable.",
}
writeSSZStateTransitionsFlag = &cli.BoolFlag{
2019-09-24 15:19:37 +00:00
Name: "interop-write-ssz-state-transitions",
Usage: "Write ssz states to disk after attempted state transition",
}
kafkaBootstrapServersFlag = &cli.StringFlag{
Name: "kafka-url",
Usage: "Stream attestations and blocks to specified kafka servers. This field is used for bootstrap.servers kafka config field.",
}
enableExternalSlasherProtectionFlag = &cli.BoolFlag{
Name: "enable-external-slasher-protection",
Usage: "Enables the validator to connect to external slasher to prevent it from " +
"transmitting a slashable offence over the network.",
}
Use WaitForSynced in validator client for startup (#5465) * Add WaitForSynced to beacon-chain * Fix build issues * Fix comment * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Fix tests * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Change validator client to use WaitForSynced * Change prysm script to support windows * Update prysm.sh * Merge branch '0xKiwi-patch-1' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Add to mock * Merge branch 'simplify-val-client' of https://github.com/0xKiwi/Prysm into simplify-val-client * Fix mocks * Add feature flag for WaitForSynced * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Fix flag * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Remove comment * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client
2020-04-20 23:16:53 +00:00
waitForSyncedFlag = &cli.BoolFlag{
Name: "wait-for-synced",
Usage: "Uses WaitForSynced for validator startup, to ensure a validator is able to communicate with the beacon node as quick as possible",
}
disableLookbackFlag = &cli.BoolFlag{
Name: "disable-lookback",
Usage: "Disables use of the lookback feature and updates attestation history for validators from head to epoch 0",
}
disableGRPCConnectionLogging = &cli.BoolFlag{
Name: "disable-grpc-connection-logging",
Usage: "Disables displaying logs for newly connected grpc clients",
}
attestationAggregationStrategy = &cli.StringFlag{
Name: "attestation-aggregation-strategy",
Usage: "Which strategy to use when aggregating attestations, one of: naive, max_cover.",
Value: "max_cover",
}
disableBlst = &cli.BoolFlag{
Name: "disable-blst",
Usage: "Disables the new BLS library, blst, from Supranational",
Add blst for BLS (#6539) * Add blst third party dep * initial build * add init * blst passing tests * add feature flag * blst and herumi for spec tests * maybe this works for mac * Actually set feature flag * Add stub for VerifyMultipleSignatures for blst * verifyCompressed * use correct cores sizes * aggregate public keys * add multi-sig verification * encode not hash * revert back * go mod tidy * update blst to latest commit * add batch decompress * fix * add test * gofmt * update blst * go mod tidy * remove kubesec, fix * mod tidy * disable some remote cache * disable some remote cache * disable some remote cache * disable some remote cache * Switch to -D__ADX__ * update * tidy * fix build * Make blst for only linux,amd64 * gofmt * lint * lint * gazelle * fix build tag * more stub methods * shift adx instructions to x86 * fix arm64 * Revert "fix arm64" This reverts commit 4d34ac21b7509a1b385374e3039efecfcab614c1. * add one more in * Revert "Revert "fix arm64"" This reverts commit 1c8ae24ad16ff9811590f1058b9d98c90b63251a. * try darwin now * Revert "try darwin now" This reverts commit 6f884714b8e14a7a803b72157672b6e942047f37. * Add sha256 * remove TODO * checkpoint * finally builds * fix up * add tag * try again * explicit disabling * remove * select properly * fix * better * make CI happy too * Update .bazelrc * Update .bazelrc * fix tests * revert back * Update shared/bls/blst/public_key.go Co-authored-by: Victor Farazdagi <simple.square@gmail.com> * Update shared/bls/blst/public_key.go Co-authored-by: Victor Farazdagi <simple.square@gmail.com> * clean up tests * more clean up * clean up * add * Update shared/bls/blst/signature.go * Update shared/bls/blst/signature.go * Update .buildkite-bazelrc Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> * try again * remove go tag * revert change * gaz * gazelle ignore Co-authored-by: nisdas <nishdas93@gmail.com> Co-authored-by: Victor Farazdagi <simple.square@gmail.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-09-16 13:28:28 +00:00
}
disableEth1DataMajorityVote = &cli.BoolFlag{
Name: "disable-eth1-data-majority-vote",
Usage: "Disables the Voting With The Majority algorithm when voting for eth1data.",
}
disableAccountsV2 = &cli.BoolFlag{
Name: "disable-accounts-v2",
Usage: "Disables usage of v2 for Prysm validator accounts",
}
Peer scoring: init sync (#6709) * refactors redundant part of varname * introduces score_block_providers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * gazelle * adds comment * Merge branch 'master' into init-sync-peer-scoring-slow-peers * removes redundant checks * add block provider decay test * Merge branch 'master' into init-sync-peer-scoring-slow-peers * adds case * penalize inactive peers * adds scorebadresponses test * inroduces no-activity penalty * gazelle * gofmt * Merge branch 'master' into init-sync-peer-scoring-slow-peers * expanded tests * implement SortBlockProviders * change -> update * updates block fetcher peer filter * fixes test * allows to keep track of peer id * updates scoring coefficients * fixes test * block fetcher update * Merge branch 'master' into init-sync-peer-scoring-slow-peers * disables empty batch penalty * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * removes outdated code * update filterPeers * gazelle * updates var * revert changes to var name * updates blocks_fetcher * minor fix to import name * Merge branch 'master' into init-sync-peer-scoring-slow-peers * add max processed blocks cap * impoves scoring of stale peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * fixes test * adds weight sorting to scored peers * return pid when fetching batches * updates round robin * gazelle * Merge branch 'master' into init-sync-peer-scoring-slow-peers * updates block provider decay count * go tidy * cherry pick * fixes test * go tidy * Merge branch 'peer-scorer-weighted-sorter' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * refactors blocks fetcher: repackage methods * Merge branch 'refactor-blocks-fetcher' into init-sync-peer-scoring-slow-peers * minor fixes * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * allow scores in range (0;1) in weighted filter * filterScoredPeers improve test suite * puts feature behind the flag * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * fixes tests * Merge branch 'init-sync-peer-scoring-slow-peers' of github.com:prysmaticlabs/prysm into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Update beacon-chain/sync/initial-sync/blocks_fetcher_test.go Co-authored-by: Shay Zluf <thezluf@gmail.com> * Nishant's suggestion on peer limit variable * better explanation of non-blocking peer scoring * Shay's sugession on peer naming * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Update beacon-chain/sync/initial-sync/blocks_fetcher.go Co-authored-by: Nishant Das <nishdas93@gmail.com> * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * gofmt * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers
2020-08-13 17:33:57 +00:00
enablePeerScorer = &cli.BoolFlag{
Name: "enable-peer-scorer",
Usage: "Enable experimental P2P peer scorer",
}
checkPtInfoCache = &cli.BoolFlag{
Name: "use-check-point-cache",
Usage: "Enables check point info caching",
}
disablePruningDepositProofs = &cli.BoolFlag{
Name: "disable-pruning-deposit-proofs",
Usage: "Disables pruning deposit proofs when they are no longer needed." +
"This will probably significantly increase the amount of memory taken up by deposits.",
}
enableSyncBacktracking = &cli.BoolFlag{
Name: "enable-sync-backtracking",
Usage: "Enable experimental fork exploration backtracking algorithm",
}
)
// devModeFlags holds list of flags that are set when development mode is on.
var devModeFlags = []cli.Flag{
enableSyncBacktracking,
}
// ValidatorFlags contains a list of all the feature flags that apply to the validator client.
var ValidatorFlags = append(deprecatedFlags, []cli.Flag{
enableExternalSlasherProtectionFlag,
Use WaitForSynced in validator client for startup (#5465) * Add WaitForSynced to beacon-chain * Fix build issues * Fix comment * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Fix tests * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Change validator client to use WaitForSynced * Change prysm script to support windows * Update prysm.sh * Merge branch '0xKiwi-patch-1' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Add to mock * Merge branch 'simplify-val-client' of https://github.com/0xKiwi/Prysm into simplify-val-client * Fix mocks * Add feature flag for WaitForSynced * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Fix flag * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Remove comment * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client
2020-04-20 23:16:53 +00:00
waitForSyncedFlag,
ToledoTestnet,
PyrmontTestnet,
Mainnet,
disableAccountsV2,
disableBlst,
}...)
// SlasherFlags contains a list of all the feature flags that apply to the slasher client.
var SlasherFlags = append(deprecatedFlags, []cli.Flag{
disableLookbackFlag,
ToledoTestnet,
PyrmontTestnet,
Mainnet,
}...)
// E2EValidatorFlags contains a list of the validator feature flags to be tested in E2E.
var E2EValidatorFlags = []string{
Use WaitForSynced in validator client for startup (#5465) * Add WaitForSynced to beacon-chain * Fix build issues * Fix comment * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Fix tests * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Change validator client to use WaitForSynced * Change prysm script to support windows * Update prysm.sh * Merge branch '0xKiwi-patch-1' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Add to mock * Merge branch 'simplify-val-client' of https://github.com/0xKiwi/Prysm into simplify-val-client * Fix mocks * Add feature flag for WaitForSynced * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Fix flag * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Remove comment * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client
2020-04-20 23:16:53 +00:00
"--wait-for-synced",
}
// BeaconChainFlags contains a list of all the feature flags that apply to the beacon-chain client.
var BeaconChainFlags = append(deprecatedFlags, []cli.Flag{
devModeFlag,
writeSSZStateTransitionsFlag,
kafkaBootstrapServersFlag,
Use WaitForSynced in validator client for startup (#5465) * Add WaitForSynced to beacon-chain * Fix build issues * Fix comment * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Fix tests * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-validator * Change validator client to use WaitForSynced * Change prysm script to support windows * Update prysm.sh * Merge branch '0xKiwi-patch-1' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Add to mock * Merge branch 'simplify-val-client' of https://github.com/0xKiwi/Prysm into simplify-val-client * Fix mocks * Add feature flag for WaitForSynced * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Fix flag * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into simplify-val-client * Remove comment * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client * Merge branch 'master' into simplify-val-client
2020-04-20 23:16:53 +00:00
waitForSyncedFlag,
disableGRPCConnectionLogging,
attestationAggregationStrategy,
ToledoTestnet,
PyrmontTestnet,
Mainnet,
disableBlst,
disableEth1DataMajorityVote,
Peer scoring: init sync (#6709) * refactors redundant part of varname * introduces score_block_providers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * gazelle * adds comment * Merge branch 'master' into init-sync-peer-scoring-slow-peers * removes redundant checks * add block provider decay test * Merge branch 'master' into init-sync-peer-scoring-slow-peers * adds case * penalize inactive peers * adds scorebadresponses test * inroduces no-activity penalty * gazelle * gofmt * Merge branch 'master' into init-sync-peer-scoring-slow-peers * expanded tests * implement SortBlockProviders * change -> update * updates block fetcher peer filter * fixes test * allows to keep track of peer id * updates scoring coefficients * fixes test * block fetcher update * Merge branch 'master' into init-sync-peer-scoring-slow-peers * disables empty batch penalty * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * removes outdated code * update filterPeers * gazelle * updates var * revert changes to var name * updates blocks_fetcher * minor fix to import name * Merge branch 'master' into init-sync-peer-scoring-slow-peers * add max processed blocks cap * impoves scoring of stale peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * fixes test * adds weight sorting to scored peers * return pid when fetching batches * updates round robin * gazelle * Merge branch 'master' into init-sync-peer-scoring-slow-peers * updates block provider decay count * go tidy * cherry pick * fixes test * go tidy * Merge branch 'peer-scorer-weighted-sorter' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * refactors blocks fetcher: repackage methods * Merge branch 'refactor-blocks-fetcher' into init-sync-peer-scoring-slow-peers * minor fixes * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * allow scores in range (0;1) in weighted filter * filterScoredPeers improve test suite * puts feature behind the flag * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * fixes tests * Merge branch 'init-sync-peer-scoring-slow-peers' of github.com:prysmaticlabs/prysm into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge branch 'master' into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Update beacon-chain/sync/initial-sync/blocks_fetcher_test.go Co-authored-by: Shay Zluf <thezluf@gmail.com> * Nishant's suggestion on peer limit variable * better explanation of non-blocking peer scoring * Shay's sugession on peer naming * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Update beacon-chain/sync/initial-sync/blocks_fetcher.go Co-authored-by: Nishant Das <nishdas93@gmail.com> * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * gofmt * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers * Merge refs/heads/master into init-sync-peer-scoring-slow-peers
2020-08-13 17:33:57 +00:00
enablePeerScorer,
checkPtInfoCache,
disablePruningDepositProofs,
enableSyncBacktracking,
}...)
// E2EBeaconChainFlags contains a list of the beacon chain feature flags to be tested in E2E.
var E2EBeaconChainFlags = []string{
"--attestation-aggregation-strategy=max_cover",
"--dev",
"--use-check-point-cache",
}