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

281 Commits

Author SHA1 Message Date
Con Kolivas
0ae02c6ec4 Since we will be using calloc_str to put a string into it, convert the function to calloc_strcat which does it automatically. 2012-12-01 08:26:31 +11:00
Con Kolivas
ee8609d9a9 Provide helper functions calloc_str and realloc_strcat to create and extend arbitrary length arrays based on string length. 2012-11-29 12:48:17 +11:00
nelisky
6db7e2e5cf fixes target calc for mips openwrt 2012-11-24 13:12:19 -08:00
Con Kolivas
0b088d8d81 Provide rudimentary support for literal ipv6 addresses when parsing stratum URLs. 2012-11-18 18:08:14 +11:00
Con Kolivas
f14bf5b16c Merge pull request #326 from pshep/error_counters
Error counters
2012-11-17 22:06:49 -08:00
Con Kolivas
b3864d1a94 Support for fractional diffs and the classic just-below-1 share all FFs diff target. 2012-11-15 09:18:58 +11:00
Paul Sheppard
dad6c70420 Merge branch 'master' into error_counters 2012-11-06 09:46:05 -08:00
Con Kolivas
cc7c274543 Manage appropriate response codes for share submission with GBT. 2012-11-05 16:28:52 +11:00
Paul Sheppard
84173c6cc7 missing a break. 2012-11-04 20:38:11 -08:00
Paul Sheppard
9f74e650b3 Tidy up device error counts 2012-11-04 20:17:43 -08:00
Luke Dashjr
c2b5c5ee4c Bugfix: Free old stratum_work data before replacing it 2012-10-30 19:30:11 +11:00
Con Kolivas
c2861d683a There is no need for addrinfo any more. 2012-10-30 19:22:02 +11:00
ckolivas
a2d5783509 server and client sockaddr_in are no longer used in struct pool. 2012-10-30 16:45:27 +11:00
Con Kolivas
48f24223b8 Shorten the initiate stratum connect timeout to 30 seconds. 2012-10-29 12:35:21 +11:00
Con Kolivas
6f4c47ebd2 Make stratum socket fail more robust on windows by disabling the send buffer.
Reuse the same curl handle forcing a new connection instead of risking derefencing.
Add information about submission failure to stratum send.
2012-10-29 12:08:10 +11:00
Con Kolivas
aa97e87a13 Use keepalive with stratum sockets to improve its ability to detect broken connections. 2012-10-28 09:15:45 +11:00
Con Kolivas
d9276557f1 Show only the URL in the status bar to avoid long prefixes making for extra long lines. 2012-10-27 23:20:10 +11:00
Con Kolivas
6d3c880a25 Make sure to check pool stratum curl exists under lock before attempting any recv to not risk dereferencing upon attempting to reinitiate stratum. 2012-10-22 22:48:12 +11:00
Con Kolivas
e575763a80 Avoid redefining macros and align to 4 byte boundaries. 2012-10-22 22:06:00 +11:00
ckolivas
bb4bec98d5 Use select on stratum send to make sure the socket is writeable. 2012-10-17 09:34:32 +11:00
Con Kolivas
99adf397bd Failure to calloc in bin2hex is a fatal failure always so just check for that failure within the function and abort, simplifying the rest of the code. 2012-10-16 19:47:31 +11:00
Con Kolivas
b3d4258940 Provide locking around the change of the stratum curl structures to avoid possible races. 2012-10-16 19:22:48 +11:00
Con Kolivas
e5babfa25b Watch for buffer overflows on receiving data into the socket buffer. 2012-10-15 11:40:32 +11:00
Con Kolivas
2a9b3e33d3 String alignment to 4 byte boundaries and optimisations for bin<->hex conversions. 2012-10-14 09:54:04 +11:00
Con Kolivas
fc72ad5563 Off by one error. 2012-10-12 14:57:42 +11:00
Con Kolivas
9ccfcee6dc Prevent overflows of the port char array in extract_sockaddr. 2012-10-12 14:55:52 +11:00
ckolivas
7f522ef83c Add support for client.get_version for stratum. 2012-10-11 14:23:09 +11:00
Con Kolivas
a533f106fd Update reconnect message to show whole address including port. 2012-10-11 00:08:45 +11:00
Con Kolivas
5226a399c7 Look for null values and parse correct separate array entries for url and port with client reconnect commands for stratum. 2012-10-11 00:06:44 +11:00
Con Kolivas
7c04a00e62 The command for stratum is client.reconnect, not mining.reconnect. 2012-10-10 23:56:24 +11:00
Con Kolivas
783af8768b Implement rudimentary mining.reconnect support for stratum. 2012-10-10 23:41:29 +11:00
Con Kolivas
974f65c67f Ignore the value of stratum_active on calling initiate_stratum and assume we're always trying to reinitiate it, and set the active flag to false in that function. 2012-10-10 23:22:24 +11:00
Con Kolivas
07605fad60 stratum auth can be unset if we fail to authorise on subsequent calls to auth_stratum which undoes the requirement of setting it in one place so set it in pool_active. 2012-10-10 23:07:33 +11:00
Con Kolivas
ef822a25ed Detect stratum outage based on either select timing out or receiving an empty buffer and properly re-establish connection by disabling the stratum_active flag, coping with empty buffers in parse_stratum. 2012-10-08 11:08:04 +11:00
Con Kolivas
7a01578cc5 Only hand off to stratum from getwork if we succeed in initiating the protocol. 2012-10-06 10:14:30 +10:00
Con Kolivas
ef63ea3151 Drop stratum connect failed message to verbose level only since it's a regular probing message. 2012-10-05 12:45:07 +10:00
Con Kolivas
fa444294bf TCP Keepalive in curl is only in very recent versions and not required with regular messages on stratum anyway. 2012-10-05 12:41:59 +10:00
Con Kolivas
a8d693029a Move stratum sockets to curl infrastructure with locking around send+recv to begin support for proxies and ssl. 2012-10-05 12:37:29 +10:00
Con Kolivas
deb0a9b644 Windows doesn't work with MSG_PEEK on recv so move to a continuously updating buffer for incoming messages. 2012-10-04 23:18:33 +10:00
Con Kolivas
77c5a006aa Alloca is unreliable on windows so use static arrays in util.c stratum code. 2012-10-04 21:00:32 +10:00
Con Kolivas
c113534feb Begin support for mingw stratum build.
Conflicts:
	configure.ac
