Rename imported keymanager to local. (#10155)

* imported -> local

* reverting to the state of the PR at eb1e3c3d1

* use changes from develop

* del

* rem patch

* patch

* rename to local

* gazelle

* add back build

* imported rename

* gaz

* local

* merge fix + remove proto changes

* comment revert

* build

* gofmt and one new reference

* gofmt pt2

* Update validator/accounts/wallet_edit.go

Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>

* Update validator/rpc/accounts.go

* rename

* gaz

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
This commit is contained in:
Michael Neuder
2022-02-01 14:54:19 -05:00
committed by GitHub
parent 59be30e9f4
commit 8b2b109939
49 changed files with 214 additions and 211 deletions

View File

@@ -168,7 +168,7 @@ service Auth {
}
}
// Type of key manager for the wallet, either direct, derived, or remote.
// Type of key manager for the wallet, either derived, imported, or remote.
enum KeymanagerKind {
DERIVED = 0;
IMPORTED = 1;

View File

@@ -11,7 +11,7 @@ go_library(
"//validator/accounts/wallet:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"@com_github_tyler_smith_go_bip39//:go_default_library",
"@com_github_wealdtech_go_eth2_util//:go_default_library",
],
@@ -31,6 +31,6 @@ go_test(
"//testing/require:go_default_library",
"//validator/accounts/wallet:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
],
)

View File

@@ -24,7 +24,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/tyler-smith/go-bip39"
util "github.com/wealdtech/go-eth2-util"
)
@@ -62,7 +62,7 @@ func main() {
}
keysPerWallet := len(privKeys) / *numberOfWalletsFlag
if err := spreadKeysAcrossImportedWallets(
if err := spreadKeysAcrossLocalWallets(
pubKeys,
privKeys,
*numberOfWalletsFlag,
@@ -113,7 +113,7 @@ func generateKeysFromMnemonicList(mnemonicListFile *bufio.Scanner, keysPerMnemon
return
}
func spreadKeysAcrossImportedWallets(
func spreadKeysAcrossLocalWallets(
pubKeys,
privKeys [][]byte,
numWallets,
@@ -125,10 +125,10 @@ func spreadKeysAcrossImportedWallets(
for i := 0; i < numWallets; i++ {
w := wallet.New(&wallet.Config{
WalletDir: path.Join(walletOutputDir, fmt.Sprintf("wallet_%d", i)),
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: walletPassword,
})
km, err := imported.NewKeymanager(ctx, &imported.SetupConfig{
km, err := local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: w,
})
if err != nil {

View File

@@ -13,7 +13,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
)
const testMnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
@@ -64,7 +64,7 @@ func Test_spreadKeysAcrossImportedWallets(t *testing.T) {
// key per wallet stored on disk.
numWallets := 5
keysPerWallet := 1
err := spreadKeysAcrossImportedWallets(
err := spreadKeysAcrossLocalWallets(
testPubKeys,
testPrivKeys,
numWallets,
@@ -77,11 +77,11 @@ func Test_spreadKeysAcrossImportedWallets(t *testing.T) {
for i := 0; i < numWallets; i++ {
w, err := wallet.OpenWallet(ctx, &wallet.Config{
WalletDir: filepath.Join(tmpDir, fmt.Sprintf("wallet_%d", i)),
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: walletPassword,
})
require.NoError(t, err)
km, err := imported.NewKeymanager(ctx, &imported.SetupConfig{
km, err := local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: w,
})
require.NoError(t, err)

View File

@@ -42,7 +42,7 @@ go_library(
"//validator/client:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library",
"@com_github_ethereum_go_ethereum//common/hexutil:go_default_library",
@@ -92,7 +92,7 @@ go_test(
"//validator/accounts/wallet:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library",
"//validator/testing:go_default_library",
"@com_github_golang_mock//gomock:go_default_library",

View File

@@ -24,7 +24,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/urfave/cli/v2"
)
@@ -96,14 +96,14 @@ func BackupAccountsCli(cliCtx *cli.Context) error {
var keystoresToBackup []*keymanager.Keystore
switch w.KeymanagerKind() {
case keymanager.Imported:
km, ok := km.(*imported.Keymanager)
case keymanager.Local:
km, ok := km.(*local.Keymanager)
if !ok {
return errors.New("could not assert keymanager interface to concrete type")
}
keystoresToBackup, err = km.ExtractKeystores(cliCtx.Context, filteredPubKeys, backupsPassword)
if err != nil {
return errors.Wrap(err, "could not backup accounts for imported keymanager")
return errors.Wrap(err, "could not backup accounts for local keymanager")
}
case keymanager.Derived:
km, ok := km.(*derived.Keymanager)

View File

@@ -159,7 +159,7 @@ func TestBackupAccounts_Noninteractive_Imported(t *testing.T) {
cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags.
walletDir: walletDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
// Flags required for ImportAccounts to work.
@@ -172,7 +172,7 @@ func TestBackupAccounts_Noninteractive_Imported(t *testing.T) {
_, err = CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})

View File

@@ -13,7 +13,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
)
func TestDeleteAccounts_Noninteractive(t *testing.T) {
@@ -33,11 +33,11 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
// Only delete keys 0 and 1.
deletePublicKeys := strings.Join(generatedPubKeys[0:2], ",")
// We initialize a wallet with a imported keymanager.
// We initialize a wallet with a local keymanager.
cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags.
walletDir: walletDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
// Flags required for ImportAccounts to work.
@@ -48,7 +48,7 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
@@ -60,9 +60,9 @@ func TestDeleteAccounts_Noninteractive(t *testing.T) {
// We attempt to delete the accounts specified.
require.NoError(t, DeleteAccountCli(cliCtx))
keymanager, err := imported.NewKeymanager(
keymanager, err := local.NewKeymanager(
cliCtx.Context,
&imported.SetupConfig{
&local.SetupConfig{
Wallet: w,
ListenForChanges: false,
},

View File

@@ -17,7 +17,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/sirupsen/logrus/hooks/test"
"google.golang.org/grpc/metadata"
"google.golang.org/protobuf/types/known/timestamppb"
@@ -59,11 +59,11 @@ func TestExitAccountsCli_OK(t *testing.T) {
keystore, _ := createKeystore(t, keysDir)
time.Sleep(time.Second)
// We initialize a wallet with a imported keymanager.
// We initialize a wallet with a local keymanager.
cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags.
walletDir: walletDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
// Flag required for ImportAccounts to work.
@@ -74,7 +74,7 @@ func TestExitAccountsCli_OK(t *testing.T) {
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
@@ -154,11 +154,11 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
keystore2, _ := createKeystore(t, keysDir)
time.Sleep(time.Second)
// We initialize a wallet with a imported keymanager.
// We initialize a wallet with a local keymanager.
cliCtx := setupWalletCtx(t, &testWalletConfig{
// Wallet configuration flags.
walletDir: walletDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
// Flag required for ImportAccounts to work.
@@ -169,7 +169,7 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
@@ -211,18 +211,18 @@ func TestExitAccountsCli_OK_AllPublicKeys(t *testing.T) {
}
func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
})
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
@@ -232,11 +232,11 @@ func TestPrepareWallet_EmptyWalletReturnsError(t *testing.T) {
}
func TestPrepareClients_AddsGRPCHeaders(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
walletDir, _, passwordFilePath := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
grpcHeaders: "Authorization=Basic some-token,Some-Other-Header=some-value",
@@ -244,7 +244,7 @@ func TestPrepareClients_AddsGRPCHeaders(t *testing.T) {
_, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})

View File

@@ -115,7 +115,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
})
}
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Imported)
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Local)
if err != nil {
return nil, err
}
@@ -124,7 +124,7 @@ func ImportAccountsCli(cliCtx *cli.Context) error {
WalletDir: cfg.WalletCfg.WalletDir,
WalletPassword: cfg.WalletCfg.WalletPassword,
})
if err = createImportedKeymanagerWallet(cliCtx.Context, w); err != nil {
if err = createLocalKeymanagerWallet(cliCtx.Context, w); err != nil {
return nil, errors.Wrap(err, "could not create keymanager")
}
log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info(

View File

@@ -22,12 +22,12 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/iface"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
)
func TestImport_Noninteractive(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -36,21 +36,21 @@ func TestImport_Noninteractive(t *testing.T) {
walletDir: walletDir,
passwordsDir: passwordsDir,
keysDir: keysDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
})
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
require.NoError(t, err)
keymanager, err := imported.NewKeymanager(
keymanager, err := local.NewKeymanager(
cliCtx.Context,
&imported.SetupConfig{
&local.SetupConfig{
Wallet: w,
ListenForChanges: false,
},
@@ -84,7 +84,7 @@ func TestImport_Noninteractive(t *testing.T) {
// TestImport_DuplicateKeys is a regression test that ensures correction function if duplicate keys are being imported
func TestImport_DuplicateKeys(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -93,14 +93,14 @@ func TestImport_DuplicateKeys(t *testing.T) {
walletDir: walletDir,
passwordsDir: passwordsDir,
keysDir: keysDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
})
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
@@ -132,7 +132,7 @@ func TestImport_DuplicateKeys(t *testing.T) {
}
func TestImport_Noninteractive_RandomName(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -141,21 +141,21 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
walletDir: walletDir,
passwordsDir: passwordsDir,
keysDir: keysDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
})
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
require.NoError(t, err)
keymanager, err := imported.NewKeymanager(
keymanager, err := local.NewKeymanager(
cliCtx.Context,
&imported.SetupConfig{
&local.SetupConfig{
Wallet: w,
ListenForChanges: false,
},
@@ -188,7 +188,7 @@ func TestImport_Noninteractive_RandomName(t *testing.T) {
}
func TestImport_Noninteractive_Filepath(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
walletDir, passwordsDir, passwordFilePath := setupWalletAndPasswordsDir(t)
keysDir := filepath.Join(t.TempDir(), "keysDir")
require.NoError(t, os.MkdirAll(keysDir, os.ModePerm))
@@ -198,21 +198,21 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
walletDir: walletDir,
passwordsDir: passwordsDir,
keysDir: keystorePath,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
accountPasswordFile: passwordFilePath,
})
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: password,
},
})
require.NoError(t, err)
keymanager, err := imported.NewKeymanager(
keymanager, err := local.NewKeymanager(
cliCtx.Context,
&imported.SetupConfig{
&local.SetupConfig{
Wallet: w,
ListenForChanges: false,
},
@@ -240,7 +240,7 @@ func TestImport_Noninteractive_Filepath(t *testing.T) {
}
func TestImport_SortByDerivationPath(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
type test struct {
name string
input []string
@@ -319,7 +319,7 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
// We instantiate a new wallet from a cli context.
cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: passwordFilePath,
privateKeyFile: privKeyFileName,
})
@@ -327,14 +327,14 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
wallet, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: walletPass,
},
})
require.NoError(t, err)
keymanager, err := imported.NewKeymanager(
keymanager, err := local.NewKeymanager(
cliCtx.Context,
&imported.SetupConfig{
&local.SetupConfig{
Wallet: wallet,
ListenForChanges: false,
},
@@ -343,9 +343,9 @@ func Test_importPrivateKeyAsAccount(t *testing.T) {
assert.NoError(t, importPrivateKeyAsAccount(cliCtx, wallet, keymanager))
// We re-instantiate the keymanager and check we now have 1 public key.
keymanager, err = imported.NewKeymanager(
keymanager, err = local.NewKeymanager(
cliCtx.Context,
&imported.SetupConfig{
&local.SetupConfig{
Wallet: wallet,
ListenForChanges: false,
},
@@ -377,7 +377,7 @@ func createKeystore(t *testing.T, path string) (*keymanager.Keystore, string) {
require.NoError(t, err)
// Write the encoded keystore to disk with the timestamp appended
createdAt := prysmTime.Now().Unix()
fullPath := filepath.Join(path, fmt.Sprintf(imported.KeystoreFileNameFormat, createdAt))
fullPath := filepath.Join(path, fmt.Sprintf(local.KeystoreFileNameFormat, createdAt))
require.NoError(t, ioutil.WriteFile(fullPath, encoded, os.ModePerm))
return keystoreFile, fullPath
}

View File

@@ -16,7 +16,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/urfave/cli/v2"
@@ -52,13 +52,13 @@ func ListAccountsCli(cliCtx *cli.Context) error {
}
switch w.KeymanagerKind() {
case keymanager.Imported:
km, ok := km.(*imported.Keymanager)
case keymanager.Local:
km, ok := km.(*local.Keymanager)
if !ok {
return errors.New("could not assert keymanager interface to concrete type")
}
if err := listImportedKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
return errors.Wrap(err, "could not list validator accounts with imported keymanager")
if err := listLocalKeymanagerAccounts(cliCtx.Context, showDepositData, showPrivateKeys, km); err != nil {
return errors.Wrap(err, "could not list validator accounts with local keymanager")
}
case keymanager.Derived:
km, ok := km.(*derived.Keymanager)
@@ -91,11 +91,11 @@ func ListAccountsCli(cliCtx *cli.Context) error {
return nil
}
func listImportedKeymanagerAccounts(
func listLocalKeymanagerAccounts(
ctx context.Context,
showDepositData,
showPrivateKeys bool,
keymanager *imported.Keymanager,
keymanager *local.Keymanager,
) error {
// We initialize the wallet's keymanager.
accountNames, err := keymanager.ValidatingAccountNames()
@@ -103,7 +103,7 @@ func listImportedKeymanagerAccounts(
return errors.Wrap(err, "could not fetch account names")
}
numAccounts := au.BrightYellow(len(accountNames))
fmt.Printf("(keymanager kind) %s\n", au.BrightGreen("imported wallet").Bold())
fmt.Printf("(keymanager kind) %s\n", au.BrightGreen("local wallet").Bold())
fmt.Println("")
if len(accountNames) == 1 {
fmt.Printf("Showing %d validator account\n", numAccounts)

View File

@@ -26,7 +26,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
constant "github.com/prysmaticlabs/prysm/validator/testing"
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
@@ -67,25 +67,25 @@ func createRandomKeystore(t testing.TB, password string) *keymanager.Keystore {
}
}
func TestListAccounts_ImportedKeymanager(t *testing.T) {
func TestListAccounts_LocalKeymanager(t *testing.T) {
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir,
passwordsDir: passwordsDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: walletPasswordFile,
})
w, err := CreateWalletWithKeymanager(cliCtx.Context, &CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: "Passwordz0320$",
},
})
require.NoError(t, err)
km, err := imported.NewKeymanager(
km, err := local.NewKeymanager(
cliCtx.Context,
&imported.SetupConfig{
&local.SetupConfig{
Wallet: w,
ListenForChanges: false,
},
@@ -107,10 +107,10 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
require.NoError(t, err)
os.Stdout = writer
// We call the list imported keymanager accounts function.
// We call the list local keymanager accounts function.
require.NoError(
t,
listImportedKeymanagerAccounts(
listLocalKeymanagerAccounts(
context.Background(),
true, /* show deposit data */
true, /*show private keys */
@@ -129,7 +129,7 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
// Expected output example:
/*
(keymanager kind) imported wallet
(keymanager kind) local wallet
Showing 5 validator accounts
View the eth1 deposit transaction data for your accounts by running `validator accounts list --show-deposit-data
@@ -180,7 +180,7 @@ func TestListAccounts_ImportedKeymanager(t *testing.T) {
require.Equal(t, lineCount, len(lines))
// Assert the keymanager kind is printed on the first line.
kindString := "imported"
kindString := "local"
kindFound := strings.Contains(lines[0], kindString)
assert.Equal(t, true, kindFound, "Keymanager Kind %s not found on the first line", kindString)
@@ -258,7 +258,7 @@ func TestListAccounts_DerivedKeymanager(t *testing.T) {
require.NoError(t, err)
os.Stdout = writer
// We call the list imported keymanager accounts function.
// We call the list local keymanager accounts function.
require.NoError(t, listDerivedKeymanagerAccounts(cliCtx.Context, true, keymanager))
require.NoError(t, writer.Close())

View File

@@ -20,7 +20,7 @@ go_library(
"//validator/accounts/userprompt:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library",
"@com_github_pkg_errors//:go_default_library",

View File

@@ -18,7 +18,7 @@ import (
accountsprompt "github.com/prysmaticlabs/prysm/validator/accounts/userprompt"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/sirupsen/logrus"
@@ -54,7 +54,7 @@ var (
)
// KeymanagerKindSelections as friendly text.
KeymanagerKindSelections = map[keymanager.Kind]string{
keymanager.Imported: "Imported Wallet (Recommended)",
keymanager.Local: "Imported Wallet (Recommended)",
keymanager.Derived: "HD Wallet",
keymanager.Remote: "Remote Signing Wallet (Advanced)",
keymanager.Web3Signer: "Consensys Web3Signer (Advanced)",
@@ -272,8 +272,8 @@ func (w *Wallet) InitializeKeymanager(ctx context.Context, cfg iface.InitKeymana
var km keymanager.IKeymanager
var err error
switch w.KeymanagerKind() {
case keymanager.Imported:
km, err = imported.NewKeymanager(ctx, &imported.SetupConfig{
case keymanager.Local:
km, err = local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: w,
ListenForChanges: cfg.ListenForChanges,
})

View File

@@ -16,7 +16,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/urfave/cli/v2"
@@ -71,8 +71,8 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
})
var err error
switch w.KeymanagerKind() {
case keymanager.Imported:
if err = createImportedKeymanagerWallet(ctx, w); err != nil {
case keymanager.Local:
if err = createLocalKeymanagerWallet(ctx, w); err != nil {
return nil, errors.Wrap(err, "could not initialize wallet")
}
// TODO(#9883) - Remove this when we have a better way to handle this. should be safe to use for now.
@@ -80,11 +80,11 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
if err != nil {
return nil, errors.Wrap(err, ErrCouldNotInitializeKeymanager)
}
importedKm, ok := km.(*imported.Keymanager)
localKm, ok := km.(*local.Keymanager)
if !ok {
return nil, errors.Wrap(err, ErrCouldNotInitializeKeymanager)
}
accountsKeystore, err := importedKm.CreateAccountsKeystore(ctx, make([][]byte, 0), make([][]byte, 0))
accountsKeystore, err := localKm.CreateAccountsKeystore(ctx, make([][]byte, 0), make([][]byte, 0))
if err != nil {
return nil, err
}
@@ -92,7 +92,7 @@ func CreateWalletWithKeymanager(ctx context.Context, cfg *CreateWalletConfig) (*
if err != nil {
return nil, err
}
if err = w.WriteFileAtPath(ctx, imported.AccountsPath, imported.AccountsKeystoreFileName, encodedAccounts); err != nil {
if err = w.WriteFileAtPath(ctx, local.AccountsPath, local.AccountsKeystoreFileName, encodedAccounts); err != nil {
return nil, err
}
@@ -204,7 +204,7 @@ func extractWalletCreationConfigFromCli(cliCtx *cli.Context, keymanagerKind keym
return createWalletConfig, nil
}
func createImportedKeymanagerWallet(_ context.Context, wallet *wallet.Wallet) error {
func createLocalKeymanagerWallet(_ context.Context, wallet *wallet.Wallet) error {
if wallet == nil {
return errors.New("nil wallet")
}
@@ -265,7 +265,7 @@ func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
promptSelect := promptui.Select{
Label: "Select a type of wallet",
Items: []string{
wallet.KeymanagerKindSelections[keymanager.Imported],
wallet.KeymanagerKindSelections[keymanager.Local],
wallet.KeymanagerKindSelections[keymanager.Derived],
wallet.KeymanagerKindSelections[keymanager.Remote],
wallet.KeymanagerKindSelections[keymanager.Web3Signer],
@@ -273,7 +273,7 @@ func inputKeymanagerKind(cliCtx *cli.Context) (keymanager.Kind, error) {
}
selection, _, err := promptSelect.Run()
if err != nil {
return keymanager.Imported, fmt.Errorf("could not select wallet type: %w", userprompt.FormatPromptError(err))
return keymanager.Local, fmt.Errorf("could not select wallet type: %w", userprompt.FormatPromptError(err))
}
return keymanager.Kind(selection), nil
}

View File

@@ -16,7 +16,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
"github.com/sirupsen/logrus"
logTest "github.com/sirupsen/logrus/hooks/test"
@@ -115,11 +115,11 @@ func TestCreateOrOpenWallet(t *testing.T) {
cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir,
passwordsDir: passwordsDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: walletPasswordFile,
})
createImportedWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Imported)
createLocalWallet := func(cliCtx *cli.Context) (*wallet.Wallet, error) {
cfg, err := extractWalletCreationConfigFromCli(cliCtx, keymanager.Local)
if err != nil {
return nil, err
}
@@ -128,7 +128,7 @@ func TestCreateOrOpenWallet(t *testing.T) {
WalletDir: cfg.WalletCfg.WalletDir,
WalletPassword: cfg.WalletCfg.WalletPassword,
})
if err = createImportedKeymanagerWallet(cliCtx.Context, w); err != nil {
if err = createLocalKeymanagerWallet(cliCtx.Context, w); err != nil {
return nil, errors.Wrap(err, "could not create keymanager")
}
log.WithField("wallet-path", cfg.WalletCfg.WalletDir).Info(
@@ -136,22 +136,22 @@ func TestCreateOrOpenWallet(t *testing.T) {
)
return w, nil
}
createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet)
createdWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createLocalWallet)
require.NoError(t, err)
require.LogsContain(t, hook, "Successfully created new wallet")
openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createImportedWallet)
openedWallet, err := wallet.OpenWalletOrElseCli(cliCtx, createLocalWallet)
require.NoError(t, err)
assert.Equal(t, createdWallet.KeymanagerKind(), openedWallet.KeymanagerKind())
assert.Equal(t, createdWallet.AccountsDir(), openedWallet.AccountsDir())
}
func TestCreateWallet_Imported(t *testing.T) {
func TestCreateWallet_Local(t *testing.T) {
walletDir, passwordsDir, walletPasswordFile := setupWalletAndPasswordsDir(t)
cliCtx := setupWalletCtx(t, &testWalletConfig{
walletDir: walletDir,
passwordsDir: passwordsDir,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
walletPasswordFile: walletPasswordFile,
})
@@ -164,7 +164,7 @@ func TestCreateWallet_Imported(t *testing.T) {
WalletDir: walletDir,
})
assert.NoError(t, err)
_, err = w.ReadFileAtPath(cliCtx.Context, imported.AccountsPath, imported.AccountsKeystoreFileName)
_, err = w.ReadFileAtPath(cliCtx.Context, local.AccountsPath, local.AccountsKeystoreFileName)
require.NoError(t, err)
}
@@ -212,7 +212,7 @@ func TestCreateWallet_WalletAlreadyExists(t *testing.T) {
walletDir: walletDir,
passwordsDir: passwordsDir,
walletPasswordFile: passwordFile,
keymanagerKind: keymanager.Imported,
keymanagerKind: keymanager.Local,
})
// We attempt to create another wallet of different type at the same location. We expect an error.

View File

@@ -22,8 +22,8 @@ func EditWalletConfigurationCli(cliCtx *cli.Context) error {
return errors.Wrap(err, "could not open wallet")
}
switch w.KeymanagerKind() {
case keymanager.Imported:
return errors.New("not possible to edit imported keymanager configuration")
case keymanager.Local:
return errors.New("not possible to edit local keymanager configuration")
case keymanager.Derived:
return errors.New("derived keymanager is not yet supported")
case keymanager.Remote:

View File

@@ -51,7 +51,7 @@ go_library(
"//validator/db/kv:go_default_library",
"//validator/graffiti:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library",
"@com_github_dgraph_io_ristretto//:go_default_library",
@@ -132,7 +132,7 @@ go_test(
"//validator/graffiti:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library",
"//validator/keymanager/remote/mock:go_default_library",
"//validator/slashing-protection-history:go_default_library",

View File

@@ -24,7 +24,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/db"
"github.com/prysmaticlabs/prysm/validator/graffiti"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"go.opencensus.io/plugin/ocgrpc"
"google.golang.org/grpc"
@@ -51,7 +51,7 @@ type ValidatorService struct {
emitAccountMetrics bool
logValidatorBalances bool
logDutyCountDown bool
interopKeysConfig *imported.InteropKeymanagerConfig
interopKeysConfig *local.InteropKeymanagerConfig
conn *grpc.ClientConn
grpcRetryDelay time.Duration
grpcRetries uint
@@ -77,7 +77,7 @@ type Config struct {
LogValidatorBalances bool
EmitAccountMetrics bool
LogDutyCountDown bool
InteropKeysConfig *imported.InteropKeymanagerConfig
InteropKeysConfig *local.InteropKeymanagerConfig
Wallet *wallet.Wallet
WalletInitializedFeed *event.Feed
GrpcRetriesFlag uint
@@ -235,7 +235,7 @@ func (v *ValidatorService) Status() error {
}
// UseInteropKeys returns the useInteropKeys flag.
func (v *ValidatorService) InteropKeysConfig() *imported.InteropKeymanagerConfig {
func (v *ValidatorService) InteropKeysConfig() *local.InteropKeymanagerConfig {
return v.interopKeysConfig
}

View File

@@ -36,7 +36,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/db/kv"
"github.com/prysmaticlabs/prysm/validator/graffiti"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/sirupsen/logrus"
"go.opencensus.io/trace"
@@ -77,7 +77,7 @@ type validator struct {
highestValidSlot types.Slot
genesisTime uint64
blockFeed *event.Feed
interopKeysConfig *imported.InteropKeymanagerConfig
interopKeysConfig *local.InteropKeymanagerConfig
wallet *wallet.Wallet
graffitiStruct *graffiti.Graffiti
node ethpb.NodeClient
@@ -120,7 +120,7 @@ func (v *validator) WaitForKeymanagerInitialization(ctx context.Context) error {
v.keyManager = km
} else {
if v.interopKeysConfig != nil {
keyManager, err := imported.NewInteropKeymanager(ctx, v.interopKeysConfig.Offset, v.interopKeysConfig.NumValidatorKeys)
keyManager, err := local.NewInteropKeymanager(ctx, v.interopKeysConfig.Offset, v.interopKeysConfig.NumValidatorKeys)
if err != nil {
return errors.Wrap(err, "could not generate interop keys for key manager")
}
@@ -190,7 +190,7 @@ func recheckKeys(ctx context.Context, valDB vdb.Database, keyManager keymanager.
// to accounts changes in the keymanager, then updates those keys'
// buckets in bolt DB if a bucket for a key does not exist.
func recheckValidatingKeysBucket(ctx context.Context, valDB vdb.Database, km keymanager.IKeymanager) {
importedKeymanager, ok := km.(*imported.Keymanager)
importedKeymanager, ok := km.(*local.Keymanager)
if !ok {
return
}

View File

@@ -29,7 +29,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/client/iface"
dbTest "github.com/prysmaticlabs/prysm/validator/db/testing"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/sirupsen/logrus"
logTest "github.com/sirupsen/logrus/hooks/test"
@@ -1385,7 +1385,7 @@ func TestValidator_WaitForKeymanagerInitialization_Web(t *testing.T) {
}()
walletChan <- wallet.New(&wallet.Config{
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
})
}
@@ -1399,7 +1399,7 @@ func TestValidator_WaitForKeymanagerInitialization_Interop(t *testing.T) {
v := validator{
db: db,
useWeb: false,
interopKeysConfig: &imported.InteropKeymanagerConfig{
interopKeysConfig: &local.InteropKeymanagerConfig{
NumValidatorKeys: 2,
Offset: 1,
},

View File

@@ -27,7 +27,7 @@ go_test(
deps = [
":go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote:go_default_library",
],
)

View File

@@ -22,7 +22,7 @@ go_library(
"//proto/prysm/v1alpha1/validator-client:go_default_library",
"//validator/accounts/iface:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"@com_github_pkg_errors//:go_default_library",
"@com_github_sirupsen_logrus//:go_default_library",
"@com_github_tyler_smith_go_bip39//:go_default_library",

View File

@@ -12,7 +12,7 @@ import (
validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client"
"github.com/prysmaticlabs/prysm/validator/accounts/iface"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
util "github.com/wealdtech/go-eth2-util"
)
@@ -34,7 +34,7 @@ type SetupConfig struct {
// Keymanager implementation for derived, HD keymanager using EIP-2333 and EIP-2334.
type Keymanager struct {
importedKM *imported.Keymanager
localKM *local.Keymanager
}
// NewKeymanager instantiates a new derived keymanager from configuration options.
@@ -42,7 +42,7 @@ func NewKeymanager(
ctx context.Context,
cfg *SetupConfig,
) (*Keymanager, error) {
importedKM, err := imported.NewKeymanager(ctx, &imported.SetupConfig{
localKM, err := local.NewKeymanager(ctx, &local.SetupConfig{
Wallet: cfg.Wallet,
ListenForChanges: cfg.ListenForChanges,
})
@@ -50,7 +50,7 @@ func NewKeymanager(
return nil, err
}
return &Keymanager{
importedKM: importedKM,
localKM: localKM,
}, nil
}
@@ -76,7 +76,7 @@ func (km *Keymanager) RecoverAccountsFromMnemonic(
privKeys[i] = privKey.Marshal()
pubKeys[i] = privKey.PublicKey().Marshal()
}
return km.importedKM.ImportKeypairs(ctx, privKeys, pubKeys)
return km.localKM.ImportKeypairs(ctx, privKeys, pubKeys)
}
// ExtractKeystores retrieves the secret keys for specified public keys
@@ -85,46 +85,46 @@ func (km *Keymanager) RecoverAccountsFromMnemonic(
func (km *Keymanager) ExtractKeystores(
ctx context.Context, publicKeys []bls.PublicKey, password string,
) ([]*keymanager.Keystore, error) {
return km.importedKM.ExtractKeystores(ctx, publicKeys, password)
return km.localKM.ExtractKeystores(ctx, publicKeys, password)
}
// ValidatingAccountNames for the derived keymanager.
func (km *Keymanager) ValidatingAccountNames(_ context.Context) ([]string, error) {
return km.importedKM.ValidatingAccountNames()
return km.localKM.ValidatingAccountNames()
}
// Sign signs a message using a validator key.
func (km *Keymanager) Sign(ctx context.Context, req *validatorpb.SignRequest) (bls.Signature, error) {
return km.importedKM.Sign(ctx, req)
return km.localKM.Sign(ctx, req)
}
// FetchValidatingPublicKeys fetches the list of validating public keys from the keymanager.
func (km *Keymanager) FetchValidatingPublicKeys(ctx context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) {
return km.importedKM.FetchValidatingPublicKeys(ctx)
return km.localKM.FetchValidatingPublicKeys(ctx)
}
// FetchValidatingPrivateKeys fetches the list of validating private keys from the keymanager.
func (km *Keymanager) FetchValidatingPrivateKeys(ctx context.Context) ([][32]byte, error) {
return km.importedKM.FetchValidatingPrivateKeys(ctx)
return km.localKM.FetchValidatingPrivateKeys(ctx)
}
// ImportKeystores for a derived keymanager.
func (km *Keymanager) ImportKeystores(
ctx context.Context, keystores []*keymanager.Keystore, passwords []string,
) ([]*ethpbservice.ImportedKeystoreStatus, error) {
return km.importedKM.ImportKeystores(ctx, keystores, passwords)
return km.localKM.ImportKeystores(ctx, keystores, passwords)
}
// DeleteKeystores for a derived keymanager.
func (km *Keymanager) DeleteKeystores(
ctx context.Context, publicKeys [][]byte,
) ([]*ethpbservice.DeletedKeystoreStatus, error) {
return km.importedKM.DeleteKeystores(ctx, publicKeys)
return km.localKM.DeleteKeystores(ctx, publicKeys)
}
// SubscribeAccountChanges creates an event subscription for a channel
// to listen for public key changes at runtime, such as when new validator accounts
// are imported into the keymanager while the validator process is running.
func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BLSPubkeyLength]byte) event.Subscription {
return km.importedKM.SubscribeAccountChanges(pubKeysChan)
return km.localKM.SubscribeAccountChanges(pubKeysChan)
}

View File

@@ -1,5 +0,0 @@
package imported
import "github.com/sirupsen/logrus"
var log = logrus.WithField("prefix", "imported-keymanager")

View File

@@ -11,7 +11,7 @@ go_library(
"log.go",
"refresh.go",
],
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/imported",
importpath = "github.com/prysmaticlabs/prysm/validator/keymanager/local",
visibility = [
"//tools:__subpackages__",
"//validator:__pkg__",

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -12,7 +12,7 @@ import (
"github.com/prysmaticlabs/prysm/testing/require"
)
func TestImportedKeymanager_ExtractKeystores(t *testing.T) {
func TestLocalKeymanager_ExtractKeystores(t *testing.T) {
secretKeysCache = make(map[[fieldparams.BLSPubkeyLength]byte]bls.SecretKey)
dr := &Keymanager{}
validatingKeys := make([]bls.SecretKey, 10)

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"bytes"

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -17,7 +17,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
)
func TestImportedKeymanager_DeleteKeystores(t *testing.T) {
func TestLocalKeymanager_DeleteKeystores(t *testing.T) {
hook := logTest.NewGlobal()
wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte),

View File

@@ -1,8 +1,8 @@
/*
Package imported defines an implementation of an on-disk, EIP-2335 keystore.json
Package local defines an implementation of an on-disk, EIP-2335 keystore.json
approach towards defining validator accounts in Prysm. A validating private key is
encrypted using a passphrase and its resulting encrypted file is stored as a
keystore.json file under a unique, human-readable, account namespace. This imported keymanager approach
keystore.json file under a unique, human-readable, account namespace. This local keymanager approach
relies on storing account information on-disk, making it trivial to import, backup and
list all associated accounts for a user.
@@ -13,4 +13,4 @@ support for KECCAK-256. Passwords utilized for key encryptions are strings of ar
The password is first converted to its NFKD representation, stripped of control codes specified
in the EIP link above, and finally the password is UTF-8 encoded.
*/
package imported
package local

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -16,7 +16,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
)
// ImportKeystores into the imported keymanager from an external source.
// ImportKeystores into the local keymanager from an external source.
func (km *Keymanager) ImportKeystores(
ctx context.Context,
keystores []*keymanager.Keystore,

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -36,7 +36,7 @@ func createRandomKeystore(t testing.TB, password string) *keymanager.Keystore {
}
}
func TestImportedKeymanager_NoDuplicates(t *testing.T) {
func TestLocalKeymanager_NoDuplicates(t *testing.T) {
numKeys := 50
pubKeys := make([][]byte, numKeys)
privKeys := make([][]byte, numKeys)
@@ -93,7 +93,7 @@ func TestImportedKeymanager_NoDuplicates(t *testing.T) {
require.Equal(t, numKeys+1, len(dr.accountsStore.PrivateKeys))
}
func TestImportedKeymanager_ImportKeystores(t *testing.T) {
func TestLocalKeymanager_ImportKeystores(t *testing.T) {
ctx := context.Background()
// Setup the keymanager.
wallet := &mock.Wallet{

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -31,13 +31,13 @@ var (
const (
// KeystoreFileNameFormat exposes the filename the keystore should be formatted in.
KeystoreFileNameFormat = "keystore-%d.json"
// AccountsPath where all imported keymanager keystores are kept.
// AccountsPath where all local keymanager keystores are kept.
AccountsPath = "accounts"
// AccountsKeystoreFileName exposes the name of the keystore file.
AccountsKeystoreFileName = "all-accounts.keystore.json"
)
// Keymanager implementation for imported keystores utilizing EIP-2335.
// Keymanager implementation for local keystores utilizing EIP-2335.
type Keymanager struct {
wallet iface.Wallet
accountsStore *accountStore
@@ -75,7 +75,7 @@ func ResetCaches() {
lock.Unlock()
}
// NewKeymanager instantiates a new imported keymanager from configuration options.
// NewKeymanager instantiates a new local keymanager from configuration options.
func NewKeymanager(ctx context.Context, cfg *SetupConfig) (*Keymanager, error) {
k := &Keymanager{
wallet: cfg.Wallet,
@@ -134,7 +134,7 @@ func (km *Keymanager) SubscribeAccountChanges(pubKeysChan chan [][fieldparams.BL
return km.accountsChangedFeed.Subscribe(pubKeysChan)
}
// ValidatingAccountNames for a imported keymanager.
// ValidatingAccountNames for a local keymanager.
func (_ *Keymanager) ValidatingAccountNames() ([]string, error) {
lock.RLock()
names := make([]string, len(orderedPublicKeys))
@@ -165,7 +165,7 @@ func (km *Keymanager) initializeKeysCachesFromKeystore() error {
return nil
}
// FetchValidatingPublicKeys fetches the list of active public keys from the imported account keystores.
// FetchValidatingPublicKeys fetches the list of active public keys from the local account keystores.
func (_ *Keymanager) FetchValidatingPublicKeys(ctx context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) {
_, span := trace.StartSpan(ctx, "keymanager.FetchValidatingPublicKeys")
defer span.End()

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -17,7 +17,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
)
func TestImportedKeymanager_FetchValidatingPublicKeys(t *testing.T) {
func TestLocalKeymanager_FetchValidatingPublicKeys(t *testing.T) {
wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte),
WalletPassword: password,
@@ -49,7 +49,7 @@ func TestImportedKeymanager_FetchValidatingPublicKeys(t *testing.T) {
}
}
func TestImportedKeymanager_FetchValidatingPrivateKeys(t *testing.T) {
func TestLocalKeymanager_FetchValidatingPrivateKeys(t *testing.T) {
wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte),
WalletPassword: password,
@@ -82,7 +82,7 @@ func TestImportedKeymanager_FetchValidatingPrivateKeys(t *testing.T) {
}
}
func TestImportedKeymanager_Sign(t *testing.T) {
func TestLocalKeymanager_Sign(t *testing.T) {
wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte),
AccountPasswords: make(map[string]string),
@@ -150,7 +150,7 @@ func TestImportedKeymanager_Sign(t *testing.T) {
}
}
func TestImportedKeymanager_Sign_NoPublicKeySpecified(t *testing.T) {
func TestLocalKeymanager_Sign_NoPublicKeySpecified(t *testing.T) {
req := &validatorpb.SignRequest{
PublicKey: nil,
}
@@ -159,7 +159,7 @@ func TestImportedKeymanager_Sign_NoPublicKeySpecified(t *testing.T) {
assert.ErrorContains(t, "nil public key", err)
}
func TestImportedKeymanager_Sign_NoPublicKeyInCache(t *testing.T) {
func TestLocalKeymanager_Sign_NoPublicKeyInCache(t *testing.T) {
req := &validatorpb.SignRequest{
PublicKey: []byte("hello world"),
}

View File

@@ -0,0 +1,5 @@
package local
import "github.com/sirupsen/logrus"
var log = logrus.WithField("prefix", "local-keymanager")

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -92,7 +92,7 @@ func (km *Keymanager) listenForAccountChanges(ctx context.Context) {
}
}
// Replaces the accounts store struct in the imported keymanager with
// Replaces the accounts store struct in the local keymanager with
// the contents of a keystore file by decrypting it with the accounts password.
func (km *Keymanager) reloadAccountsFromKeystore(keystore *AccountsKeystoreRepresentation) error {
decryptor := keystorev4.New()

View File

@@ -1,4 +1,4 @@
package imported
package local
import (
"context"
@@ -15,7 +15,7 @@ import (
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
)
func TestImportedKeymanager_reloadAccountsFromKeystore_MismatchedNumKeys(t *testing.T) {
func TestLocalKeymanager_reloadAccountsFromKeystore_MismatchedNumKeys(t *testing.T) {
password := "Passw03rdz293**%#2"
wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte),
@@ -46,7 +46,7 @@ func TestImportedKeymanager_reloadAccountsFromKeystore_MismatchedNumKeys(t *test
assert.ErrorContains(t, "do not match", err)
}
func TestImportedKeymanager_reloadAccountsFromKeystore(t *testing.T) {
func TestLocalKeymanager_reloadAccountsFromKeystore(t *testing.T) {
password := "Passw03rdz293**%#2"
wallet := &mock.Wallet{
Files: make(map[string]map[string][]byte),

View File

@@ -60,13 +60,13 @@ type Keystore struct {
Name string `json:"name"`
}
// Kind defines an enum for either imported, derived, or remote-signing
// Kind defines an enum for either local, derived, or remote-signing
// keystores for Prysm wallets.
type Kind int
const (
// Imported keymanager defines an on-disk, encrypted keystore-capable store.
Imported Kind = iota
// Local keymanager defines an on-disk, encrypted keystore-capable store.
Local Kind = iota
// Derived keymanager using a hierarchical-deterministic algorithm.
Derived
// Remote keymanager capable of remote-signing data.
@@ -84,7 +84,7 @@ func (k Kind) String() string {
switch k {
case Derived:
return "derived"
case Imported:
case Local:
return "direct"
case Remote:
return "remote"
@@ -101,7 +101,7 @@ func ParseKind(k string) (Kind, error) {
case "derived":
return Derived, nil
case "direct":
return Imported, nil
return Local, nil
case "remote":
return Remote, nil
case "web3signer":

View File

@@ -3,20 +3,20 @@ package keymanager_test
import (
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/prysmaticlabs/prysm/validator/keymanager/remote"
)
var (
_ = keymanager.IKeymanager(&imported.Keymanager{})
_ = keymanager.IKeymanager(&local.Keymanager{})
_ = keymanager.IKeymanager(&derived.Keymanager{})
_ = keymanager.IKeymanager(&remote.Keymanager{})
// More granular assertions.
_ = keymanager.KeysFetcher(&imported.Keymanager{})
_ = keymanager.KeysFetcher(&local.Keymanager{})
_ = keymanager.KeysFetcher(&derived.Keymanager{})
_ = keymanager.Importer(&imported.Keymanager{})
_ = keymanager.Importer(&local.Keymanager{})
_ = keymanager.Importer(&derived.Keymanager{})
_ = keymanager.Deleter(&imported.Keymanager{})
_ = keymanager.Deleter(&local.Keymanager{})
_ = keymanager.Deleter(&derived.Keymanager{})
)

View File

@@ -51,7 +51,7 @@ go_library(
"//validator/client:go_default_library",
"//validator/db/kv:go_default_library",
"//validator/graffiti:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/keymanager/remote-web3signer:go_default_library",
"//validator/rpc:go_default_library",
"//validator/rpc/apimiddleware:go_default_library",

View File

@@ -41,7 +41,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/client"
"github.com/prysmaticlabs/prysm/validator/db/kv"
g "github.com/prysmaticlabs/prysm/validator/graffiti"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
remote_web3signer "github.com/prysmaticlabs/prysm/validator/keymanager/remote-web3signer"
"github.com/prysmaticlabs/prysm/validator/rpc"
validatorMiddleware "github.com/prysmaticlabs/prysm/validator/rpc/apimiddleware"
@@ -374,9 +374,9 @@ func (c *ValidatorClient) registerValidatorService(cliCtx *cli.Context) error {
maxCallRecvMsgSize := c.cliCtx.Int(cmd.GrpcMaxCallRecvMsgSizeFlag.Name)
grpcRetries := c.cliCtx.Uint(flags.GrpcRetriesFlag.Name)
grpcRetryDelay := c.cliCtx.Duration(flags.GrpcRetryDelayFlag.Name)
var interopKeysConfig *imported.InteropKeymanagerConfig
var interopKeysConfig *local.InteropKeymanagerConfig
if c.cliCtx.IsSet(flags.InteropNumValidators.Name) {
interopKeysConfig = &imported.InteropKeymanagerConfig{
interopKeysConfig = &local.InteropKeymanagerConfig{
Offset: cliCtx.Uint64(flags.InteropStartIndex.Name),
NumValidatorKeys: cliCtx.Uint64(flags.InteropNumValidators.Name),
}

View File

@@ -41,7 +41,7 @@ func TestNode_Builds(t *testing.T) {
_, err := accounts.CreateWalletWithKeymanager(context.Context, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: dir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: walletPassword,
},
})

View File

@@ -44,7 +44,7 @@ go_library(
"//validator/db:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/slashing-protection-history:go_default_library",
"//validator/slashing-protection-history/format:go_default_library",
"@com_github_fsnotify_fsnotify//:go_default_library",
@@ -108,7 +108,7 @@ go_test(
"//validator/db/kv:go_default_library",
"//validator/keymanager:go_default_library",
"//validator/keymanager/derived:go_default_library",
"//validator/keymanager/imported:go_default_library",
"//validator/keymanager/local:go_default_library",
"//validator/slashing-protection-history/format:go_default_library",
"//validator/testing:go_default_library",
"@com_github_golang_jwt_jwt//:go_default_library",

View File

@@ -15,7 +15,7 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/petnames"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/derived"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
@@ -107,10 +107,10 @@ func (s *Server) BackupAccounts(
var keystoresToBackup []*keymanager.Keystore
switch km := km.(type) {
case *imported.Keymanager:
case *local.Keymanager:
keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword)
if err != nil {
return nil, status.Errorf(codes.Internal, "Could not backup accounts for imported keymanager: %v", err)
return nil, status.Errorf(codes.Internal, "Could not backup accounts for local keymanager: %v", err)
}
case *derived.Keymanager:
keystoresToBackup, err = km.ExtractKeystores(ctx, pubKeys, req.BackupPassword)
@@ -173,6 +173,9 @@ func (s *Server) DeleteAccounts(
if err != nil {
return nil, err
}
if s.wallet.KeymanagerKind() != keymanager.Local && s.wallet.KeymanagerKind() != keymanager.Derived {
return nil, status.Error(codes.FailedPrecondition, "Only Imported or Derived wallets can delete accounts")
}
if err := accounts.DeleteAccount(ctx, &accounts.Config{
Wallet: s.wallet,
Keymanager: km,

View File

@@ -37,7 +37,7 @@ func TestImportSlashingProtection_Preconditions(t *testing.T) {
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: strongPass,
},
SkipMnemonicConfirm: true,

View File

@@ -69,7 +69,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
_, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: req.WalletPassword,
},
SkipMnemonicConfirm: true,
@@ -79,7 +79,7 @@ func (s *Server) CreateWallet(ctx context.Context, req *pb.CreateWalletRequest)
}
if err := s.initializeWallet(ctx, &wallet.Config{
WalletDir: walletDir,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: req.WalletPassword,
}); err != nil {
return nil, err
@@ -126,7 +126,7 @@ func (s *Server) WalletConfig(_ context.Context, _ *empty.Empty) (*pb.WalletResp
switch s.wallet.KeymanagerKind() {
case keymanager.Derived:
keymanagerKind = pb.KeymanagerKind_DERIVED
case keymanager.Imported:
case keymanager.Local:
keymanagerKind = pb.KeymanagerKind_IMPORTED
case keymanager.Remote:
keymanagerKind = pb.KeymanagerKind_REMOTE

View File

@@ -24,14 +24,14 @@ import (
"github.com/prysmaticlabs/prysm/validator/accounts/wallet"
"github.com/prysmaticlabs/prysm/validator/client"
"github.com/prysmaticlabs/prysm/validator/keymanager"
"github.com/prysmaticlabs/prysm/validator/keymanager/imported"
"github.com/prysmaticlabs/prysm/validator/keymanager/local"
"github.com/tyler-smith/go-bip39"
keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4"
)
const strongPass = "29384283xasjasd32%%&*@*#*"
func TestServer_CreateWallet_Imported(t *testing.T) {
func TestServer_CreateWallet_Local(t *testing.T) {
ctx := context.Background()
localWalletDir := setupWalletDir(t)
defaultWalletPath = localWalletDir
@@ -101,7 +101,7 @@ func TestServer_CreateWallet_Imported(t *testing.T) {
require.NoError(t, err)
}
func TestServer_CreateWallet_Imported_PasswordTooWeak(t *testing.T) {
func TestServer_CreateWallet_Local_PasswordTooWeak(t *testing.T) {
localWalletDir := setupWalletDir(t)
defaultWalletPath = localWalletDir
ctx := context.Background()
@@ -313,7 +313,7 @@ func TestServer_WalletConfig(t *testing.T) {
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: strongPass,
},
SkipMnemonicConfirm: true,
@@ -346,7 +346,7 @@ func TestServer_ImportAccounts_FailedPreconditions(t *testing.T) {
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: strongPass,
},
SkipMnemonicConfirm: true,
@@ -381,14 +381,14 @@ func TestServer_ImportAccounts_FailedPreconditions(t *testing.T) {
}
func TestServer_ImportAccounts_OK(t *testing.T) {
imported.ResetCaches()
local.ResetCaches()
localWalletDir := setupWalletDir(t)
defaultWalletPath = localWalletDir
ctx := context.Background()
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: strongPass,
},
SkipMnemonicConfirm: true,
@@ -490,7 +490,7 @@ func createImportedWalletWithAccounts(t testing.TB, numAccounts int) (*Server, [
w, err := accounts.CreateWalletWithKeymanager(ctx, &accounts.CreateWalletConfig{
WalletCfg: &wallet.Config{
WalletDir: defaultWalletPath,
KeymanagerKind: keymanager.Imported,
KeymanagerKind: keymanager.Local,
WalletPassword: strongPass,
},
SkipMnemonicConfirm: true,