stereum-dev/ethereum2-docker-compose

prysm-only/create-account.yaml # Failing on password req in test setup - how to recover?

Closed this issue · 2 comments

cgi1 commented

So I was trying it out using the TestNet and gave a weak password... Now right before the setup finishes, the loader complaines about password policy:
Could not import accounts: could not initialize wallet: password did not pass validation: password must have at least 8 characters, at least 1 alphabetical character, 1 unicode symbol, and 1 number

Grr - Sure its very good to have that in MainNet.. But now I get stuck and wonder how to proceed from here?

Can I change my existing password to match the requirements or do I need to generate new validator configs?


My steps:

Copy templates:

cd /opt/ethereum2-docker-compose/
cp compose-examples/prysm-only/docker-compose.yaml 
cp compose-examples/prysm-only/create-account.yaml ./

Copy keystore & deposit file:

mkdir -p /opt/ethereum2-docker-compose/launchpad/eth2.0-deposit-cli/validator_keys
cd /opt/ethereum2-docker-compose/launchpad/eth2.0-deposit-cli/validator_keys/
cp /opt/ethereum2-docker-compose/launchpad/deposit_data-XYZ.json ./
cp /opt/ethereum2-docker-compose/launchpad/keystore-m_XYZjson ./

Enter password / Create wallet dir:

cd /opt/ethereum2-docker-compose/
mkdir -p data/prysm/validator/wallets
vim data/prysm/validator/passwords/wallet-password

(saved pw to file)

Try to run it:

cd /opt/ethereum2-docker-compose/
sudo docker-compose -f create-account.yaml run validator-import-launchpad

But sadly it fails:

[2021-02-21 18:03:34] FATAL accounts: 
Could not import accounts: could not initialize wallet: 
password did not pass validation: 
password must have at least 8 characters, 
at least 1 alphabetical character, 1 unicode symbol, and 1 number

The password you want to have for your wallet prysm is safed in data/prysm/validator/passwords/wallet-password and this is the failing password. Unfortunately prysm doesn't use a weaker password checker for testnet, so you need to have a strong password also on testnet. There is also no way to disable the password check.

$ docker run gcr.io/prysmaticlabs/prysm/validator accounts import

Prysmatic Labs Terms of Use

By downloading, accessing or using the Prysm implementation (“Prysm”), you (referenced herein
as “you” or the “user”) certify that you have read and agreed to the terms and conditions below.

TERMS AND CONDITIONS: https://github.com/prysmaticlabs/prysm/blob/master/TERMS_OF_SERVICE.md


Type "accept" to accept this terms and conditions [accept/decline]: (default: decline):
NAME:
   validator accounts import - 

USAGE:
   validator accounts import [command options] [arguments...]

DESCRIPTION:
   imports eth2 validator accounts stored in EIP-2335 keystore.json files from an external directory

OPTIONS:
   --wallet-dir value               Path to a wallet directory on-disk for Prysm validator accounts (default: "/home/.eth2validators/prysm-wallet-v2")
   --keys-dir value                 Path to a directory where keystores to be imported are stored
   --wallet-password-file value     Path to a plain-text, .txt file containing your wallet password
   --account-password-file value    Path to a plain-text, .txt file containing a password for a validator account
   --import-private-key-file value  Path to a plain-text, .txt file containing a hex string representation of a private key to import
   --mainnet                        Run on Ethereum 2.0 Main Net. This is the default and can be omitted. (default: true)
   --pyrmont                        This defines the flag through which we can run on the Pyrmont Multiclient Testnet (default: false)
   --toledo                         This defines the flag through which we can run on the Toledo Multiclient Testnet (default: false)
   --accept-terms-of-use            Accept Terms and Conditions (for non-interactive environments) (default: false)
   --help, -h                       show help (default: false)
   
time="2021-02-21 18:20:06" level=error msg="could not scan text input, if you are trying to run in non-interactive environment, you
can use the --accept-terms-of-use flag after reading the terms and conditions here: 
https://github.com/prysmaticlabs/prysm/blob/master/TERMS_OF_SERVICE.md" prefix=main

To prevent confusion: There is also a password to decrypt your lanchpad validator_keys files, this one is not checked by prysm's password check because it's only used to import the files. The importer then decrypts the keys again with the strong password defined in data/prysm/validator/passwords/wallet-password.

cgi1 commented

Closed by generating new valiator keys.