mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
Merge pull request #2060 from sipa/parallel
Parallel script verification
This commit is contained in:
commit
0e31ae9818
9 changed files with 342 additions and 41 deletions
20
src/init.cpp
20
src/init.cpp
|
|
@ -84,6 +84,10 @@ void Shutdown(void* parg)
|
|||
fShutdown = true;
|
||||
nTransactionsUpdated++;
|
||||
bitdb.Flush(false);
|
||||
{
|
||||
LOCK(cs_main);
|
||||
ThreadScriptCheckQuit();
|
||||
}
|
||||
StopNode();
|
||||
{
|
||||
LOCK(cs_main);
|
||||
|
|
@ -303,6 +307,7 @@ std::string HelpMessage()
|
|||
" -checklevel=<n> " + _("How thorough the block verification is (0-4, default: 3)") + "\n" +
|
||||
" -loadblock=<file> " + _("Imports blocks from external blk000??.dat file") + "\n" +
|
||||
" -reindex " + _("Rebuild blockchain index from current blk000??.dat files") + "\n" +
|
||||
" -par=N " + _("Set the number of script verification threads (1-16, 0=auto, default: 0)") + "\n" +
|
||||
|
||||
"\n" + _("Block creation options:") + "\n" +
|
||||
" -blockminsize=<n> " + _("Set minimum block size in bytes (default: 0)") + "\n" +
|
||||
|
|
@ -484,6 +489,15 @@ bool AppInit2()
|
|||
fDebug = GetBoolArg("-debug");
|
||||
fBenchmark = GetBoolArg("-benchmark");
|
||||
|
||||
// -par=0 means autodetect, but nScriptCheckThreads==0 means no concurrency
|
||||
nScriptCheckThreads = GetArg("-par", 0);
|
||||
if (nScriptCheckThreads == 0)
|
||||
nScriptCheckThreads = boost::thread::hardware_concurrency();
|
||||
if (nScriptCheckThreads <= 1)
|
||||
nScriptCheckThreads = 0;
|
||||
else if (nScriptCheckThreads > MAX_SCRIPTCHECK_THREADS)
|
||||
nScriptCheckThreads = MAX_SCRIPTCHECK_THREADS;
|
||||
|
||||
// -debug implies fDebug*
|
||||
if (fDebug)
|
||||
fDebugNet = true;
|
||||
|
|
@ -579,6 +593,12 @@ bool AppInit2()
|
|||
if (fDaemon)
|
||||
fprintf(stdout, "Bitcoin server starting\n");
|
||||
|
||||
if (nScriptCheckThreads) {
|
||||
printf("Using %u threads for script verification\n", nScriptCheckThreads);
|
||||
for (int i=0; i<nScriptCheckThreads-1; i++)
|
||||
NewThread(ThreadScriptCheck, NULL);
|
||||
}
|
||||
|
||||
int64 nStart;
|
||||
|
||||
// ********************************************************* Step 5: verify wallet database integrity
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue