seems we had CChainPower classes compare here from Verus, it's slow, bcz of hard
arith_uint256 math in bool operator<(const CChainPower &p1, const CChainPower &p2),
this slows down setBlockIndexCandidates.insert operations in LoadBlockIndexDB(),
so, for faster block index db loading we will use check from Verus only for LWMAPOS
enabled chains.
perfomance test (daemon load time from start):
without fix - 3m42sec
with fix - 39sec
1. libcurl.mk now changed to build against static openssl from deps.
2. but, it won't work with openssl 1.1.1a, bcz of SSL: couldn't create a context: error:00000000:lib(0):func(0):reason(0) ,
so, in test i decided to upgrade openssl to 1.1.1b.
3. original openssl.mk was with many disabled features, i enable all of them,
of course it's don't needed and we need to leave only SSL/TLS things enabled
in OpenSSL build.
4. probably i broke something in Windows and MacOS build.
This commit is only first approach to continue work.
by default when we start komodod only with -gen arg
genproclimit automatically become -1. this behaviour derived
from VRSC after last merge (as i remember, vrsc has -1 by default,
0 - for staking, and >= 1 - for mining and staking), so we need
to set genproclimit=1 if we pass gen and want to actually start
mining.
- added method SetCheckpointData for CChainParams.
- as we can't check asset it or not in CMainParams() constructor, because command line arguments don't initialized at that time, we will execute SetCheckpointData in chainparams_commandline later.
changes was tested in komodo-qt wallet, but additional tests wouldn't be superfluous.