Commit graph

373 commits

Author SHA1 Message Date
pooler 5f02105940 Fix build on Aarch64 2021-04-29 21:18:45 +00:00
pooler b5071a8cc6
Merge pull request #206 from EchterAgo/hex2bin_speedup
Speed up `hex2bin` function
2020-11-10 14:18:35 +00:00
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
pooler 6d40d76752
Merge pull request #205 from EchterAgo/txbuf_speedup
Speed up generation of TX buffer in merkle root generation
2020-11-10 14:08:01 +00:00
pooler 872f02b1f0
Merge pull request #204 from EchterAgo/jsonrpc_speedup
JSONRPC: Increase network performance
2020-11-10 14:06:07 +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 efbceb7bc9
Speed up hex2bin function
The existing function uses `strtol`, which is not very fast.

This replaces the function with a custom hex decoder.
2020-11-10 18:42:38 +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
Axel Gembe 5e1a3b1254
JSONRPC: Preallocate receive buffer based on Content-Length header
Decreases the amount of reallocations needed to receive the response.
2020-11-10 18:35:52 +07:00
Axel Gembe cdb1c92c82
JSONRPC: Increase network performance by reducing the reallocation count
The `all_data_cb` callback was called by `libcurl` with small buffers
causing frequent reallocations, which killed network performance on large
block templates.

The new code decouples content length from allocation size. It starts out
by allocating a minimum of 16 KiB and doubles the buffer size every time
the allocation gets too small. The maximum allowed increase after doubling
is capped to 8 MiB.
2020-11-10 18:35:49 +07:00
pooler 173a497e60
Merge pull request #201 from jtoomim/bip34cscriptfix
Correct BIP34 height encodings for heights 1-16
2020-09-07 14:16:46 +00:00
Jonathan Toomim 24ff5fa1e2 Correct BIP34 height encodings for heights 1-16 2020-09-06 20:11:58 -07:00
pooler 41c4e35677 Use CURLOPT_POSTFIELDS in json_rpc_call() 2020-07-25 15:35:13 +00:00
pooler 8da0556cec Version 2.5.1 2020-06-25 15:02:57 +00:00
pooler af2501c2c7 Use CURLINFO_ACTIVESOCKET where available
Closes #159.
2020-06-24 17:22:36 +00:00
pooler f9ef30f0b2
Merge pull request #180 from tyabu12/update_ubuntu_14.04_to_16.04
Update Ubuntu version 14.04 to 16.04 in Dockerfile
2019-06-11 12:20:44 -05:00
Tomohito YABU 94633de71e Update Ubuntu version 14.04 to 16.04
Ubuntu 14.04 is the end of support.
2019-06-08 08:45:21 +09:00
pooler 7e8960212f Add support for bech32 addresses (BIP 173) 2019-01-08 17:38:06 +01:00
pooler 32464ebfc4 Version 2.5.0 2017-06-22 17:38:48 +02:00
pooler 244ad3b052 README: update comment on nomacro.pl 2017-06-22 13:36:07 +02:00
pooler a9ccc86a82 Fix PowerPC assembly on AIX 2017-06-21 21:24:48 +02:00
pooler 46e919f93c Add basic Segwit support 2017-04-28 12:49:35 +02:00
pooler a0b8895516 Fix #117 2017-04-20 12:40:13 +02:00
pooler de6c6bb882 Merge pull request #116 from junondev/patch-1
Update Makefile.am
2017-04-15 18:37:50 +02:00
junondev 552049db72 Update Makefile.am
Fixed linux build error when trying to LIBCURL_CHECK_CONFIG (INCLUDES is the deprecated version of AM_CPPFLAGS).
2017-04-13 04:36:10 -05:00
pooler 475771d92c Account for 64-bit pointers on PowerPC 2016-11-23 19:06:49 +01:00
pooler a0b83b521c Merge pull request #108 from dersand/master
Add small disclaimer for ./configure flag
2016-08-21 17:49:26 +02:00
Erik Lilja dfacb13456 Add small disclaimer for ./configure flag
Added a comment to make sure the user isn't accidently typing -03 instead of -O3.
2016-08-21 15:16:34 +02:00
pooler a973f7e845 Version 2.4.5 2016-06-10 10:25:21 +02:00
pooler 96c3676d88 Fix memory leak in the long polling thread 2016-04-21 23:44:55 +02:00
pooler 6c504ba77e Version 2.4.4 2016-03-24 15:46:22 +01: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 50ebd35aeb Merge pull request #94 from adriano-io/dev
Modified Dockerfile and Ubuntu Version to 14.04
2015-09-21 14:12:46 +02:00
Adriano 420c4ac982 Modified Dockerfile to reduce the Virtual Memory footprint and total amount of images.
Before modification the total memory footprint was around 3GB and this has now been reduced by ~50%
2015-09-19 15:08:31 +01:00
pooler f3b0aabf35 Add support for VIA PadLock Hash Engine on x86-64 2015-05-17 16:21:30 +02:00
pooler d070009691 Version 2.4.2 2015-04-28 11:29:27 +02:00
pooler 02262ded0c Use SSL certificate with Stratum when provided 2015-04-16 12:59:40 +02: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 35b4288a33 Modify nomacro.pl to expand assembler macros 2015-02-25 14:06:49 +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 9681504048 Check for negative extranonce2_size 2014-08-08 15:04:14 +02: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