Ich erstelle eine neue Adresse mit web3.py mit diesem Code:
from web3 import Web3
w3 = Web3(Web3.HTTPProvider('http://localhost:8545'))
w3.personal.newAccount('the-passphrase')
Und habe ein paar Fragen:
the-passphrase
von der Adresse aus dem folgenden Code zurückgegeben zu werden? Benötigen Sie das gleiche Verhalten wie dumpprivkey
von bitcoin-cliprivatekey-publickey-address
?signTransaction
Methode verwende, sollte ich „Passphrase“ oder seinen Hash verwenden?Vielen Dank!
Ich denke, Sie sind vielleicht verwirrt über den Zweck der Passphrase. Das Passphrase-Argument ist kein Startwert zum Generieren des privaten Schlüssels, sondern eine Passphrase zum Verschlüsseln des privaten Schlüssels, sobald er generiert wurde.
Wenn Sie w3.personal.newAccount('the-passphrase')
den Knoten aufrufen, generiert er einen zufälligen privaten Schlüssel, leitet daraus die Adresse ab, verschlüsselt dann den Schlüssel mit Ihrer Passphrase und speichert den verschlüsselten Schlüssel auf der Festplatte. Es gibt dann die Adresse zurück.
So können Sie beliebig viele unzusammenhängende Konten erstellen, die alle mit derselben Passphrase verschlüsselt sind.
Das Kernproblem ist, dass Sie wahrscheinlich die eth_account- Bibliothek anstelle der personal
API verwenden sollten. Die account
API dient zum Erstellen von Brieftaschen und Konten im Speicher auf der Clientseite, während die personal
API zum Verwalten von Konten auf der Serverseite auf der Festplatte dient. Es gibt keine Möglichkeit, einen serverseitigen privaten Schlüssel über web3 abzurufen, aber wenn Sie das Konto clientseitig erstellen, können Sie mit privaten Schlüsseln so viel wie Sie wollen manuell umgehen.
Weitere Beispiele finden Sie unter https://web3py.readthedocs.io/en/stable/web3.eth.account.html#working-with-local-private-keys
Schnitzer
Tjaden Hess