Warum funktioniert die Truffle Console gut mit testrpc, aber Truffle Serve findet keine Konten?

Ich führe testrpc auf dem Standardport 8545 aus.

Ich laufe truffle consoleund teste mit:web3.eth.sign(web3.eth.accounts[0], web3.sha3("123"))

Das funktioniert gut. Laut Dokumenten funktioniert die Sign-Methode nur, wenn das Konto entsperrt ist, also sollte ich anscheinend fertig sein.

Aber nachdem ich erfolgreich ausgeführt init/compile/migratehabe, führe ich aus truffle serveund wenn ich auf die Webseite auf localhost:8080 gehe, erhalte ich diese Popup-Meldung:

"Konnte keine Konten erhalten! Stellen Sie sicher, dass Ihr Ethereum-Client richtig konfiguriert ist."

Tun Sie beides truffle serveund öffnen Sie den Browser auf demselben Computer?
Ja, gleiche Maschine :)
Wie sieht Ihre Truffle-Konfiguration aus?
v2.0.0 auf Ubuntu, Knoten v5.12.0
Nur eine Standardinstallation

Antworten (3)

Ich habe diesen Fehler auch.

Ich hatte den MetaMask Ethereum-Client installiert, mich aber noch nicht angemeldet.

Die Standard-Truffle-app.js hat die von MetaMask eingefügte web3-Instanz übernommen. Nachdem ich mich bei MetaMask angemeldet hatte, um erste Konten zu erstellen, verschwand der Fehler.

Wenn das Metamask-Plugin zu Ihrem Chrome hinzugefügt wurde und Sie Chrome verwenden, verwendet Ihr Code die in Metamask eingefügte Web3-Instanz. Sobald Sie sich bei Metamask anmelden/entsperren, erhält Ihr Code die Kontoadresse, die von Metamask erstellt wurde. Wenn Sie die Standardkontoadresse von TestRPC benötigen, dh Konto [0], versuchen Sie es mit einem anderen Browser.

Ich habe diesen Fehler auch bekommen und die Lösung war eine Variation von @modpy .

Also hatte ich versucht, das MetaMask Chrome-Plugin zu aktualisieren, und es war dabei, dies zu tun - also war MetaMask aktiviert und versuchte, eine Verbindung zur lokalen Blockchain auf Port 8545 herzustellen.

Das Entfernen von MetaMask aus Chrome hat den Zweck erfüllt (und später habe ich die aktualisierte Version neu installiert).