¿Cómo puedo obligar a geth a crear cuentas en un almacén de claves diferente?

En geth usando Mist, noté que tengo 2 almacenes de claves en dos lugares diferentes. Uno para la cadena de bloques principal en Users/<user>/Library/Ethereum/keystore/(OS X) y en testnet en Users/<user>/Library/Ethereum/testnet/keystore/.

También tengo una cadena privada que estoy configurando en un directorio completamente diferente.

Todavía no he minado porque quiero crear una nueva cuenta, pero cuando creé una desde la línea de comando geth account new, la colocó en el almacén de claves para la red principal.

Diría que esto es potencialmente muy confuso, en el mejor de los casos, peligroso en el peor, especialmente si hace una demostración usando cadenas de bloques privadas y haciendo una copia de seguridad de ellas.

Supongo que me falta un argumento de comando de algún tipo para forzar la creación de un almacén de claves diferente. ¿Cómo puedo hacer eso?

Respuestas (2)

Las cuentas se almacenan en el keystoresubdirectorio. Puede usar --datadirpara configurar ese directorio principal, pero los subdirectorios seguirán intactos.

Para cambiar el directorio del almacén de claves, debe usar--keystore

Desde las opciones de la CLI :

--datadir "/home/youruser/.ethereum"- Directorio de datos para las bases de datos y el almacén de claves.

--keystore- Directorio para el almacén de claves (predeterminado = dentro del directorio de datos)

La razón por la que tiene diferentes carpetas para testnet, mainnet, etc. es para mantener sus cuentas de testnet separadas de las de mainnet. Esto es importante.

Creo que debe pasar a la red de prueba, luego crear la cuenta en la red de prueba y luego la mía en la red de prueba para mantener todo en la red de prueba. Parece que está a caballo entre los dos y potencialmente está usando una cuenta en la red principal en lugar de la red de prueba. Asegúrese de estar realmente en la red de prueba porque simplemente cambiar el directorio del almacén de claves en la red principal no es suficiente.

¿También tiene que especificar explícitamente el directorio con --keystoreo la inclusión de --datadir "/path/to/chain/directory"hace suficiente?
Parece --keystoreque ya no está disponible en geth version 1.3.5.
Parece que esta es la respuesta geth --datadir "/path/to/chain/directory" account new, no se necesita nada más.
@ T9b Todavía veo --keystoreen versiones recientes de Geth. Si también ve --keystore, ¿podemos limpiar estos comentarios?

Básicamente, --datadirla opción debe especificarse con la mayoría de los comandos si está utilizando datadir personalizado.

account, attach, export/import, removedb ...

Te recomiendo que hagas un guión corto como el siguiente.

geth --datadir "<Your datadir>" $@guarde esto como geth.shy luego ejecute cualquier comando de la misma geth.sh attachmanera.