Commit graph

375 commits

Author SHA1 Message Date
Brannon King
897f30df0f made local mining work with segwit, restored scrypt stuff 2021-07-30 12:23:57 -04:00
lbrynaut
a4bb8de94a Add support for lbry mining algorithm. 2021-07-30 12:22:00 -04:00
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