2012-10-04 17:52:35 +10:00
Con Kolivas
2fae906440 Don't try to parse unneeded parameters in response to mining.subscribe. 2012-10-03 21:10:30 +10:00
Con Kolivas
9698858abc Remove the sshare hash entry if we failed to send it. 2012-10-03 18:19:31 +10:00
Con Kolivas
3cb373d692 Change notify message to info level to avoid spamming repeatedly when a pool is down. 2012-10-03 12:01:29 +10:00
Con Kolivas
1b7aa48c8f Initiate stratum the first time in pool_active only, allowing us to switch to it on getting a failed getwork and detecting the presence of stratum on the url at that time. 2012-10-02 11:46:48 +10:00
Con Kolivas
d122a789ed Use 5 second timeout on sock full for now as a temporary workaround. 2012-10-02 10:19:45 +10:00
Con Kolivas
d851bf3d65 Revert "Don't wait on select when first detecting stratum, just receive one line."
This reverts commit 496af92afd.

Not quite right.
2012-10-02 10:10:52 +10:00
Con Kolivas
496af92afd Don't wait on select when first detecting stratum, just receive one line. 2012-10-02 10:06:37 +10:00
Con Kolivas
bbb092e0da Make the stratum recv buffer larger than the recvsize. 2012-10-02 09:08:47 +10:00
Con Kolivas
2941febd05 Store a sockaddr url of the stripped url used in determining sockaddr to not confuse it with the stratum url and fix build warnings. 2012-10-02 00:00:55 +10:00
Con Kolivas
eaf7ed0dcd Detect if a getwork based pool has the X-Stratum header on startup, and if so, switch to the stratum based pool. 2012-10-01 22:13:20 +10:00
Con Kolivas
b5617734fa Provide locking around stratum send operations to avoid races. 2012-09-30 23:10:43 +10:00
Con Kolivas
8baac0d66d Submit shares from stratum through the abstracted submit share function detecting what message they belong to and showing the data from the associated work, and then deleting it from the hash. 2012-09-30 23:03:45 +10:00
Con Kolivas
fa4c9bf60f Use a more robust mechanism to obtain a \n terminated string over a socket. 2012-09-30 22:40:41 +10:00
Con Kolivas
2de951518e Abstract out share submit as a function to be useable by stratum. 2012-09-30 20:24:24 +10:00
Con Kolivas
739cba28a7 Rename parse_stratum to parse_method as it is only for stratum messages that contain methods. 2012-09-30 19:19:46 +10:00
Con Kolivas
9180a557c3 Count each stratum notify as a getwork equivalent. 2012-09-30 19:11:22 +10:00
Con Kolivas
aa6aa29c4d Check that stratum is already active in initiate_stratum to avoid de-authorising ourselves by subscribing again. 2012-09-29 17:06:48 +10:00
Con Kolivas
7415d7aaa0 Begin implementing a hash database of submissions and attempt sending results. 2012-09-29 16:10:13 +10:00
Con Kolivas
ac47f7f3a6 Store and display stripped url in its own variable. 2012-09-29 14:16:16 +10:00
Con Kolivas
636f4b14d7 Generate the work target in gen_stratum_work, setting default diff to 1 in case it is not yet set. 2012-09-29 11:38:52 +10:00
Con Kolivas
1f6fe55152 Generate the coinbase for generation of stratum based work. 2012-09-29 02:16:22 +10:00
Con Kolivas
1f64491f62 The number of transactions is variable so make merkle a variable length dynamically allocated array and track how many there are for stratum. 2012-09-29 01:48:01 +10:00
Con Kolivas
1221a80d41 Rename nonce2 to n2size reflecting that it's a size variable and not the actual nonce. 2012-09-29 01:03:23 +10:00
Con Kolivas
56255a0c86 Create a stratum thread per pool that has stratum that monitors the socket and serves received data. 2012-09-28 18:01:33 +10:00
Con Kolivas
31c3759ecd Check return value of stratum_parse. 2012-09-28 10:37:42 +10:00
Con Kolivas
ac9a4378d1 Complete authorisation in stratum. 2012-09-28 10:31:45 +10:00
Con Kolivas
331026595f Implement stratum parsing of notify parameters and storing them in the pool stratum work structure. 2012-09-28 10:18:58 +10:00
Con Kolivas
9d4a44e88e Create helper functions for duplicating json strings to avoid keeping json references in use. 2012-09-28 09:57:42 +10:00
Con Kolivas
b86a893981 Append \n in the sock_send function instead of adding it when constructing json in stratum. 2012-09-28 05:30:36 +10:00
Con Kolivas
d416d22381 Don't keep any json references around with stratum structures. 2012-09-28 05:26:29 +10:00
Con Kolivas
7e2dcc6fff Create parse_stratum function that hands off stratum parameters to other functions to manage pool stratum work struct variables.
Implement mining difficulty setting.
2012-09-28 05:16:52 +10:00
Con Kolivas
a6f1a62220 Create helper functions for checking when a socket is ready to read on and receive a single line at a time.
Begin stratum authorisation process.
2012-09-28 04:35:16 +10:00
Con Kolivas
07e6bd1262 Provide a helper function for reading a single \n terminated string from a socket. 2012-09-27 13:50:05 +10:00
Con Kolivas
f6f43500c0 Detect stratum in common place when adding urls, and use a bool to tell us when it's active. 2012-09-27 09:06:56 +10:00
Con Kolivas
8fd149eec9 Fix warnings. 2012-09-26 16:51:08 +10:00
Con Kolivas
e3f1b02e9a Extract and store various parameters on stratum init confirming successful mining notify. 2012-09-26 16:49:51 +10:00
Con Kolivas
c0de671c4f Use existing socket macros and close the socket on failure in init stratum. 2012-09-26 15:40:26 +10:00
Con Kolivas
a1b17229b8 Initiate stratum and grab first json result. 2012-09-26 15:23:01 +10:00
Con Kolivas
58873c1dfa Get detailed addressinfo from the parsed URL for future raw socket usage when possible. IPV4 only for now. 2012-09-25 20:23:59 +10:00
Con Kolivas
ee3b7865e2 Prepare for getaddrinfo call. 2012-09-25 05:46:07 +10:00
Kano
41dcb10d4c util.c - bug - proxy - no data end condition 2012-09-21 20:55:48 +10:00
Kano
bd3c98aaaf Optional WorkTime details with each Accepted/Rejected work item 2012-09-15 14:04:57 +10:00
Kano
e043f5a5aa bug: remove proxy: from the front of the proxy used 2012-09-12 08:32:00 +10:00
Kano
cef9731fbc CURL support for individual proxy per pool and all proxy types 2012-09-12 07:44:00 +10:00
Kano
d5f485c517 Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php 2012-08-23 19:20:12 +10:00
Con Kolivas
8745ba1e6d Windows' timer resolution is limited to 15ms accuracy. This was breaking dynamic intensity since it tries to measure below this.
Since we are repeatedly sampling similar timeframes, we can average the gpu_us result over 5 different values to get very fine precision.
2012-08-15 09:38:45 +10:00
Luke Dashjr
9c648c1749 Bugfix: Calculate nsec in nmsleep correctly
The old algorithm (msecs * 1000000) - (sec / 1000000000) gets total nsec,
including seconds, since the sec/1e9 should be multiplying. It's also
vulnerable to easy overflows. Using ldiv gets the quotient and remainder
in a single operation (at least on x86) and avoids overflow.
2012-07-11 20:10:52 +00:00
Con Kolivas
bc0b14063f Cope with signals interrupting the nanosleep of nmsleep. 2012-07-08 21:35:19 +10:00
Con Kolivas
3271be145f Provide a ms based sleep function that uses nanosleep to avoid the inaccuracy of usleep on SMP systems. 2012-07-06 15:01:39 +10:00
ckolivas
1a43f79547 Mingw doesn't support asprintf, use sprintf. 2012-07-01 12:02:10 +10:00
ckolivas
1e9421475c Timersub is supported on all build platforms so do away with custom timerval_subtract function. 2012-07-01 10:44:23 +10:00
ckolivas
75ea616422 Minor style police on util.c 2012-07-01 10:35:08 +10:00
ckolivas
8f954d40ec Get rid of unused result warning with asprintf. 2012-07-01 10:17:12 +10:00
Con Kolivas
3267b534a8 Implement rudimentary X-Mining-Hashrate support. 2012-06-28 10:43:52 +10:00
ckolivas
c5a21fabf0 Extend nrolltime to support the expiry= parameter. Do this by turning the rolltime bool into an integer set to the expiry time. If the pool supports rolltime but not expiry= then set the expiry time to the standard scantime. 2012-06-23 23:43:22 +10:00
Con Kolivas
268039cc7e Indentation clean up. 2012-04-28 00:32:47 +10:00
Con Kolivas
eda382990a Create one longpoll thread per pool, using backup pools for those pools that don't have longpoll.
Use the work created from the longpoll return only if we don't have failover-enabled, and only flag the work as a longpoll if it is the current pool.
This will work around the problem of trying to restart the single longpoll thread on pool changes that was leading to race conditions.
It will also have less work restarts from the multiple longpolls received from different pools.
2012-04-27 11:58:47 +10:00
Con Kolivas
9609dbc42d Set lp_path to NULL after free for consistency. 2012-04-20 21:09:37 +10:00
nelisky
17b9baa9da Removing dmalloc import left behind by mistake 2012-04-20 03:36:42 -07:00