Go-Ethereum
當我收到乙太幣時,如何從 geth 收到通知?
當我的帳戶收到乙太幣時,我想從 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
文件,編輯YOURADDRESS
並PORT
根據您使用的客戶端,不要忘記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)