Remove an accidentally committed file, so a proper PR can be filed separately
This commit is contained in:
parent
9080cb561e
commit
1e6b32b37a
|
@ -1,90 +0,0 @@
|
||||||
import
|
|
||||||
std/os,
|
|
||||||
bearssl, nimcrypto/utils, confutils, eth/keys,
|
|
||||||
../beacon_chain/validators/keystore_management,
|
|
||||||
../beacon_chain/spec/[keystore, crypto],
|
|
||||||
../beacon_chain/conf
|
|
||||||
|
|
||||||
type
|
|
||||||
Config = object
|
|
||||||
threshold {.
|
|
||||||
desc: "Used to generate distributed keys"
|
|
||||||
name: "threshold" }: uint32
|
|
||||||
|
|
||||||
remoteSignersUrls {.
|
|
||||||
desc: "URLs of the remote signers"
|
|
||||||
name: "remote-signer" }: seq[string]
|
|
||||||
|
|
||||||
dataDir {.
|
|
||||||
defaultValue: config.defaultDataDir()
|
|
||||||
defaultValueDesc: ""
|
|
||||||
desc: "A Nimbus data directory"
|
|
||||||
name: "data-dir" }: InputDir
|
|
||||||
|
|
||||||
validatorsDirFlag* {.
|
|
||||||
desc: "A directory containing validator keystores"
|
|
||||||
name: "validators-dir" }: Option[InputDir]
|
|
||||||
|
|
||||||
secretsDirFlag* {.
|
|
||||||
desc: "A directory containing validator keystore passwords"
|
|
||||||
name: "secrets-dir" }: Option[InputDir]
|
|
||||||
|
|
||||||
key {.
|
|
||||||
desc: "A public key of the keystore"
|
|
||||||
name: "key" }: string
|
|
||||||
|
|
||||||
outValidatorsDir {.
|
|
||||||
desc: "A directory to store the generated validator keystores"
|
|
||||||
name: "out-validators-dir" }: OutDir
|
|
||||||
|
|
||||||
template valueOr(x: Option, elseBlock: untyped): untyped =
|
|
||||||
let val = x
|
|
||||||
if val.isSome:
|
|
||||||
val.get
|
|
||||||
else:
|
|
||||||
elseBlock
|
|
||||||
|
|
||||||
proc main =
|
|
||||||
var
|
|
||||||
rng = keys.newRng()
|
|
||||||
rngCtx = rng[]
|
|
||||||
|
|
||||||
let
|
|
||||||
conf = load Config
|
|
||||||
validatorsDir = conf.validatorsDir
|
|
||||||
secretsDir = conf.secretsDir
|
|
||||||
keystore = loadKeystore(validatorsDir,
|
|
||||||
secretsDir,
|
|
||||||
conf.key, true).valueOr:
|
|
||||||
error "Can't load keystore", validatorsDir, secretsDir, pubkey = conf.key
|
|
||||||
quit 1
|
|
||||||
|
|
||||||
signingPubKey = keystore.pubkey
|
|
||||||
sharesCount = uint32 conf.remoteSignersUrls.len
|
|
||||||
shares = generateSecretShares(keystore.privateKey,
|
|
||||||
rngCtx,
|
|
||||||
conf.threshold,
|
|
||||||
sharesCount).valueOr:
|
|
||||||
error "Failed to generate distributed key: ", threshold = conf.threshold, sharesCount
|
|
||||||
quit 1
|
|
||||||
|
|
||||||
if not signingPubKey.confirmShares(shares, rngCtx):
|
|
||||||
error "Secret shares can't reconstruct original signature. Distributed key will not be generated."
|
|
||||||
quit 1
|
|
||||||
|
|
||||||
let
|
|
||||||
outSharesDir = conf.outValidatorsDir / "shares"
|
|
||||||
status = generateDistirbutedStore(
|
|
||||||
rngCtx,
|
|
||||||
shares,
|
|
||||||
signingPubKey,
|
|
||||||
0,
|
|
||||||
outSharesDir / "secret",
|
|
||||||
outSharesDir / "validator",
|
|
||||||
string conf.outValidatorsDir,
|
|
||||||
conf.remoteSignersUrls,
|
|
||||||
conf.threshold)
|
|
||||||
|
|
||||||
if status.isErr:
|
|
||||||
error "Failed to generate distributed keystore", err = status.error
|
|
||||||
quit 1
|
|
Loading…
Reference in New Issue