gridcoin-community / Gridcoin-Research

Gridcoin-Research
MIT License
584 stars 173 forks source link

Long client load time #112

Closed grctest closed 7 years ago

grctest commented 7 years ago

Phay brought the issue of long client load times up in the 3rd Gridcoin Community Hangout on Mumble on 20/08/2016.

The mumble attendees reported anywhere between 5-10 minutes to launch the client.

I've experienced new users on IRC force closing the client whilst it's in this loading phase because they've become impatient, resulting in the corruption of their wallet.dat/blockchain files, causing further issues.

Force closing the client whilst loading is an user error, but new users or non tech-savvy users may think it's broken and frustrate themselves.

The easiest change to prevent users force closing the client whilst loading would be a message in a new splash image stating "Don't force close the client, it's loading!" https://cryptocointalk.com/topic/49361-contest-create-a-new-wallet-splash-image/

theMarix commented 7 years ago

Given that the data is loading from disk you could even rather easily print some actual progress (128/1234123 blocks loaded) to avoid the impression of the client being stalled.

Erkan-Yilmaz commented 7 years ago

takes about 11 mins on my linux

I remember reading that Rob said that when the memory could be dumped to disk, before exiting, that the next start could be much faster

xXUnRealXx commented 7 years ago

I've tested my wallet on my PC. It took 3min to load while at full load crunching SETI@home.

Wallet: v3.5.7.4-g-research OS Name : Microsoft Windows 10 Pro Processor : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz Disk Drive : Samsung SSD 850 EVO 250GB Memory : 32749MB Uptime : 2425358SEC(673 Hour 42 Minutes 38 Seconds)

gridcoin commented 7 years ago

I like the idea of showing the blocks loaded, every say 10000 or something. Maybe we warn them not to close the wallet or corruption could occur (on the splash). Really this is a code change for a feature and the new splash is a separate change.

The load time itself is not a bug. Test litecoin or bitcoin to establish a baseline.

As Erkan said, we need to open a separate bounty to pay our 2nd dev to create a "fast load" feature by dumping-reloading (unhibernating) memory. (Yes, CM Joe is back - he was able to get jump started after all).

Rob

gridcoin commented 7 years ago

Ill take a look at showing the incremental blocks loaded now...

denravonska commented 7 years ago

How about using QtConcurrent and loading the wallet in the background when the main UI is shown?

gridcoin commented 7 years ago

The wallet needs to load the blocks before it can show anything useful on the UI.

I was able to get the splash working to show the progress (X/Y) Blocks Loaded last night, and I did find an efficiency issue that should shave 30% off the load time.

gridcoin commented 7 years ago

Sending out a release now to address this; please test it