Wie kann ich Geth zwingen, Konten in einem anderen Schlüsselspeicher zu erstellen?

In Geth mit Mist ist mir aufgefallen, dass ich 2 Keystores an zwei verschiedenen Orten habe. Eine für die Haupt-Blockchain in Users/<user>/Library/Ethereum/keystore/(OS X) und auf Testnet in Users/<user>/Library/Ethereum/testnet/keystore/.

Ich habe auch eine private Kette, die ich in einem ganz anderen Verzeichnis einrichte.

Ich habe noch nicht abgebaut, weil ich ein neues Konto erstellen möchte, aber als ich eines über die Befehlszeile erstellt geth account newhabe, wurde es im Keystore für Mainnet abgelegt.

Ich würde sagen, dass dies möglicherweise sehr verwirrend ist, bestenfalls gefährlich, im schlimmsten Fall, insbesondere wenn Sie eine Demo mit privaten Blockchains durchführen und diese sichern.

Ich vermute, dass mir ein Befehlsargument fehlt, um die Erstellung eines anderen Schlüsselspeichers zu erzwingen. Wie mache ich das?

Antworten (2)

Konten werden im keystoreUnterverzeichnis gespeichert. Sie können verwenden --datadir, um dieses Hauptverzeichnis festzulegen, aber die Unterverzeichnisse bleiben weiterhin intakt.

Um das Keystore-Verzeichnis zu ändern, müssen Sie verwenden--keystore

Von CLI-Optionen :

--datadir "/home/youruser/.ethereum"- Datenverzeichnis für die Datenbanken und Keystore

--keystore- Verzeichnis für den Schlüsselspeicher (Standard = innerhalb des Datenverzeichnisses)

Der Grund, warum Sie unterschiedliche Ordner für Testnet, Mainnet usw. haben, besteht darin, Ihre Testnet-Konten von Ihren Mainnet-Konten getrennt zu halten. Das ist wichtig.

Ich glaube, Sie müssen zum Testnet wechseln, dann das Konto im Testnet erstellen und dann im Testnet mein Konto erstellen, um alles im Testnet zu behalten. Es hört sich so an, als würden Sie die beiden überspannen und möglicherweise eher ein Konto im Mainnet als im Testnet verwenden. Stellen Sie sicher, dass Sie sich tatsächlich im Testnet befinden, da es nicht ausreicht, einfach das Keystore-Verzeichnis im Mainnet zu ändern.

Muss man das Verzeichnis auch explizit mit angeben --keystoreoder reicht die Einbindung des --datadir "/path/to/chain/directory"aus?
Scheint --keystorein nicht mehr verfügbar zu sein geth version 1.3.5.
Es scheint, dass dies die Antwort ist, geth --datadir "/path/to/chain/directory" account newnichts anderes wird benötigt.
@T9b sehe ich immer noch --keystorein neueren Versionen von Geth. Wenn Sie auch sehen --keystore, können wir diese Kommentare bereinigen?

Grundsätzlich --datadirmuss die Option bei den meisten Befehlen angegeben werden, wenn Sie ein benutzerdefiniertes Datadir verwenden.

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

Ich empfehle Ihnen, ein kurzes Skript wie unten zu erstellen

geth --datadir "<Your datadir>" $@Speichern Sie dies wie geth.shund führen Sie dann einen beliebigen Befehl auf diese geth.sh attachWeise aus.