Closed hb9xar closed 7 years ago
I might just have found the cause.
I did experiment with 'addridxscanlen' and had a rather large value set there (addridxscanlen=75000). Removing this option from the config file did the trick and things are back to normal.
So I suspect there must have been changes in the code that now cause a much higher CPU load if using large values for this parameter.
Oh, yeah thanks for investigating that. The default value for that is now 20 and shouldn't ever need to be changed unless you have special requirements and can't respect the BIP0044 gap limit. Sadly i don't think there's much that can be done about the slow startup there as it actually has to generate absurd numbers of addresses with high scan lengths.
Build plattform is CentOS 7 64bit, go version go1.7.4 linux/amd64
My build from April 2nd was working fine (sorry, I don't have the latest commit hash of that build).
Today, I just updated my test installation to current git master (commit 3fad88d35412f437179460d3187a9fa5ce0d90d2) and rebuilt dcrd, dcrctl and dcrwallet. I have dcrwallet set-up to do solo stake mining.
dcrd and dcrctl seem to work OK
However, dcrwallet seems to get stuck in some kind of loop immediately at startup after entering the private passphrase, causing very high CPU load (test system with 2 vCores, all available CPU resources consumed by dcrwallet). It also does not sync blocks from dcrd.
Sending commands to dcrwallet via dcrctl does kind of work but is terribly slow. I have tried rebuilding the wallet DB from scratch (remove DB and --create from seed), without success. dcrwallet does not sync blocks from dcrd to the wallet. Doing a "getbestblock" to the wallet always returns '0':
Asking dcrd for the bestblock returns:
A pstack of the running dcrwallet process while misbehaving gives: