Mit Ubuntu habe ich Wallet/Mist und MetaMask im Ropsten-Testnetz ausprobiert: Beide benachrichtigen mich über fehlerhafte Transaktionen, bevor ich mein Passwort eingebe. Ich habe versucht, dasselbe mit einem JSON-RPC-Server auf normale Weise zu tun. Der Server fährt fort, fehlerhafte Transaktionen ohne Vorankündigung zu senden.
Gibt es in Bezug auf schlechte Transaktionen eine Möglichkeit, den gleichen Effekt von Wallet/Mist/MetaMask mit einem JSON-RPC-Server zu erzielen?
Nein. Ein JSON-RPC-Endpunkt implementiert Funktionen gemäß einer Spezifikation.
Mist/Metamask implementieren die Transaktionsvalidierung innerhalb des Clients, bevor die Transaktion an den unterstützenden Knoten gesendet wird.
In Ihrem Beispiel senden Sie die Transaktion direkt an den Knoten und müssen daher im Voraus die entsprechende Validierung durchführen.
In Wirklichkeit können Sie beliebige Daten an eine Transaktion anhängen, sodass falsch signierte Transaktionsdaten zwar nicht das tun, was Sie erwarten, aber nicht unbedingt ungültig sind.
BEARBEITEN - Weitere Informationen
Wenn Sie erkennen möchten, ob eine Transaktion ausgelöst wird, müssen Sie sie in einer Umgebung ausführen, die den Zustand der Kette nachahmt, und sehen, was passiert.
Geth und Parity implementieren den [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimategas)
Endpunkt, der beim Aufruf mit einem Funktionsaufruf, der auslöst, einen Fehler zurückgibt.
Vincent J. Ruan
Thomas Cloes
eth_estimateGas
. Antwort bearbeitet.Vincent J. Ruan
Vincent J. Ruan