-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Add error message for eth_getTransactionReceipt when ancient blocks haven't been downloaded yet (warp-sync) #9188
Comments
Was your node fully synced (with blocks older than the snapshot)? |
Hmm, my ancient block download seems to be getting stuck at #54. I'll have to look into that separately. I didn't know about the ancient block backfill, that makes sense. Thanks! But the RPC should still return an error saying "The receipt may or may not exist, but we won't know until we're done syncing" rather than |
A better error message would be nice yes. I edited your title. |
Is there a way to download only event logs after warp sync? |
No it's not possible. a full sync needs something like a couple days depending on your hardware. |
Is it possible to track the progress of this backfill? The block numbers in logs are unordered
|
@olekon what you experience (unordered download of older blocks) is not related to the OP and looks like a bug. Could you please open a dedicated issue? |
#9212 is about logs not available for older blocks, that's fine. Now we shouldn't discuss anything else such as "the block numbers in logs are unordered". This is a different issue that I ask you to open :) |
Related #7411. |
Might be quite difficult to implement, would require the warp snapshot to actually contain all transaction hashes that are expected to be in the ancient blocks. I think much better approach in general would be to fallback to light-like mode, so if we don't find a transaction hash and we know that we warped we query peers for that hash. |
* closes #9188 * check_for_unavailable_block in eth_getTransactionByHash eth_getTransactionByBlockHashAndIndex eth_getTransactionByBlockNumberAndIndex eth_getTransactionReceipt * check for unavailable block in eth_getBlockByNumber * corrected checks for unavailable_block * check for block gaps in db * corrected error messages * corrected error information * added allow-empty-block-result cli flag * address grumbles * --jsonrpc-allow-missing-blocks * fix tests * added checks to block_transaction_count_by_hash block_transaction_count_by_number block_uncles_count_by_hash block_uncles_count_by_number uncle_by_block_hash_and_index uncle_by_block_number_and_index fix PR grumbles * Update parity/cli/mod.rs revert config name Co-Authored-By: seunlanlege <[email protected]> * Update parity/cli/mod.rs revert cli arg Co-Authored-By: seunlanlege <[email protected]> * Apply suggestions from code review revert config name Co-Authored-By: seunlanlege <[email protected]> * fix PR grumbles * fix more PR grumbles
* closes #9188 * check_for_unavailable_block in eth_getTransactionByHash eth_getTransactionByBlockHashAndIndex eth_getTransactionByBlockNumberAndIndex eth_getTransactionReceipt * check for unavailable block in eth_getBlockByNumber * corrected checks for unavailable_block * check for block gaps in db * corrected error messages * corrected error information * added allow-empty-block-result cli flag * address grumbles * --jsonrpc-allow-missing-blocks * fix tests * added checks to block_transaction_count_by_hash block_transaction_count_by_number block_uncles_count_by_hash block_uncles_count_by_number uncle_by_block_hash_and_index uncle_by_block_number_and_index fix PR grumbles * Update parity/cli/mod.rs revert config name Co-Authored-By: seunlanlege <[email protected]> * Update parity/cli/mod.rs revert cli arg Co-Authored-By: seunlanlege <[email protected]> * Apply suggestions from code review revert config name Co-Authored-By: seunlanlege <[email protected]> * fix PR grumbles * fix more PR grumbles
A warp-synced full node returns empty responses to
eth_getTransactionReceipt
RPC requests for transactions before the snapshot point.I assume Parity does not back fill transaction receipts from ancient blocks in warp mode, but the current behavior seems broken. The RPC should either return an error if the receipt is missing or fetch it on demand.
The text was updated successfully, but these errors were encountered: