1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-01 18:55:36 +00:00
Commit Graph

470 Commits

Author SHA1 Message Date
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
ckolivas
eb9278ca53 Check for negative wait time in socket_full. 2013-07-19 19:32:57 +10:00
ckolivas
f2ae7fadb2 Adjust socket wait timeout in recv_line according to how long we've already waited to avoid a 60 second wait dropping to 1 second due to a blocked socket. 2013-07-19 19:09:23 +10:00
Con Kolivas
1b5ea442b8 Show an integer only for diff if it is one. 2013-06-21 18:02:38 +10:00
Con Kolivas
6560878e03 Suspend stratum connections when we know they've failed and don't try to recv data from them once the socket no longer exists. 2013-06-16 22:33:49 +10:00
Con Kolivas
13a4aaa61a Failure to read and write on pseudo semaphores on apple happens routinely on shut down so should not be a quit error, just a warning. 2013-06-13 14:31:37 +10:00
Con Kolivas
12a2cb0d3c Demote failed hex2bin result to LOG_INFO and check return result in driver-bflsc to avoid doing find_work_by_midstate. 2013-06-09 22:37:49 +10:00
ckolivas
9b2e517f30 Use cgsem structures instead of the flaky pings in the work queue to start mining threads and remove the unused thr_info_freeze function. 2013-06-09 12:20:04 +10:00
ckolivas
104b14ec7f Failed reads and writes on cgsem_post and cgsem_wait should be extremely rare. 2013-06-06 13:22:12 +10:00
ckolivas
b59c33800b Implement cgminer specific cgsem semaphores to imitate unnamed semaphore behaviour on osx which does not support them. 2013-06-06 13:08:00 +10:00
Con Kolivas
d52ab244ee Provide an nusleep equivalent function to nmsleep. 2013-05-28 23:00:14 +10:00
Con Kolivas
64b08f383b All stratum calls to recv_line are serialised from the one place so there is no need to use locking around recv(). 2013-05-19 10:23:59 +10:00
Con Kolivas
f227515e38 Set pool->probed to true after an attempt to resolve the url via stratum code. 2013-05-18 13:09:01 +10:00
Con Kolivas
3336880e3b Show pool difficulty more verbosely if it changes via stratum. 2013-05-13 22:42:39 +10:00
mhren
c5bfc45233 Update util.c
Apple OS/X does not define MSG_NOSIGNAL.  Use SO_NOSIGPIPE instead
2013-05-11 23:32:57 -05:00
Con Kolivas
3972fe223b Show a different warning and loglevel for failure to resolve a URL on first or subsequent testing of stratum pool URLs. 2013-05-11 15:03:40 +10:00
Con Kolivas
2645797fca Set all stratum sockets to nonblocking to avoid trying to use MSG_DONTWAIT on windows. 2013-05-09 22:04:33 +10:00
Con Kolivas
d89936a96c Fix warnings on win32 build. 2013-05-09 21:10:53 +10:00
ckolivas
832012f61d Only use MSG_NOSIGNAL for !win32 since it doesn't exist on windows. 2013-05-09 13:42:53 +10:00
ckolivas
6acfdbd661 Use MSG_NOSIGNAL on stratum send() 2013-05-09 13:36:34 +10:00
ckolivas
a7cbbc9fc3 Set TCP_NODELAY for !linux for raw sockets. 2013-05-09 12:08:42 +10:00
ckolivas
0676a1a885 Use TCP_NODELAY with raw sockets if !opt_delaynet 2013-05-09 12:00:28 +10:00