Ich habe mit Geth ein privates Netzwerk mit folgendem Befehl eingerichtet:
geth --datadir="PathToDatadir" --mine -minerthreads 2 -verbosity 3 -maxpeers 5 --ipcapi "admin,debug,eth,miner,net,personal,shh,txpool,web3" --ipcpath "geth.ipc" --port 30301 --rpc --rpcport 8101 --rpcapi eth,web3,personal --etherbase "e04fe31f4133f25ef3e5bfb39146edcf28724acd" --networkid 9990
So weit, ist es gut.
Ich habe ein Vertragssystem mit Truffle und Testrpc entwickelt und versuche nun, dieses auf mehreren Knoten bereitzustellen. Beim Ausführen von Truffle Migration stoße ich auf Probleme:
Laufende Migration: 1_initial_migration.js Ersetzen von Migrationen... Fehler aufgetreten, Bailing. Netzwerkstatus unbekannt. Überprüfen Sie erfolgreiche Transaktionen manuell. Fehler: Konto ist gesperrt
Ich habe Trüffel so konfiguriert, dass er von einer gewünschten Adresse gesendet wird (dieselbe, die als Etherbase definiert ist), aber das Konto ist gesperrt. Es gibt mehrere Möglichkeiten, ein Konto mit Geth zu entsperren. Die einzige Möglichkeit, wie es für mich zu funktionieren scheint, ist, wenn ich das Konto wie folgt entsperre:
geth --unlock "e04fe31f4133f25ef3e5bfb39146edcf28724acd" --password "fullPathtoTxtPasswordfile"
Bleibt das Konto für zukünftige Geth-Aufrufe entsperrt? Das Entsperren über personal.unlockAccount("address","fullPathtoTxtPasswordfile") in der Konsole funktioniert auch nicht. web3.accounts ist ebenfalls undefiniert.
Es scheint mir also gelungen zu sein, die Konten zu entsperren, aber die Truffle-Migration gibt mir immer noch den Fehler „Konto gesperrt“. Ich habe ähnliche Probleme beim Entsperren von Konten festgestellt, aber keine Lösung für mein eigenes spezifisches Problem gefunden.
personal.unlockAccount
nimmt keinen Dateipfad, sondern ein Passwort. Siehe: https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console#personalunlockaccount
Versuchen Sie es in der Befehlszeile mit:
geth --unlock 0 --password "fullpathtofile"
- Das Unlock-Argument benötigt einen Index. Sie können die Indizes anzeigen, indem Sie ausführen geth account list
.
Wenn Sie sicherstellen möchten, dass es sich nicht um ein Problem mit der Datei handelt, können Sie auch Folgendes tun:
geth --unlock 0 --password <(echo "PASSWORD_HERE")
Das <(command)
Formular führt den Befehl in der Klammer aus und erstellt eine benannte Pipe, die es an das Programm übergibt und als Datei mit dem Inhalt dieser Ausgabe fungiert. Sie können dies als Test für nicht vertrauliche Testkonten verwenden.
Morph