So geben Sie ein benutzerdefiniertes Verzeichnis mit dem C++-Client an

Mit dem Go-Client kann man den folgenden Befehl verwenden, um neue Konten/Schlüsselspeicher in einem bestimmten Datenverzeichnis zu erstellen:

geth --datadir ./data account new

Bei Verwendung des C++-Clients gibt es keine solche Option:

eth --db-path ./data account new

Es funktioniert nicht. Irgendwelche Hinweise bitte?

Antworten (1)

In ethkönnen Sie den account newParameter nicht mit den anderen Optionen wie verwenden --db-path.

Wenn der erste Parameter von ethist account, gibt der Code bei eth/main.cpp#L425-L429 den Ausführungsstatus des Account-Manager-Codes zurück:

if (argc > 1 && (string(argv[1]) == "wallet" || string(argv[1]) == "account"))
{
    AccountManager accountm;
    return !accountm.execute(argc, argv);
}

Der Code fährt dann nicht fort, die anderen Befehlszeilenoptionen zu analysieren.

Wenn Sie den accountParameter nicht in Ihrer Befehlszeile angeben, überspringt die Codeausführung den obigen Abschnitt zur Ausführung des Kontomanagercodes und fährt mit der Analyse der Befehlszeilenoptionen fort, einschließlich des Codes zum Festlegen von datadirat eth/main.cpp#L589-L590 :

else if ((arg == "-d" || arg == "--path" || arg == "--db-path" || arg == "--datadir") && i + 1 < argc)
    setDataDir(argv[++i]);

Es sieht also so aus, als müssten die mit erstellten Konten account newim Standardpfad bleiben, aber Sie können das Datenverzeichnis mit der --db-pathOption ändern.

Gibt es einen bestimmten Grund, warum Sie den C++-Eth-Node-Client verwenden? VON HARD FORK IN WENIGER ALS 24 STUNDEN. AKTUALISIEREN SIE IHREN CLIENT [OFFIZIELLE ETHEREUM-UPDATE-LINKS] , Sie können sehen, dass der C++-Client nicht für den Gas-Reprice-Hard-Fork aktualisiert wurde. Und es ist viel einfacher, mit dem go-ethereum-Client zu arbeiten.
Begann mit dem Go-Ethereum und finde es viel einfacher zu bedienen. Der Grund, warum ich es versuche, ist der Fehler im privaten Cluster – siehe meinen früheren Thread – ethereum.stackexchange.com/questions/9164/…