Con Kolivas
bbb092e0da
Make the stratum recv buffer larger than the recvsize.
12 years ago
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.
12 years ago
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.
12 years ago
Con Kolivas
b5617734fa
Provide locking around stratum send operations to avoid races.
12 years ago
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.
12 years ago
Con Kolivas
fa4c9bf60f
Use a more robust mechanism to obtain a \n terminated string over a socket.
12 years ago
Con Kolivas
2de951518e
Abstract out share submit as a function to be useable by stratum.
12 years ago
Con Kolivas
739cba28a7
Rename parse_stratum to parse_method as it is only for stratum messages that contain methods.
12 years ago
Con Kolivas
9180a557c3
Count each stratum notify as a getwork equivalent.
12 years ago
Con Kolivas
aa6aa29c4d
Check that stratum is already active in initiate_stratum to avoid de-authorising ourselves by subscribing again.
12 years ago
Con Kolivas
7415d7aaa0
Begin implementing a hash database of submissions and attempt sending results.
12 years ago
Con Kolivas
ac47f7f3a6
Store and display stripped url in its own variable.
12 years ago
Con Kolivas
636f4b14d7
Generate the work target in gen_stratum_work, setting default diff to 1 in case it is not yet set.
12 years ago
Con Kolivas
1f6fe55152
Generate the coinbase for generation of stratum based work.
12 years ago
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.
12 years ago
Con Kolivas
1221a80d41
Rename nonce2 to n2size reflecting that it's a size variable and not the actual nonce.
12 years ago
Con Kolivas
56255a0c86
Create a stratum thread per pool that has stratum that monitors the socket and serves received data.
12 years ago
Con Kolivas
31c3759ecd
Check return value of stratum_parse.
12 years ago
Con Kolivas
ac9a4378d1
Complete authorisation in stratum.
12 years ago
Con Kolivas
331026595f
Implement stratum parsing of notify parameters and storing them in the pool stratum work structure.
12 years ago
Con Kolivas
9d4a44e88e
Create helper functions for duplicating json strings to avoid keeping json references in use.
12 years ago
Con Kolivas
b86a893981
Append \n in the sock_send function instead of adding it when constructing json in stratum.
12 years ago
Con Kolivas
d416d22381
Don't keep any json references around with stratum structures.
12 years ago
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.
12 years ago
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.
12 years ago
Con Kolivas
07e6bd1262
Provide a helper function for reading a single \n terminated string from a socket.
12 years ago
Con Kolivas
f6f43500c0
Detect stratum in common place when adding urls, and use a bool to tell us when it's active.
12 years ago
Con Kolivas
8fd149eec9
Fix warnings.
12 years ago
Con Kolivas
e3f1b02e9a
Extract and store various parameters on stratum init confirming successful mining notify.
12 years ago
Con Kolivas
c0de671c4f
Use existing socket macros and close the socket on failure in init stratum.
12 years ago
Con Kolivas
a1b17229b8
Initiate stratum and grab first json result.
12 years ago
Con Kolivas
58873c1dfa
Get detailed addressinfo from the parsed URL for future raw socket usage when possible. IPV4 only for now.
12 years ago
Con Kolivas
ee3b7865e2
Prepare for getaddrinfo call.
12 years ago
Kano
41dcb10d4c
util.c - bug - proxy - no data end condition
12 years ago
Kano
bd3c98aaaf
Optional WorkTime details with each Accepted/Rejected work item
12 years ago
Kano
e043f5a5aa
bug: remove proxy: from the front of the proxy used
12 years ago
Kano
cef9731fbc
CURL support for individual proxy per pool and all proxy types
12 years ago
Kano
d5f485c517
Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php
12 years ago
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.
13 years ago
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.
13 years ago
Con Kolivas
bc0b14063f
Cope with signals interrupting the nanosleep of nmsleep.
13 years ago
Con Kolivas
3271be145f
Provide a ms based sleep function that uses nanosleep to avoid the inaccuracy of usleep on SMP systems.
13 years ago
ckolivas
1a43f79547
Mingw doesn't support asprintf, use sprintf.
13 years ago
ckolivas
1e9421475c
Timersub is supported on all build platforms so do away with custom timerval_subtract function.
13 years ago
ckolivas
75ea616422
Minor style police on util.c
13 years ago
ckolivas
8f954d40ec
Get rid of unused result warning with asprintf.
13 years ago
Con Kolivas
3267b534a8
Implement rudimentary X-Mining-Hashrate support.
13 years ago
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.
13 years ago
Con Kolivas
268039cc7e
Indentation clean up.
13 years ago
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.
13 years ago