1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-10 06:48:05 +00:00
Commit Graph

491 Commits

Author SHA1 Message Date
Con Kolivas
6b246a59f3 Handle interruptions to various select calls in util.c 2014-02-16 14:41:58 +02:00
Con Kolivas
cc2aa215a8 Clear pool work on a stratum reconnect message. 2014-02-16 13:57:20 +02:00
Kano
faf63ec036 Modify thread naming to make them easier to identify 2014-02-16 13:56:14 +02:00
Con Kolivas
003b65b7b1 Change stratum strings under stratum_lock in reconnect and free old strings.
Conflicts resolved:
	util.c
2014-02-16 13:38:51 +02:00
Noel Maersk
91d36d097a log: add LOG_DEBUG message on restarting stratum. 2014-02-14 20:51:16 +02:00
Noel Maersk
ed586c4aa5 misc: indentation. 2014-02-14 20:33:38 +02:00
Noel Maersk
abeeff3d45 log: print getaddrinfo() error description.
More debugging for issue 88.
2014-02-14 19:59:59 +02:00
Noel Maersk
a8dfb3ebef pool: add getaddrinfo() LOG_DEBUG messages.
More for issue 88.
2014-02-13 13:40:47 +02:00
Noel Maersk
115eb1ad2f pool: be verbose on which pool failed. 2014-02-13 12:29:35 +02:00
Noel Maersk
87102ecd07 pool: additional debug logging for stratum pools.
Might help in trying to resove issue 88.
2014-02-12 21:11:59 +02:00
Markus Peloquin
bf8e37ce19 Support building in cygwin.
Revised the compiler platform macros. Building goes like
$ AMDAPPSDKROOT= CPPFLAGS=-I/usr/include/ncurses ./configure
2014-02-07 22:31:40 -08:00
Sanjin Trošelj
87e5f35745 VS2010 build: commit elist.h and relevant changes in sgminer.c and util.c
Cherry-picked by veox.

Introduces a segfault. Expect a HEAD reset.
2014-01-28 02:42:56 +02:00
Sanjin Trošelj
5078db8b01 VS2010 build: Prepare util.c
Cherry-picked by veox.
2014-01-28 01:04:04 +02:00
Martin Danielsen
d7e469bd76 Stratum servers can now be named.
The names will be used throughout the display in the program, when not set "Pool 1" will
simply be used instead. The names are not exposed through API yet, it's on my TODO list.

Use "poolname" like this:

	{
		"poolname" : "Example pool",
		"url" : "stratum+tcp://example.com:8080",
		"user" : "y",
		"pass" : "x"
	},

Conflicts:
	sgminer.c
	util.c
2014-01-18 21:05:26 +02:00
Noel Maersk
50066cf3c7 misc: Replace all remaining instances of 'cgminer' with 'sgminer'.
sed again.
2014-01-15 16:36:48 +02:00
Con Kolivas
9628207066 Provide a helper function that can reset cgsems to zero. 2014-01-15 14:28:24 +02:00
Con Kolivas
7d2cee3066 Drop json stratum auth failed message log level to verbose. 2014-01-15 13:35:19 +02:00
Maksym Borodin
8fa5ddfd2c util.c: Decreasing reference count on allocated JSON obects to prevent memory leak 2014-01-14 18:35:56 +02:00
Noel Maersk
e4680ab627 core: allow changing TCP keepalive packet idle time using tcp-keepalive command-line option or config-file option.
This may be useful in certain scenarios. However, server load from keepalive
is increased 6-fold if code is hard-changed from 30 to 5. So, provide it as
an option instead, and use the previous value as a default (30).

Explanation from

015c064396

Kevin's middlecoin fix, CURL TCP keepalive constants lowered:

CURLOPT_TCP_KEEPIDLE from 45 to 5 and CURLOPT_TCP_KEEPINTVL from 30 to
5. Before it'd trigger a keepalive packet after 45 seconds of connection
idle time and then again every 30 seconds. Now it triggers a keepalive
packet after 5 seconds of connection idle time and then again every 5
seconds.

