Geth synchronisiert nicht mit MetaMask

Ich möchte mein Konto von MetaMask (testnet) in die Liste der Geth-Konten importieren.

Zuerst habe ich den privaten Schlüssel von MetaMask kopiert und in einer txt-Datei gespeichert.

Danach führe ich diesen Befehl aus:

geth account import /path/to/file.txt --testnet console

Absolut, ich bekomme mein Konto auf die Liste:

geth account list

Aber in MetaMask habe ich einige Ether, aber von der Geth-Konsole, wenn ich meinen Kontostand für dasselbe Konto überprüfen möchte, bekomme ich 0 Ether.

Ist es möglich, das Guthaben zu synchronisieren? Übrigens führe ich den Update-Befehl aus:

geth account update 0x....

Ich habe das gleiche Problem.

Ist Ihr Geth mit demselben Testnetz verbunden?
Ja, ich habe diesen Befehl verwendet, um eine Verbindung zum Testnet herzustellen: geth --testnet console
Überprüfen Sie das Guthaben auf etherscan: ropsten.etherscan.io Von dort aus können Sie herausfinden, ob es sich um ein Problem auf der Metamaskenseite oder auf Ihrem lokalen Geth handelt.
@ahmed Fanden Sie meine Antwort unten gut?

Antworten (1)

Leider hatten Sie Ihr lokales GEth erfolgreich synchronisiert, aber mit einem anderen Netzwerk als dem, in dem Sie Ihren Ether überprüft haben!

Diese Verwirrung tritt auf, weil es einen Angriff auf das Ropesten-Netzwerk gab, der von einigen Knoten korrigiert wurde, aber die anderen Knoten noch die alten Daten hatten. Und wenn Sie Ihren Befehl ausführen:

geth --testnet --rpc --rpcaddr "localhost" --rpcport "8545" --rpcapi "web3,eth,net,personal" --rpccorsdomain "*" --datadir "./data" --identity "localnode " --schnell

Sie geben in dem Befehl keinen bestimmten Knoten an, zu dem eine Verbindung hergestellt werden soll. Und aus Versehen sind Sie mit Knoten verbunden, die noch auf den alten veralteten Netzwerk-Blockchain-Daten laufen!

Und das Löschen des Ordners „chaindata“ wird GEth nicht darüber informieren, es mit anderen Knoten zu versuchen. Denn es werden dieselben Knoten aus dem Ordner "Knoten" ausgewählt.

Um neue Knoten für die Synchronisierung auszuwählen, müssen Sie entweder:

  • Löschen Sie den Ordner „nodes“ und geben Sie mit der Option „--bootnodes“ auch einen aktualisierten Knoten an, der von GEth verwendet werden soll.
  • Oder fügen Sie die Knoten auch nach der Synchronisierung mit dem Befehl hinzu: "admin.addPeer('enode://ADDRESS@IP:PORT')". Dies ist, nachdem Sie im Terminal mit "geth Attach IPC:/home/developer/.ethereum/testnet/geth.ipc" eine Verbindung zu Geth hergestellt haben.

Da es jedoch keine klare Auflistung gibt, welche Nodes gegabelt und aktualisiert wurden, um den Hack zu korrigieren, und aufgrund vieler anderer Probleme, wie der Größe des vollständigen Netzwerkknotens, empfehle ich die Verwendung von Parity, um eine Verbindung mit dem Netzwerk der richtigen Ropsten-Nodes herzustellen .

Um die Parität zu verwenden, empfehle ich, einem dieser Links zu folgen:

Also, danke an Parity! Sie können Ihr gewünschtes Netzwerk mit "--chain" einfach angeben, indem Sie Folgendes ausführen:"parity --chain ropsten"

Antwort von mir kopiert unter: https://stackoverflow.com/questions/46765878/local-node-geth-failed-to-sync-from-testnet/47301387#47301387