Comments (9)
The expected behavior:
- user restores a wallet using current chain height as restore height
- user calls
scan_tx
with an earlier tx scan_tx
returns immediately
The problem: scan_tx
calls refresh()
, which can take a long time to complete even if the wallet's restore height is set to the current height.
This needs confirmation (repro with the RPC and observe the logs), but I believe refresh is slow to complete even when setting restore height to current height because it's taking a while to get all block hashes from the chain starting from genesis.
Assuming this is the general issue (long-running refresh in scan_tx), the simplest fix for this is probably to remove the call to refresh in scan_tx
, which means the wallet won't have the latest chain state upon completion of scan_tx
. This is probably ok and expected.
The more involved fix is to refactor fast_refresh
and scanning to not need all block hashes from the chain, and to only need hashes starting from the wallet's restore height. The Seraphis lib does this refactoring already, which we're in the process of migrating toward, so I would lean towards the simpler fix for now.
from monero.
Essentially the issue is that calling scan_tx
also calls refresh
which syncs the entire blockchain starting from the tx height.
So this issue is requesting to scan the minimum necessary.
from monero.
@0xFFFC0000 Excuse me, but Is this considered a "question"? because literally scan_tx
takes 10 (or more) minutes to run.
from monero.
@sharifzadesina thank you for reporting this. We will take a look into this.
- This happened after specific updates?
- Have you tried on other systems with other configurations too, and problem was still present?
In the meantime it appears to me @woodser has explained the actual reason.
from monero.
Issue got introduced here: #8566
from monero.
@j-berman Exactly, Thank you.
Even when I set restore height to a higher value, it takes too long to finish.
from monero.
Bump! any update on this?
from monero.
Will fix by end of this week
from monero.
@j-berman Thank you, I wish I could help, I just don't know C++,
from monero.
Related Issues (20)
- Closed HOT 1
- Error compiling on nixos HOT 7
- Expose Expected Block Size to get_block_template RPC
- Daemon sync via GUI; blocks per second sync a lot lower than usual HOT 2
- Mio
- monerod.service - Failed to initiatize p2p server HOT 4
- [Proposal] Deprecate RPC binary strings HOT 7
- Can't `liblmdb` be linked statically? HOT 2
- Monero HOT 2
- Monero sent to the wrong Address. HOT 1
- [Proposal] General rule for minimum package versions and distribution support HOT 5
- Offline wallet RPC "incoming_transfers" method reports tx_hash as 0000...
- [GUI][Restore wallet] 'Create wallet' stays disabled until monero-wallet-gui is closed HOT 4
- Naming for the Implemention HOT 2
- wallet2_api + smart pointers HOT 7
- error: static assertion failed due to requirement 'std::is_pod<boost::uuids::uuid>::value': t_type must be a POD type on mac mini HOT 3
- transfert de xmr de la plateforme Binance à la plateforme monero gui HOT 7
- Ask about transactions that see remote nodes HOT 1
- Help Recover wallet HOT 2
- comment contacter le service client de la plateforme monero Gui svp? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from monero.