Die RPC-Verbindung zum privaten Netz mit MetaMask funktioniert, die Verwendung von Geth, Mist oder Solidity-Browser jedoch nicht

Ich versuche, ein privates Netzwerkkonsotium in Azure zu erstellen, indem ich diesem Tutorial folge:

https://github.com/Azure/azure-quickstart-templates/tree/master/ethereum-consortium-blockchain-network

Problem 1 - Solidity kann keine Verbindung zum privaten Netzwerk herstellen

Die Verbindung mit dem Netzwerk über MetaMask funktioniert einwandfrei, sodass ich Konten erstellen und Guthaben von einem Konto auf das andere übertragen kann. Allerdings kann ich mit dem Solidity-Browser keine Verbindung zu meinem Netzwerk herstellen (daher kann ich keine Verträge bereitstellen) wegen des https->http-Problems. Das Ausführen von Solidity vom lokalen Host funktioniert ebenfalls nicht. Dort steht, dass die Konten gesperrt sind. Das Ziel hier ist es , meine eigenen Verträge einfach in diesem privaten Netzwerk einzusetzen .

Problem 2 - Die Verbindung von Geth oder Mist von Localhost funktioniert nicht

Da der Solidity- Browser nicht funktioniert, habe ich andere Möglichkeiten ausprobiert, um eine Verbindung zum Netzwerk herzustellen und meine Verträge bereitzustellen. Bei der Verwendung von Mist ist das Problem:

Methode personal_newAccount existiert nicht/ist nicht verfügbar

andere Threads sagen mir, ich soll damit anfangen, --rpcapi="db,eth,net,web3,personal,web3"aber warum funktioniert es dann mit MetaMask?

Antworten (2)

Das Problem ist, dass der Azure-Marktplatz eine alte Version von Geth hostet, die den EIP 155-Wiedergabeschutz nicht unterstützt , was die neueste Version von MetaMask tut.

Die Lösungen sind:

  • Verwenden Sie zum Testen einen anderen Client (z. B. TestRPC).
  • Fordern Sie Azure auf, ihre gehostete Geth-Version zu aktualisieren.
  • MetaMask könnte die Möglichkeit hinzufügen, das alte Transaktionssignaturformat zu unterstützen, was eine Lösung für dieses Problem erfordert .

Als Mitglied des MetaMask-Teams würde ich es lieben, wenn wir alte, gefährlichere Ethereum-Clients wie diesen nicht unterstützen müssten, und ich würde es sehr bevorzugen, wenn Azure nur ihre Geth-Version aktualisiert.

Schließlich können Sie eine ältere Version von MetaMask ausführen. Version 3.5.2 war die letzte Version, die keinen EIP155-Wiedergabeschutz implementierte: https://github.com/MetaMask/metamask-plugin/releases/tag/v3.5.2

Sind Sie ein MetaMask-Entwickler, mein Bildschirm wurde mehr als 3 Stunden lang angeschlagen, nachdem ich „Mit lokalem privatem Netzwerk verbinden“ ausgewählt hatte. Irgendwelche Hilfe?

aber warum funktioniert es dann mit MetaMask? Metamask verwendet eine Sache namens Brainwallet, im Grunde eine Authentifizierung "on the fly", ohne Schlüsseldateien zu erstellen.

Natürlich müssen Sie Ihr Konto vor der Verwendung entsperren, alternativ können Sie es mit dem Startparameter dauerhaft (= bis zum Schließen/Neustart von geth) entsperren --unlock 0. Verwenden Sie für mehrere Konten --unlock 0,1,2,3,4. Wenn sie entsperrt und rpc aktiviert ist ( --rpc --rpcport 8545 --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcapi "eth,web3,debug" for example, please look up what these parameters mean ), können Sie im Browser solidity / remix einfach https in http ändern und sich mit Ihrem Knoten verbinden.

solidity kann sich nicht mit dem privaten Netzwerk verbinden

Solidity ist nur die Programmiersprache, meintest du vielleicht etwas anderes? Viel Glück !

Es ist eigentlich falsch zu sagen, dass MetaMask eine Brain Wallet verwendet. MetaMask verwendet die BIP44-Schlüsselableitung, sodass aus einer einzigen „Startphrase“ (die der Benutzer nicht generiert) viele Kontoschlüssel generiert werden können. Es stimmt, dass wir diese Konten nicht als Schlüsseldateien speichern, aber wir speichern private Informationen, die Schlüsseldateien generieren können.
Danke für deine Antwort @Nikita Fuchs. Ich meinte "Solidity Browser".