Wenn ich die web3-Schnittstelle verwende, um mich bei msgs anzumelden, sagt es mir, dass das Konto entsperrt werden soll, wie kann ich dies mit Geth verwalten und was genau bedeutet Entsperren?
Standardmäßig sind Ihre Konten in Geth „gesperrt“, was bedeutet, dass Sie keine Transaktionen von ihnen senden können. Sie müssen ein Konto entsperren, um Transaktionen direkt über Geth oder über RPC zu senden (obwohl web3 dies nicht unterstützt). Um ein Konto zu entsperren, müssen Sie das Passwort angeben, das zum Entschlüsseln des mit Ihrem Konto verknüpften privaten Schlüssels verwendet wird, sodass Sie Transaktionen signieren können.
Wie entsperren Sie ein Konto? Es gibt ein paar verschiedene Möglichkeiten, wie Sie dies tun können, die in der Geth-Dokumentation hervorgehoben werden . Ich gebe einen Überblick:
Entsperren Sie das Konto, wenn Sie Geth ausführen. Der Kennwortparameter ist optional. Wenn Sie es nicht angeben, werden Sie aufgefordert, das Kennwort einzugeben.
geth --unlock <YOUR_ACCOUNT_ADDRESS> --password <YOUR_PASSWORD>
Entsperren Sie das Konto über die interaktive Javascript-Konsole von Geth. Auch hier ist das Passwort optional. Wenn Sie es nicht angeben, werden Sie aufgefordert, es einzugeben. Beachten Sie, dass in früheren Versionen von Geth die Angabe des Passworts als Parameter dazu führen würde, dass das Passwort im Geth-Protokoll angezeigt wird, was ein Sicherheitsproblem darstellen kann .
personal.unlockAccount(address, "password")
geth --unlock
ist der Weg, es zu tun, ich denke web3
, alle Ihre Eingaben werden im Protokoll protokolliertgeth --unlock 0x3b3F14690C8Fb8b1B333Ff38961bdEEa658a3873
Nicht, dass Sie nach einem Passwort gefragt werden, und die Eingabeaufforderung für das Passwort könnte irgendwo in der Masse der Ausgabe während des Starts von geth versteckt sein, z. B. Unlocking account 0xb2... | Attempt 1/3 Passphrase: I0522 12:30:46.360237 node/node.go:298] IPC endpoint opened: /home/someone/.ethereum/geth.ipc I0522 12:30:46.836509 p2p/nat/nat.go:111] mapped network port tcp:30303 -> 30303 (ethereum p2p) using UPNP IGDv1-IP11
(Versuchen Sie, das Wort Passphrase
in der obigen Ausgabe zu finden ;) )geth unlock 0x4ae4ddbf073ff57e5861490d72f9177d9039428a,0x4ae4ddbf073ff57e5861490d72f9177d9039428b,0x4ae4ddbf073ff57e5861490d72f9177d9039428c
--password <passwordFile> . passwordFile sollte das Passwort enthalten, ein Passwort in jeder Zeile.personal.unlockAccount(address, "password", 0)
um entsperrt zu bleiben, bis Sie es manuell wieder sperren. personal.unlockAccount(address, "password", 300)
nach 300 Sekunden automatisch verriegeln. Sie können natürlich ein Passwort hinzufügen, aber es wird nicht empfohlen. (Noch, es auf unbestimmte Zeit entsperrt zu halten.) personal.lockAccount()
Funktioniert heutzutage normalerweise, um manuell zu sperren.personal.unlockAccount("address", undefined, 300)
--allow-insecure-unlock
Nur um die ausgezeichnete akzeptierte Antwort zu ergänzen.
Sie können das Konto auch direkt von Web3 aus entsperren:
web3.personal.unlockAccount('0xE0ca...c1f7', 'mypass')
Und schließe es zurück:
web3.personal.lockAccount('0xE0ca...c1f7')
Weitere Details finden Sie im web3-eth-personal
Modul.
was genau bedeutet freischalten
Eine Geth-Node-Implementierung enthält eine integrierte Kontoverwaltung, d. h. sie verwaltet den privaten Schlüssel des Kontos , der in verschlüsselter Form auf der Festplatte gespeichert wird. Das Entsperren eines Kontos bedeutet, dass sein privater Schlüssel entschlüsselt und im Speicher gespeichert wird (er wird niemals entschlüsselt auf der Festplatte gespeichert).
⚠ Das bedeutet, dass Sie besonders darauf achten sollten, dass niemand über HTTP-RPC, WS-RPC oder IPC auf Ihren Geth-Knoten zugreift, da diese Schnittstellen die Übertragung von Ether von jedem freigeschalteten Konto ermöglichen ! ⚠
web3.personal.unlockAccount('prviatekey');
sollte ohne den Adressparameter funktionieren
Haseb Ahmad