Wie schreibe ich Transaktionsprotokolle in eine Textdatei in Geth?

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?

Antworten (2)

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
Es wäre besser, wenn es einen Befehl gibt, der "console.log" ersetzt. Auf diese Weise werde ich in der Lage sein, Aufzeichnungen zu bekommen, die ich will, in dem Format, das mir gefällt. Gibt es solche Befehle?
frage mich das gleiche..

Die Geth-Konsole ist im Grunde eine Teilmenge von Javascript, sodass Sie auf console.logdie 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 .