Authentifizierung erforderlich: Passwort oder entsperren

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);
        });

Antworten (3)

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)
Entschuldigung, aber ich weiß davon. Ich mache es, und mein Problem ist kein Problem "Unlock Accounted", wenn ich meine Setter-Funktion frage, habe ich manchmal den Fehler "Authentifizierung erforderlich: Passwort oder Entsperren". Aber mein Konto ist entsperrt. Dieser Fehler nur in meinem nodejs-Projekt, aber meine Setter-Funktion beim Truffle-Aufruf korrekt. Warum?
Wenn Ihr Knoten sagt, dass Ihr Konto nicht entsperrt ist, ist dies natürlich nicht der Fall. Ich weiß nicht warum.

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
Die Adresse ist 0x~~~ Sie sollten zuerst ein Konto erstellen

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.