Wir verwenden Microsoft Azure und NodeJS auf dem Server. Wenn wir Microsoft Azure über NodeJS ansprechen, erhalten wir manchmal den „Password or Unlock“-Fehler. Aber wenn wir Truffle verwenden und denselben Setter adressieren, funktioniert alles einwandfrei. Was könnte das mögliche Problem sein und was bedeutet dieser Fehler, wenn ich mein Konto entsperrt habe?
Das ist mein Code:
this.web3.eth.getCoinbase()
.then(coinbase => {
console.log("Setter method started!");
return this.contract.methods
.setCopyright(
queryParams.certificateNumber,
queryParams.typeString,
queryParams.nameOfObject,
queryParams.firstName,
queryParams.secondName,
queryParams.lastName
)
.send({
from: coinbase,
gas: 4600000,
gasPrice: '22000'
});
})
.then(resolve)
.catch(err => {
reject(err);
});
Beim Senden einer Transaktion entsperren Sie nicht „persönlich“, sondern entsperren das Konto, das die Transaktion sendet.
In diesem Fall könnten Sie Folgendes tun:
return web3.personal.unlockAccount(ADDRESS, PASSWORD, TIME (if needed) );
.then(do whatever you want after that)
Ich empfehle diese Lösung
personal.unlockAccount(Address, Password, 0)
0 ist zeitlich unbegrenzt entsperren
invalid argument 1: json: cannot unmarshal hex string without 0x prefix into Go value of type hexutil.Bytes
Ich habe eine Lösung gefunden. Falls jemand sie in Zukunft braucht: Zuerst habe ich Multi-Member (Ethereum Leader und Ethereum Member) in Azure erstellt und es hat nicht funktioniert. Dann habe ich alle Gruppen mit mehreren Mitgliedern entfernt und eine Gruppe "Blockchain" erstellt. Und ist korrekt gearbeitet.
Zhanbolat Nurutdin
Wiederholung 122442