Commit graph

177 commits

Author SHA1 Message Date
pooler
d0caee6e3f
Merge pull request #207 from EchterAgo/alloc_speedup
Reduce memory allocations when generating the merkle root
2020-11-10 14:08:12 +00:00
Axel Gembe
6661ca7e1b
Reduce memory allocations when generating the merkle root
When generating the merkle root, the previous code calls `malloc`
once for every transaction, which is not ideal for performance.

The new code allocates a 32 KiB buffer once and reuses it for all
transactions. If a TX is bigger than the current buffer size, the
buffer is reallocated with double the current buffer size.
2020-11-10 18:43:25 +07:00
Axel Gembe
1abe346537
Speed up generation of TX buffer in merkle root generation
The `gbt_work_decode` function builds a long string of all the
transactions (`work->txs`) when generating the merkle root. This
is done inefficiently using `strcat` on the beginning of the
buffer for each TX. `strcat` will take more time the longer the
string is.

To fix this, we keep track of the end of the end of the string and
use `strcpy` to directly write the current TX there.
2020-11-10 18:40:44 +07:00
Jonathan Toomim
24ff5fa1e2 Correct BIP34 height encodings for heights 1-16 2020-09-06 20:11:58 -07:00
pooler
7e8960212f Add support for bech32 addresses (BIP 173) 2019-01-08 17:38:06 +01:00
pooler
46e919f93c Add basic Segwit support 2017-04-28 12:49:35 +02:00
pooler
96c3676d88 Fix memory leak in the long polling thread 2016-04-21 23:44:55 +02:00
pooler
aa07150158 Fix memory leaks affecting getblocktemplate 2016-03-15 20:31:49 +01:00
pooler
426fe09f9e Version 2.4.3 2016-01-24 19:31:58 +01:00
pooler
1e0274f77d Emit a warning on unrecognized block versions 2015-12-30 18:12:11 +01:00
pooler
cac0976509 Allow block version 4 2015-11-15 16:38:32 +01:00
pooler
ef6f5beeae Add support for Stratum over TLS 2015-04-07 10:41:04 +02:00
pooler
07fb67e8af Allow block version 3 2015-02-28 20:09:16 +01:00
pooler
3c01c36707 Version 2.4.1 2015-02-25 23:57:04 +01:00
pooler
9373a5c433 Add optimized PowerPC code 2015-02-25 14:06:40 +01:00
pooler
4611186cb8 Support arbitrary-size arguments to mining.submit
Fixes #87
2015-02-14 19:38:25 +01:00
pooler
2d92d6604b getblocktemplate: ignore higher bits of "version"
Allows use of getblocktemplate with merge-mined cryptocurrencies
that store the chain ID in the block version.
2015-01-05 19:23:33 +01:00
pooler
be1b725270 Add support for scrypt(N, 1, 1) 2014-05-25 19:14:54 +02:00
pooler
a988337f52 Switch to getwork if no payout address is provided 2014-05-22 12:10:08 +02:00
pooler
a5430f73e1 Add a configure option to disable assembly code 2014-05-16 16:39:04 +02:00
pooler
f76c4d6273 Hide passwords on the command line
Closes #76
2014-05-11 12:00:12 +02:00
pooler
b01f8be868 Allow loading multiple configuration files 2014-05-10 11:50:39 +02:00
pooler
d701fecd57 Enhance startup error messages 2014-05-09 17:55:08 +02:00
pooler
788e4a3746 Add option --coinbase-sig 2014-05-09 10:33:12 +02:00
pooler
9c8cad615a getblocktemplate: version/force, version/reduce 2014-05-09 10:33:12 +02:00
pooler
35d8fd82c4 Correct work restart messages 2014-05-09 10:33:12 +02:00
pooler
8a8e0ad81c getblocktemplate: long polling 2014-05-09 10:33:12 +02:00
pooler
106d03882e Avoid fetching too much work when LP is off 2014-05-09 10:33:12 +02:00
pooler
a9e64f41e7 getblocktemplate: submit/coinbase 2014-05-09 10:33:12 +02:00
pooler
30fae0c342 Minimal getblocktemplate support 2014-05-09 10:33:06 +02:00
pooler
42a002c741 Add an option to ignore redirection requests 2014-04-16 10:58:05 +02:00
pooler
c46726b4b7 Disable long polling timeout by default 2014-04-16 10:57:47 +02:00
pooler
9aa776cf94 Add a flags argument to json_rpc_call() 2014-04-14 14:23:47 +02:00
pooler
6b2e46d4ac Allow arbitrary-size job_id and extranonce2 2014-04-11 23:05:35 +02:00
pooler
64a34409e9 Add build details to version information 2014-04-05 15:01:15 +02:00
pooler
dd774a337e Only increment extranonce2 when needed 2014-03-28 11:13:10 +01:00
Kiyoaki Matsugae
d7276fa0cd fix sched_setaffinity parameter : sizeof(cpu_set_t) 2014-03-12 12:05:18 +09:00
pooler
65e196a932 Version 2.3.3 2014-02-27 22:23:51 +01:00
pooler
ab5d1a86d9 Fix CPU affinity on FreeBSD (closes #61) 2014-02-18 17:43:49 +01:00
pooler
3f9d8727dc Make the --url option mandatory 2014-01-18 22:56:48 +01:00
pooler
d7337126b9 Use only g_work_time to check work availability 2014-01-16 18:03:02 +01:00
Lauri Kasanen
c184d91d2c SCHED_IDLE and SCHED_BATCH can only be used with sched_priority 0
The function was randomly failing to drop the priority, because the
field was not initialized - it was random garbage instead of 0, leading
to EINVAL.
2014-01-14 19:50:36 +02:00
Lauri Kasanen
cf573d03ff Mark some variables & function static 2014-01-14 19:50:33 +02:00
pooler
2305536b3b Fix processor count detection with HW_NCPU 2013-12-13 14:30:17 +01:00
pooler
93120a697d Include inttypes.h instead of stdint.h
stdint.h is unavailable on some systems, such as Solaris 8
2013-07-12 18:41:47 +02:00
pooler
e878267239 Add AVX2-enabled functions for x86-64 2013-07-05 18:27:49 +02:00
pooler
7e8ce9c8dd Avoid the use of Stratum in benchmark mode 2013-07-03 18:09:55 +02:00
pooler
236e338463 Do not log per-thread CPU affinity in quiet mode 2013-07-03 17:28:43 +02:00
pooler
092c3fc196 Make benchmark data more realistic 2013-07-03 01:50:39 +02:00
pooler
fcd1162865 Avoid passing NULL to strcmp() in stratum_thread() 2013-06-15 14:10:32 +02:00