Я генерирую код для создания кошельков для частной сети, созданной с помощью ethereum.
String password = unlockAccountParameter.getPass();
ECKeyPair keyPair = Keys.createEcKeyPair();
WalletFile wallet = Wallet.createStandard(password, keyPair);
System.out.println("Private key: " + keyPair.getPrivateKey().toString(16));
System.out.println("Account: " + wallet.getAddress());
String fileName = WalletUtils.generateNewWalletFile(unlockAccountParameter.getPass(), new File("C:\\Users\\emendez\\Wallet"), true);
System.out.println("File name: " + fileName);
Это возвращает мне этот вывод:
Частный ключ: 67f7a218d5d595dff19cafca9384b5a6e0693bc085d7c16468b8a8a44e20135a Учетная запись: bf29892787a79bb66188f9c44ca9ffd9ccff37aa
Имя файла: UTC--2018-11-15T12-26-51.672000000Z--252209a58e16be3c43776e38ff4bfaeb70660cfb.json
Файл JSON находится по пути, указанному в коде (на реальной машине). Но когда я иду в консоль geth для списка учетной записи, созданной в узле (виртуальной машине), учетная запись, которую я только что создал, не появляется.
Поэтому я думаю, что я не могу совершить сделку между ними.
Любая помощь??
Проблема может быть связана с местом, где вы храните свой кошелек.
Для автоматического обнаружения файл кошелька должен храниться в папке с именем keystore
внутри папки, в которой установлен geth. Вот самые распространенные пути:
– Mac: ~/Библиотека/Эфириум
– Linux: ~/.эфириум
– Windows: %USERPROFILE%\AppData\Roaming\Ethereum
Если вы не можете получить доступ к этой папке, вы можете импортировать свою учетную запись с помощью этой команды:
geth account import --datadir /fileWithOnlyPrivateKey --password /fileWithPasswordStringToEncryptThatKey ./key.prv
И вашим окончательным решением было бы сгенерировать транзакцию в вашем коде и отправить уже подписанную транзакцию на узел (это был бы самый безопасный подход, если вы можете сохранить свой закрытый ключ в безопасности), загляните в web3, чтобы узнать, как это сделать
Неожиданный персонаж
Энрике Алькасар