Ich versuche, die Smart-Contract-Methode (bereitgestellt auf einem Remote-Ethereum-Konto) von meinem Nodejs-DAPP aufzurufen, und erhalte die folgende Fehlermeldung:
Error: authentication needed: password or unlock
at Object.InvalidResponse (D:\dapp\node_modules\web3\lib\web3\errors.js:38:16)
Mein web3-DAPP-Code sieht so aus:
var ABI = [abiinterface];
var contract = web3.eth.contract(ABI);
var contractInstance = contract.at(accAddress);
Ich habe den Entsperrcode auf meiner Geth-Konsole mit personal.unlockAccount("address") ausgeführt, der "true" zurückgegeben hat, aber immer noch den Fehler "Authentifizierung erforderlich: Passwort oder Entsperren" in der DAPP erhalten. Jede Hilfe oder Hinweise werden sehr geschätzt. Danke.
Stellen Sie zunächst sicher, dass Sie ein Konto haben.
web3.personal.listAccounts
Wenn Sie []
...
web3.personal.newAccount()
Versuchen Sie es nochmal.
Dann ...
web3.personal.unlockAccount(web3.personal.listAccounts[0],"<password>", 15000)
Das heißt, entsperren Sie das erste Konto mit diesem Passwort für 15.000 Sekunden (nerven Sie mich eine Weile nicht.)
Die DAPP-Seite sollte aufhören, sich über die Sperre zu beschweren.
Ich hoffe es hilft.
Ich stand vor einem ähnlichen Problem. Stellen Sie sicher, dass die folgenden 3 Dinge beachtet werden:
web3.personal.unlockAccount(web3.personal.listAccounts[0],"MyPassword", 15000)
. In meinem Fall war es das erste Konto selbst.Bei diesem Fehler geht es darum, das Konto auf Ihrem Ethereum-Knoten zu entsperren. Die Schwierigkeit besteht darin, die verborgene Ursache zu erkennen. Einige Fehler in web3js würden das gleiche Problem verursachen:
Zum Beispiel
web3.eth.personal.unlockAccount(_senderAddress, password, 0).then(
...
)
würde dieses Problem ausgeben, da es nicht auf die Entsperrung warten wird. Verwenden Sie also einen Rückruf oder warten Sie.
web3.eth.personal.unlockAccount(_senderAddress, password, 0).then(
isunlocked => {
}
})
Zhanbolat Nurutdin
Richard Horrocks
Zhanbolat Nurutdin
Malone