Ich habe einen Vertrag abgeschlossen, der ein öffentliches Ereignis auf der Blockchain generiert, das den Kunden über eine Transaktion informiert. Um das Ereignis anzuhören, habe ich folgenden Ausschnitt in die Geth-Konsole geschrieben:
var event = token.CoinTransfer({}, '', function(error, result){
if (!error)
console.log("Coin transfer: " + result.args.amount + " tokens were sent. Balances now are as following: \n Sender:\t" + result.args.sender + " \t" + token.coinBalanceOf.call(result.args.sender) + " tokens \n Receiver:\t" + result.args.receiver + " \t" + token.coinBalanceOf.call(result.args.receiver) + " tokens" )
});
Anstelle von console.log()
möchte ich nun, dass diese Transaktion in einer Textdatei gespeichert wird TransactionHistory.txt
. Wie können wir das tun? Gibt es einen besseren Weg als das Abhören von Ereignissen, um Transaktionsprotokolle zu verwalten?
Wahrscheinlich ist es am besten, wenn Sie das Skript sowieso aus einer Datei ausführen
geth --exec 'loadScript("/tmp/test.js")' attach
Dann können Sie die Ausgabe beispielsweise in Linux und Mac steuern:
geth --exec 'loadScript("/tmp/checkbalances.js")' attach > log.txt
Die Geth-Konsole ist im Grunde eine Teilmenge von Javascript, sodass Sie auf console.log
die Antwort von @Roland beschränkt sind, auf eine Datei umzuleiten.
Sie haben mehr Flexibilität, indem Sie Ethereum JSON-RPC verwenden (siehe Filter). Sie können eine Vielzahl von Sprachen für JSON-RPC (einige hier ) und seine Funktionen für die E/A verwenden: Sie können beispielsweise Python verwenden .
Suchmaninder
TMOTTM