mirror of https://github.com/status-im/go-waku.git
refactor: setting nodeKey via GOWAKU-NODEKEY env
This commit is contained in:
parent
3b3e3b6968
commit
70ddd48274
|
@ -88,11 +88,11 @@ var (
|
|||
})
|
||||
NodeKey = cliutils.NewGenericFlagSingleValue(&cli.GenericFlag{
|
||||
Name: "nodekey",
|
||||
Usage: "P2P node private key as hex. Can also be set with GOWAKU-NODEKEY env variable (default random)",
|
||||
Usage: "P2P node private key as hex.",
|
||||
Value: &cliutils.PrivateKeyValue{
|
||||
Value: &options.NodeKey,
|
||||
},
|
||||
EnvVars: []string{"WAKUNODE2_NODEKEY"},
|
||||
EnvVars: []string{"WAKUNODE2_NODEKEY", "GOWAKU-NODEKEY"},
|
||||
})
|
||||
KeyFile = altsrc.NewPathFlag(&cli.PathFlag{
|
||||
Name: "key-file",
|
||||
|
|
26
waku/node.go
26
waku/node.go
|
@ -17,7 +17,6 @@ import (
|
|||
"github.com/waku-org/go-waku/waku/v2/rendezvous"
|
||||
|
||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/crypto"
|
||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
||||
dssql "github.com/ipfs/go-ds-sql"
|
||||
|
@ -458,30 +457,21 @@ func writePrivateKeyToFile(path string, passwd []byte, overwrite bool) error {
|
|||
|
||||
func getPrivKey(options Options) (*ecdsa.PrivateKey, error) {
|
||||
var prvKey *ecdsa.PrivateKey
|
||||
var err error
|
||||
|
||||
// get private key from nodeKey or keyFile
|
||||
if options.NodeKey != nil {
|
||||
prvKey = options.NodeKey
|
||||
} else {
|
||||
// TODO: once https://github.com/urfave/cli/issues/1272 is fixed, remove env variable logic
|
||||
keyString := os.Getenv("GOWAKU-NODEKEY")
|
||||
if keyString != "" {
|
||||
if prvKey, err = crypto.ToECDSA(common.FromHex(keyString)); err != nil {
|
||||
return nil, fmt.Errorf("error converting key into valid ecdsa key: %w", err)
|
||||
if _, err := os.Stat(options.KeyFile); err == nil {
|
||||
if prvKey, err = loadPrivateKeyFromFile(options.KeyFile, options.KeyPasswd); err != nil {
|
||||
return nil, fmt.Errorf("could not read keyfile: %w", err)
|
||||
}
|
||||
} else {
|
||||
if _, err := os.Stat(options.KeyFile); err == nil {
|
||||
if prvKey, err = loadPrivateKeyFromFile(options.KeyFile, options.KeyPasswd); err != nil {
|
||||
return nil, fmt.Errorf("could not read keyfile: %w", err)
|
||||
if os.IsNotExist(err) {
|
||||
if prvKey, err = crypto.GenerateKey(); err != nil {
|
||||
return nil, fmt.Errorf("error generating key: %w", err)
|
||||
}
|
||||
} else {
|
||||
if os.IsNotExist(err) {
|
||||
if prvKey, err = crypto.GenerateKey(); err != nil {
|
||||
return nil, fmt.Errorf("error generating key: %w", err)
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("could not read keyfile: %w", err)
|
||||
}
|
||||
return nil, fmt.Errorf("could not read keyfile: %w", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue