Я заключил контракт, который генерирует публичное событие в блокчейне, которое уведомляет клиента о транзакции. Чтобы прослушать событие, я написал следующий фрагмент в консоли geth:
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" )
});
Теперь вместо этого console.log()
я хочу, чтобы эти транзакции хранились в текстовом файле TransactionHistory.txt
. Как мы можем это сделать? Есть ли лучший способ, чем прослушивание событий, вести журналы транзакций?
Вероятно, лучше всего, чтобы вы все равно выполняли скрипт из файла.
geth --exec 'loadScript("/tmp/test.js")' attach
Затем вы можете направить вывод, например, в Linux и Mac:
geth --exec 'loadScript("/tmp/checkbalances.js")' attach > log.txt
Консоль Geth в основном является подмножеством Javascript, поэтому вы ограничены, console.log
и ответ @Roland о перенаправлении в файл может быть выполнен.
Вы получаете больше гибкости, используя Ethereum JSON-RPC (см. фильтры). Вы можете использовать широкий спектр языков для JSON-RPC (некоторые здесь ) и его возможности для ввода-вывода: например, вы можете использовать Python .
Сухманиндер
ТМОТТМ