From 2acda1c11532074576e73c2a1500db01667b2377 Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Wed, 3 Jun 2020 14:52:36 +0300 Subject: [PATCH] Provide a default value for secretsDir (similar to validatorsDir) --- beacon_chain/conf.nim | 11 ++++++---- beacon_chain/keystore_directories.nim | 31 +++++++++++++-------------- beacon_chain/validator_duties.nim | 2 +- scripts/launch_local_testnet.sh | 2 +- 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/beacon_chain/conf.nim b/beacon_chain/conf.nim index 377b2c9ba..c9c5e3950 100644 --- a/beacon_chain/conf.nim +++ b/beacon_chain/conf.nim @@ -105,11 +105,11 @@ type abbr: "v" name: "validator" }: seq[ValidatorKeyPath] - validatorsDir* {. + validatorsDirFlag* {. desc: "A directory containing validator keystores." name: "validators-dir" }: Option[InputDir] - secretsDir* {. + secretsDirFlag* {. desc: "A directory containing validator keystore passwords." name: "secrets-dir" }: Option[InputDir] @@ -324,8 +324,11 @@ proc defaultDataDir*(conf: BeaconNodeConf|ValidatorClientConf): string = func dumpDir*(conf: BeaconNodeConf|ValidatorClientConf): string = conf.dataDir / "dump" -func localValidatorsDir*(conf: BeaconNodeConf|ValidatorClientConf): string = - string conf.validatorsDir.get(InputDir(conf.dataDir / "validators")) +func validatorsDir*(conf: BeaconNodeConf|ValidatorClientConf): string = + string conf.validatorsDirFlag.get(InputDir(conf.dataDir / "validators")) + +func secretsDir*(conf: BeaconNodeConf|ValidatorClientConf): string = + string conf.secretsDirFlag.get(InputDir(conf.dataDir / "secrets")) func databaseDir*(conf: BeaconNodeConf|ValidatorClientConf): string = conf.dataDir / "db" diff --git a/beacon_chain/keystore_directories.nim b/beacon_chain/keystore_directories.nim index 1da8e1553..d00e250ef 100644 --- a/beacon_chain/keystore_directories.nim +++ b/beacon_chain/keystore_directories.nim @@ -29,22 +29,21 @@ proc loadKeyStore(conf: BeaconNodeConf|ValidatorClientConf, error "Failed to read keystore", err = err.msg, path = keystorePath return - if conf.secretsDir.isSome: - let passphrasePath = conf.secretsDir.get / keyName - if fileExists(passphrasePath): - let - passphrase = KeyStorePass: - try: readFile(passphrasePath) - except IOError as err: - error "Failed to read passphrase file", err = err.msg, path = passphrasePath - return + let passphrasePath = conf.secretsDir / keyName + if fileExists(passphrasePath): + let + passphrase = KeyStorePass: + try: readFile(passphrasePath) + except IOError as err: + error "Failed to read passphrase file", err = err.msg, path = passphrasePath + return - let res = decryptKeystore(keystoreContents, passphrase) - if res.isOk: - return res.get.some - else: - error "Failed to decrypt keystore", keystorePath, passphrasePath - return + let res = decryptKeystore(keystoreContents, passphrase) + if res.isOk: + return res.get.some + else: + error "Failed to decrypt keystore", keystorePath, passphrasePath + return if conf.nonInteractive: error "Unable to load validator key store. Please ensure matching passphrase exists in the secrets dir", @@ -76,7 +75,7 @@ iterator validatorKeys*(conf: BeaconNodeConf|ValidatorClientConf): ValidatorPriv file = validatorKeyFile.string, err = err.msg quit 1 - let validatorsDir = conf.localValidatorsDir + let validatorsDir = conf.validatorsDir try: for kind, file in walkDir(validatorsDir): if kind == pcDir: diff --git a/beacon_chain/validator_duties.nim b/beacon_chain/validator_duties.nim index 382105b03..f7807f824 100644 --- a/beacon_chain/validator_duties.nim +++ b/beacon_chain/validator_duties.nim @@ -34,7 +34,7 @@ declareCounter beacon_blocks_proposed, logScope: topics = "beacval" proc saveValidatorKey*(keyName, key: string, conf: BeaconNodeConf) = - let validatorsDir = conf.localValidatorsDir + let validatorsDir = conf.validatorsDir let outputFile = validatorsDir / keyName createDir validatorsDir writeFile(outputFile, key) diff --git a/scripts/launch_local_testnet.sh b/scripts/launch_local_testnet.sh index 8e052c8e6..d2f90983a 100755 --- a/scripts/launch_local_testnet.sh +++ b/scripts/launch_local_testnet.sh @@ -212,7 +212,7 @@ for NUM_NODE in $(seq 0 $((NUM_NODES - 1))); do if [[ $NUM_NODE -lt $NODES_WITH_VALIDATORS ]]; then for VALIDATOR in $(ls ${DEPOSITS_DIR} | tail -n +$(( $USER_VALIDATORS + ($VALIDATORS_PER_NODE * $NUM_NODE) + 1 )) | head -n $VALIDATORS_PER_NODE); do cp -ar "${DEPOSITS_DIR}/$VALIDATOR" "${NODE_DATA_DIR}/validators/" - cp -a "${SECRETS_DIR}/${VALIDATOR}" "${NODE_DATA_DIR}/secrets" + cp -a "${SECRETS_DIR}/${VALIDATOR}" "${NODE_DATA_DIR}/secrets/" done fi