Go-Ethereum

當我收到乙太幣時,如何從 geth 收到通知?

  • August 4, 2019

當我的帳戶收到乙太幣時,我想從 geth 收到通知。我正在考慮eth_getBalance每分鐘輸入 api 命令,以檢查我的帳戶是否收到乙太幣。但是,我認為這不是一個好方法。

你能告訴我更好的方法以便從 geth 獲得通知嗎?

我個人通過電子郵件在提供此類服務的https://etherscan.io上註冊了我的地址。

如果你真的想自己做,我能想到的最簡單的方法是註冊一個啟動包含curl eth_getbalance呼叫的 getBalance.sh 腳本的 cron 作業。

crontab -e因此,在末尾輸入並編輯文件:

*/5 * * * * /home/youruser/getBalance.sh

這將每 5 分鐘觸發一次 getBalance.sh 腳本,根據您的需要進行更改。

像這樣創建/home/youruser/getBalance.sh文件,編輯YOURADDRESSPORT根據您使用的客戶端,不要忘記chmod +x它:

#!/bin/bash
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["YOURADDRESS", "latest"],"id":1}' 'http://localhost:PORT'

編輯:這是完全未經測試的!

edit2:測試了名為getBalance.py. 這是一個非常粗略的腳本,可以插入到您的 cron 作業中,而不是 getBalance.sh,它只列印“toto”,但您可以使用它發送/簡訊/任何您認為合適的東西。

import requests
import json
def balance(address, url):

       postData = {"jsonrpc":"2.0","method":"eth_getBalance","params":[address, "latest"],"id":1}
       #print('p: {}'.format(postData))
       response = requests.post(url, data=json.dumps(postData))
       print(response.json())
       result = response.json()
       return result['result']

def writebalance(balance):
       with open('getBalance.txt', 'w') as f:
               f.write(balance)

def readbalance():
       with open('getBalance.txt', 'r') as f:
               bal = f.read()
       return bal


if __name__ == '__main__':
       oldbalance = readbalance()
       newbalance = balance("YOURADDRESS", 'http://localhost:8545')
       if int(newbalance, 16) - int(oldbalance, 16) >0:
               print('toto')
       writebalance(newbalance)

引用自:https://ethereum.stackexchange.com/questions/1732