Genero un código para crear wallets para una cadena privada hecha con 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);
Eso me devuelve esta salida:
Clave privada: 67f7a218d5d595dff19cafca9384b5a6e0693bc085d7c16468b8a8a44e20135a Cuenta: bf29892787a79bb66188f9c44ca9ffd9ccff37aa
Nombre de archivo: UTC--2018-11-15T12-26-51.672000000Z--252209a58e16be3c43776e38ff4bfaeb70660cfb.json
El archivo JSON está en la ruta que escribe en código (en la máquina real). Pero cuando voy a la consola geth para enumerar la cuenta que se crea en el nodo (máquina virtual), la cuenta que acabo de crear no aparece.
Así que creo que no puedo hacer transacciones entre ellos.
¿¿Alguna ayuda??
El problema podría estar relacionado con la ubicación donde está guardando su billetera.
Para que se detecte automáticamente, el archivo de la billetera debe almacenarse en una carpeta llamada keystore
dentro de la carpeta donde está instalado geth. Estos son los caminos más comunes:
– Mac: ~/Biblioteca/Ethereum
– Linux: ~/.etereum
– Windows: %PERFIL DE USUARIO%\AppData\Roaming\Ethereum
Si no puede acceder a esa carpeta, puede importar su cuenta usando este comando:
geth account import --datadir /fileWithOnlyPrivateKey --password /fileWithPasswordStringToEncryptThatKey ./key.prv
Y su solución final sería generar la transacción en su código y enviar la transacción ya firmada al nodo (este sería el enfoque más seguro si puede mantener segura su clave privada), busque en web3 para aprender cómo hacerlo
Personaje inesperado
Enrique Alcázar