Python
web3.py - 等待回調
我正在嘗試弄清楚如何使用 Web3 過濾器,因為我需要將後端與我的區塊鏈同步。
理想情況下,我希望每次交易發生時觸發一個函式。
根據此處的範例,我讓它工作正常,但這僅適用於互動式外殼。如果在 Python 腳本中執行,它只會同步執行並立即終止。這是程式碼:
import sys from web3 import Web3, IPCProvider from web3.utils.filters import TransactionFilter w3 = Web3(IPCProvider('/x/x/x/ethereum/geth.ipc')) def new_transaction_callback(transaction_hash): sys.stdout.write("New Block: {0}".format(transaction_hash)) new_transaction_filter = w3.eth.filter('pending') new_transaction_filter.watch(new_transaction_callback)
無限期等待並在事務發生時執行回調的正確方法是什麼?
如果在 Python 腳本中執行,它只會同步執行並立即終止。
在腳本完成後,有多種方法可以讓您的執行時保持活力。幾個選項是:
- 呼叫你的腳本
python -i my_script.py
- 附加
while True: time.sleep(10)
到您的腳本,只需Ctrl
+C
退出- 還有很多…