Events
事件可以檢索多長時間?
有誰知道可以檢索多長時間的事件?
我在 0x86e5b6d7648b8b994886aeb98e2b4770675e608d 的Kovan 合約上有事件,看來我無法再檢索超過 14 天的事件?
我正在使用的程式碼如下。get 和 watch 都不會檢索超過 14 天的事件。我在今天和 14 天之間沒有任何內容,所以我不知道它是否停止檢索早於幾天的事件,或者是否有限制。
提前感謝您的幫助。
更新:好的,問題似乎是奇偶校驗的“完全同步”的含義與我想像的不同。如果您看到一條線,例如
2017-11-02 15:31:11 #4098136 23/25 對等方 301 MiB 鏈 83 MiB db 0 字節隊列 10 MiB 同步 RPC:1 conn,3 req/s,142 µs
在控制台輸出中,這意味著 Parity 還沒有完全下載所有日誌,它只下載了塊 4098136 的日誌(在這種情況下),即使你看到
2017-11-02 15:31:13 導入 #4569744 1c13…0e14 (0 txs, 0.00 Mgas, 0.81 ms, 0.57 KiB)
let ContractAddr = "0x86E5b6D7648b8B994886aeB98E2B4770675e608D"; // on Kovan optionsShout = { fromBlock: 4289879, toBlock: 'latest', address: ContractAddr, topics: [web3.sha3('__Shout(string)')] } let filter, w; function getLogs() { var filter = web3.eth.filter(optionsShout); console.log("getLogs..."); filter.get(function(error, event) { if (!error) { console.log("Event: " + event); } else { console.log("Error: " + error); } }) } function startFilter() { console.log("Starting filter"); filter = web3.eth.filter(optionsShout); filter.watch(function(error, event) { if (!error) { if (event.blockNumber > optionsShout.fromBlock) { optionsShout.fromBlock = event.blockNumber; displayEvent("event1", event); } } else { console.log("Error: "+error); } }) }
這裡有幾個可能的問題:
您連接的節點可能沒有舊事件,或者可能有禁止您檢索它們的策略。
您請求的日誌範圍可能太寬。這可能會導致節點超時。嘗試找到您的合約有事件的區塊,並僅指定該區塊編號作為範圍。如果這顯示了您的日誌,請嘗試增加範圍,直到找到實際限制在哪裡,然後分批獲取限制在該範圍內的數據。
如果您使用的是元遮罩,那麼在獲取日誌時似乎存在一些錯誤行為。確保您在正確的網路上後,嘗試關閉所有打開的 Chrome 視窗,然後重新打開它。