It makes the client more resilient against coin switching pools or just
pools with connection issues in general. It will however add a tiny bit
pressure to the pool server; but a TCP keepalive probe is only about
60-80 bytes, so I don't think it is an issue.
2014-01-12 19:45:31 +02:00
Con Kolivas
5d7c99f389 Revert "Return ETIMEDOUT regardless if we fail in cgsem_mswait since we may be waiting on it on shutdown and the return response is harmless."
This reverts commit 3dcae53e38.
2013-11-06 00:24:16 +11:00
Con Kolivas
3dcae53e38 Return ETIMEDOUT regardless if we fail in cgsem_mswait since we may be waiting on it on shutdown and the return response is harmless. 2013-11-05 21:56:01 +11:00
Con Kolivas
759bd39f17 Avoid the extra generation of a byte flipped hash2 in struct work and directly use the LE work hash. 2013-11-02 11:07:44 +11:00
Con Kolivas
eaaf34a19d Use a non blocking connect with a 1 second select timeout when initiating stratum to allow us to iterate over all IPs returned by getaddrinfo in round robin DNS pools. 2013-10-31 15:07:26 +11:00
Vitalii Demianets
f75fdbbbbe Improve performance of work generation by optimizing hex2bin and bin2hex
sprintf is a very expensive function, do direct translation instead.
2013-10-29 21:56:08 +11:00
Con Kolivas
b424612cce Use a sanity check on timeout on windows. 2013-10-27 13:35:47 +11:00
Con Kolivas
d342bcbe81 Provide a mechanism for informing drivers of updated work templates for stratum and gbt mining. 2013-10-25 11:57:27 +11:00
Con Kolivas
8dcbc86b97 Use windows' own higher resolution time and handlers allowing us to have higher precision absolute timeouts. 2013-10-23 10:19:04 +11:00
Con Kolivas
563cad189e Fix lldiv error in windows cgminer_t calculation. 2013-10-23 09:13:50 +11:00
Con Kolivas
3956382450 Send pthread_cancel to failed completion_timeout that has timed out. 2013-10-18 22:04:21 +11:00
ckolivas
7838af1dc1 Remove unused variables. 2013-10-18 10:51:44 +11:00
ckolivas
0430165f7b Fix cgcompletion return code and free on successful completion. 2013-10-18 10:26:31 +11:00
ckolivas
f826e35765 Provide a cg_completion_timeout helper function for unreliable functions that takes arbitrary functions and parameters and reliably returns. 2013-10-18 10:14:51 +11:00
Con Kolivas
c9c39ac14d Give correct return code in cgsem_mswait 2013-10-14 11:44:13 +11:00
Con Kolivas
6e948d8750 Check for correct timeout error in cgsem_mswait 2013-10-14 11:34:08 +11:00
Con Kolivas
c75ce853a9 Implement a generic cgsem_mswait similar to sem_timedwait 2013-10-14 11:22:57 +11:00
Con Kolivas
d3c215fda6 Provide a lower level __bin2hex function that does not allocate memory itself. 2013-10-12 09:53:21 +11:00
Con Kolivas
7fbe999fa2 Drop logging level for failed to connect to stratum to verbose mode only since we hit it regularly. 2013-10-11 12:00:39 +11:00
Con Kolivas
97b5dd08b2 Limit ms_tdiff to 1 hour as a sanity check. 2013-10-07 23:34:48 +11:00
Con Kolivas
d5e9e08477 Prevent overflows in us_tdiff and ms_tdiff. 2013-10-07 23:33:14 +11:00
Con Kolivas
44b9cf50e3 Limit the duration we wait for reads in BF1 based on time already elapsed to account for other delays such as work restart messages or out of work. 2013-09-26 12:11:25 +10:00
Con Kolivas
466d3beca0 Provide a --disable-libcurl config option to build support for stratum mining only. 2013-09-21 22:49:28 +10:00
Con Kolivas
566a80f05b Cast -1 to (char) to cope with different default char types on ARM. 2013-09-14 10:13:06 +10:00
Con Kolivas
f319d3b910 Use inet_addr instead of inet_network to fix windows build. 2013-09-10 07:02:16 +10:00
Con Kolivas
7570d885da Remove unused pbase variable. 2013-09-08 19:54:18 +10:00
Con Kolivas
89c07fa5c7 Add support for socks4/4a proxies with stratum, and drop back to socks4 support via the global --socks-proxy command to not break previous configurations. 2013-09-08 16:32:44 +10:00
Con Kolivas
f652b1e291 Fix warning on mingw build. 2013-09-08 10:30:32 +10:00
Con Kolivas
770556cdec Use the --socks-proxy option with stratum, changing it to defaulting to socks5 and give appropriate message should it fail to connect. 2013-09-07 09:39:03 +10:00
Con Kolivas
ddbd3ab78e Cope with trailing slashes in stratum urls. 2013-09-07 09:14:12 +10:00
ckolivas
55249db361 Add more debugging messages when negotiating with proxies for stratum. 2013-09-06 13:41:40 +10:00
ckolivas
a589de5a8b Test specifically for socks5h in socks support for stratum. 2013-09-06 10:28:36 +10:00
Con Kolivas
d7003ecccf Add support for socks5 proxy with stratum 2013-09-06 09:21:46 +10:00
Con Kolivas
17019804c1 Provide support for negotiating a stratum connection via http proxies. 2013-09-06 00:34:04 +10:00
Con Kolivas
8fa01556f2 Connect to the proxy URL and port if specified for stratum sockets instead of the pool directly. 2013-09-05 23:21:42 +10:00
Con Kolivas
b783d94c6d Extract any proxy url and port to be used by sockaddr if possible using extract_sockaddr. 2013-09-05 23:14:53 +10:00
Con Kolivas
8ede407df7 Make extract_sockaddr set variables passed to it rather than pool struct members. 2013-09-05 23:10:19 +10:00
Con Kolivas
83b5f62474 Don't decref json values in stratum parsing due to memory corruption. 2013-08-31 22:24:38 +10:00
Con Kolivas
bec40c5b68 Provide base structures for getaddrinfo. 2013-08-31 13:32:40 +10:00
Con Kolivas
c9c61e72c8 Fix win32 build. 2013-08-28 07:05:18 +10:00
Con Kolivas
036c7b73f1 Fix OSX build. 2013-08-25 16:34:07 +10:00
Con Kolivas
79ca14f5e8 Provide an osx fix for cgtimers and a fallback to timevals for all other platforms !linux !win32 !osx. 2013-08-25 15:17:34 +10:00
Con Kolivas
f009347e39 Move two more timer functions out of define macros to enable them to be used by future osx code. 2013-08-25 15:02:01 +10:00
Con Kolivas
ec881c41a4 cgtimer_sub is now the same since cgtimer_t should be the same on all platforms. 2013-08-25 14:59:35 +10:00
Con Kolivas
e1433f8ef8 Use timespecs on windows as cgtimer_t to capitalise on the higher resolution clock changes. 2013-08-22 13:49:22 +10:00
Con Kolivas
d8e2a43712 Abstract out the conversion of system time to an lldiv_t in decimicroseconds. 2013-08-22 12:55:09 +10:00
Con Kolivas
acc1b7df1b Use our own gettimeofday implementation on windows for it to be consistent across ming builds and higher resolution. 2013-08-22 12:24:39 +10:00
Con Kolivas
903d007cb4 Provide cgtimer_sub helper functions. 2013-08-20 22:47:13 +10:00
Con Kolivas
9dc63cee53 Provide cgtimer_to_ms helper functions. 2013-08-20 22:35:38 +10:00
Con Kolivas
7d0c9b5060 Rename cgsleep_prepare_r as cgtimer_time to get time in cgtimer_t format and call cgsleep_prepare_r as a macro for cgtimer_time 2013-08-20 22:27:14 +10:00
Con Kolivas
ee2a5ae8f4 TimeBeginPeriod and TimeEndPeriod do not add significant overhead when run the entire time for cgminer so avoid trying to maintain balanced numbers of them for specific time calls to simplify code. 2013-08-20 20:46:09 +10:00
Con Kolivas
eeac9d81fc Replace all references to the old n*sleep functions with the equivalent cgsleep_*s replacements. 2013-08-20 19:23:49 +10:00
Con Kolivas
7d448cd754 timeGetTime uses huge resources on windows so revert to using timevals for its implementation of cgtimer_t 2013-08-19 23:39:49 +10:00
Con Kolivas
0414bf0960 Quotient/remainder error in ms division. 2013-08-19 21:36:00 +10:00
Con Kolivas
b238139cf9 Provide cgtimer_to_timeval helper functions. 2013-08-19 17:44:45 +10:00
Con Kolivas
09679e9f8b Provide a timeval_to_cgtime helper function to reuse values. 2013-08-19 17:38:20 +10:00
Con Kolivas
09e9091dd7 Simplify cgsleep code for windows by using a typedef for cgtimer_t that resolves to clock resolution, using that internally. 2013-08-19 13:54:56 +10:00
Con Kolivas
404cbdea84 On windows use the higher accuracy timegettime function to really get 1ms clock and timer accuracy. 2013-08-19 13:29:23 +10:00
Con Kolivas
ffa12a138a Fix missed endtimeperiod in overrun timer on windows. 2013-08-18 14:39:26 +10:00
Con Kolivas
ad87db07d9 Make cgsleep_us_r take an int64_t for us. 2013-08-18 14:39:26 +10:00
Con Kolivas
703c7309c2 Make the cgsleep functions build on windows. 2013-08-18 14:39:26 +10:00
Con Kolivas
8114473228 Set high resolution timing on windows within the cgsleep functions. 2013-08-18 11:39:09 +10:00
Con Kolivas
621eb00309 Provide reentrant versions of cgsleep functions to allow start time to be set separately from the beginning of the actual sleep, allowing scheduling delays to be counted in the sleep. 2013-08-18 10:49:52 +10:00
Con Kolivas
0b5edb24f9 Make the nmsleep and nusleep functions use the new cgsleep functions internally till functions are migrated to the new cgsleep API. 2013-08-18 10:36:25 +10:00
Con Kolivas
188210a3d2 Add a ms_to_timespec helper function, and create a cgsleep_ms function that uses absolute timers with clock_nanosleep to avoid overruns. 2013-08-18 10:28:28 +10:00
Con Kolivas
99cbf09dd1 Add a timeraddspec helper function. 2013-08-18 00:38:29 +10:00
Con Kolivas
1bcd9a43b1 Provide a us_to_timespec helper function. 2013-08-18 00:34:01 +10:00
Con Kolivas
2278204ddd Provide a us_to_timeval helper function. 2013-08-18 00:27:33 +10:00
Con Kolivas
a6b1c31742 Add helper functions to convert timespec to timeval and vice versa. 2013-08-18 00:19:47 +10:00
Con Kolivas
e95ad0479f Nonce2 stratum submission is not working with nonce2 lengths >4, revert the buggy __bin2hex function and use bin2hex. 2013-08-13 22:44:22 +10:00
Con Kolivas
87ae66c7e6 Create a work data template when receiving stratum notification, allowing a simple memcpy of the merkle root avoiding more hex2bin conversions on each work generation. 2013-08-13 05:49:32 +10:00
Con Kolivas
46b6b07afa Avoid a potential overflow should a pool specify a large nonce2 length with stratum. 2013-08-12 16:02:20 +10:00
Con Kolivas
5237bf350d Perform merkle bin hex2bin on stratum notify to avoid doing it on each work generation. 2013-08-12 11:36:28 +10:00
Con Kolivas
8bc469e916 Reuse just the one pool coinbase variable in stratum, avoiding more string functions and storage in gen_stratum_work on each work generation. 2013-08-12 11:16:46 +10:00
Con Kolivas
c542e47aa3 Use a nonce2 offset variable for both gbt and stratum to consolidate requirements on work generation. 2013-08-12 10:49:38 +10:00
Kano
eca6ace2d5 util.c update quit call for new functions 2013-08-12 09:00:52 +10:00
Kano
bab9ba9603 use correct define for OSX in util.c 2013-08-12 08:58:20 +10:00
Kano
bd3612c104 util.c expand quit to show file/func/line 2013-08-12 08:38:02 +10:00
Kano
cf30053793 Merge remote-tracking branch 'conman/master' 2013-08-12 08:35:29 +10:00
Con Kolivas
b423fe9de8 Cache the hex2bin of pool nonce1 in stratum, avoiding hex2bin on each work generation. 2013-08-11 14:06:17 +10:00
Con Kolivas
fef649dfef Cache the binary generation of coinbase1 and 2 on stratum, avoiding a hex2bin of coinbase1 and 2 on each work generation. 2013-08-11 13:47:46 +10:00
Kano
48d91c7f2d cgsem - increase information on failure 2013-08-10 10:36:38 +10:00