Con Kolivas
3ab92ef6ad
Add pool no. to stale share detected message.
2012-11-24 13:35:00 +11:00
Con Kolivas
850d07dffb
Add info about which pool share became stale while resubmitting.
2012-11-24 12:58:58 +11:00
Con Kolivas
31e43944bc
Do not use or count or use the getworks submitted which are simply testing that pools are still up. This was increasing share leakage and making stats not reflect real work.
2012-11-24 10:58:46 +11:00
Con Kolivas
2d35ac2567
Track all dynamically allocated memory within the work struct by copying work structs in a common place, creating freshly allocated heap ram for all arrays within the copied struct.
...
Clear all work structs from the same place to ensure memory does not leak from arrays within the struct.
Convert the gbt coinbase and stratum strings within the work struct to heap ram.
This will allow arbitrary lengths without an upper limit for the strings, preventing the overflows that happen with GBT.
2012-11-24 10:47:20 +11:00
Con Kolivas
aa72db369e
Provide rudimentary support for the balancing failover strategies with stratum and GBT by switching pools silently on getwork requests.
2012-11-18 23:04:01 +11:00
Con Kolivas
40a3331e72
Remove unintentional block of code in reuse_work.
2012-11-18 22:27:03 +11:00
Con Kolivas
9ad02fe303
Support workid for block submission on GBT pools that use it.
2012-11-18 21:48:44 +11:00
Con Kolivas
61f4e9d604
Revert "Discard all work on longpoll, not just work cgminer recognises as stale."
...
This reverts commit 1470eea903
.
Work block update makes this unnecessary.
2012-11-18 17:22:48 +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
4039ee7a93
Convert pool not responding and pool alive message on backup pools to verbose level only since they mean a single failed getwork.
2012-11-18 16:53:39 +11:00
Con Kolivas
52b86b5137
Update work block on the longpoll work item before calling restart threads to ensure all work but the longpoll work item gets discarded when we call discard_stale from restart_threads.
2012-11-18 16:38:24 +11:00
Con Kolivas
1470eea903
Discard all work on longpoll, not just work cgminer recognises as stale.
2012-11-18 15:54:14 +11:00
Con Kolivas
88983306fd
Do not attempt to remove the stratum share hash after unsuccessful submission since it may already be removed by clear_stratum_shares.
2012-11-18 15:50:04 +11:00
Con Kolivas
d15515bea4
Check against a double for current pool diff.
2012-11-15 13:09:00 +11: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
Con Kolivas
1832dbd7f6
Make header larger on gen stratum work to accomodate \0 at the end.
2012-11-11 22:57:48 +11:00
Con Kolivas
66a9577197
Fix mistaken disabling of opt_restart in other code.
2012-11-11 21:48:07 +11:00
Con Kolivas
89cb14199a
Use stratum block change from backup pools as an alternative to longpoll for pools that don't support LP.
2012-11-11 20:53:27 +11:00
Con Kolivas
38eb4ee43b
Check share target diff for best_share to be calculated when solo mining.
2012-11-11 18:09:46 +11:00
Con Kolivas
7993095ec3
Round some more static string arrays to 4 byte boundaries.
2012-11-11 17:53:20 +11:00
Con Kolivas
17aa87be3a
There is no need for the static arrays to be larger than required, so long as they're 4 byte aligned to appease ARM.
2012-11-11 17:37:58 +11:00
Con Kolivas
149781cf47
Revert "Change default log interval to 3 seconds for faster screen refreshes since vardiff will prevent massive on screen hash updates in the future."
...
This reverts commit f1f6b31faf
.
Screen update frequency is what I wanted to change, not the log interval.
2012-11-11 17:14:55 +11:00
Con Kolivas
298ffcbc9e
Store the full stratum url information in rpc_url for correct configuration file saving.
2012-11-11 17:14:24 +11:00
Con Kolivas
2cf0767cff
Put in a hack to prevent dud work from sneaking into test_work_current being seen as a new block.
2012-11-11 16:33:20 +11:00
Con Kolivas
ad2ed57f12
Reset the work->longpoll flag where it will affect stratum work items as well.
2012-11-11 16:30:09 +11:00
Con Kolivas
1d7e19f2f2
Check for both coinbase/append and submit/coinbase support before using GBT protocol.
2012-11-11 16:10:45 +11:00
Con Kolivas
878f4d53ab
First pass through testing for GBT should not set probed to true since we are about to probe again.
2012-11-11 16:05:39 +11:00
Con Kolivas
598ee76d37
Hash1 is only used by the deprecated cpu mining code and never changes so remove it from the work struct and bypass needing to process the value for all other mining.
2012-11-11 09:51:37 +11:00
Con Kolivas
f1f6b31faf
Change default log interval to 3 seconds for faster screen refreshes since vardiff will prevent massive on screen hash updates in the future.
2012-11-07 23:32:01 +11:00
Con Kolivas
6893c0be43
Get a work item once per second for all getwork and GBT pools to test they're still alive and to maintain a current GBT template.
2012-11-07 23:28:49 +11:00
Paul Sheppard
dad6c70420
Merge branch 'master' into error_counters
2012-11-06 09:46:05 -08:00
Con Kolivas
dd671baaa1
Get a fresh block template with GBT pools on switching to them.
2012-11-06 17:42:49 +11:00
Con Kolivas
be82cc7fba
Reset work flags to prevent GBT shares from being submitted as stratum ones after switching.
2012-11-06 14:01:32 +11:00
Con Kolivas
a47a7886d5
Only retarget stratum shares to new pool diff if diff has dropped.
2012-11-06 11:39:25 +11:00
Con Kolivas
498882d829
Remove resetting of probed variable when detecting GBT.
2012-11-06 10:39:34 +11:00
Con Kolivas
27ce497a7c
Count lost stratum share submits and increase message priority to warning.
2012-11-06 09:50:36 +11:00
Con Kolivas
418d15deba
Only retrieve a new block template for GBT pools that are the current pool.
2012-11-06 09:43:55 +11:00
Paul Sheppard
69f341c5bb
Remove errant counter.
2012-11-05 08:01:15 -08:00
Con Kolivas
75d0a45a10
Show which pool untracked share messages have come from.
2012-11-05 23:47:44 +11:00
Con Kolivas
e0157208ab
Add management for dead GBT pools.
2012-11-05 23:44:00 +11:00
Con Kolivas
9ebc321cd1
Merge branch 'master' into gbt
2012-11-05 23:34:58 +11:00
Con Kolivas
ffb8a29abf
Count lost shares with stratum as submit stale lost.
2012-11-05 23:25:36 +11:00
Con Kolivas
0465fef553
Discard record of stratum shares sent and report lost shares on disconnection since they will never be reported back.
2012-11-05 23:22:36 +11:00
Con Kolivas
0314081157
Swab, don't just swap the bytes in the GBT target.
2012-11-05 22:12:27 +11:00
Con Kolivas
275bb9c05e
Change status window message for GBT connected pools versus LP.
2012-11-05 18:05:25 +11:00
Con Kolivas
1321cb0e0d
Generate a gbt work item from longpoll when required to set new block and message appropriately.
2012-11-05 17:57:33 +11:00
Con Kolivas
10ea5fbf97
Use existing pool submit_old bool from gbt data.
2012-11-05 16:57:48 +11:00
Con Kolivas
f71b423080
Retrieve a new block template if more than 30 seconds has elapsed since the last one to keep the data current and test the pool is still alive.
2012-11-05 16:48:19 +11:00
Con Kolivas
fc94e00fd1
Update GBT longpollid every time we request a new longpoll.
2012-11-05 16:34:44 +11:00
Con Kolivas
cc7c274543
Manage appropriate response codes for share submission with GBT.
2012-11-05 16:28:52 +11:00
Con Kolivas
345e72e66e
Allow the longpoll thread to start with GBT and only set the longpollid once.
2012-11-05 16:17:04 +11:00
Con Kolivas
85f400bf80
Correct last few components of GBT block generation courtesy of Luke-jr.
2012-11-05 15:57:47 +11:00
Con Kolivas
14c436ee1f
Use correct length for offsetting extra nonce and remaining data.
2012-11-05 15:28:07 +11:00
Paul Sheppard
9f74e650b3
Tidy up device error counts
2012-11-04 20:17:43 -08:00
Con Kolivas
a4e78be1ed
Flip all 80 bytes in the flip function which was wrongly named flip256 for its purpose.
2012-11-05 14:56:57 +11:00
Con Kolivas
8bc677a6ca
Calculate midstate for gbt work and remove now unused variable.
2012-11-05 14:44:58 +11:00
Con Kolivas
0ba5f0f94b
Use a standard function for flipping bytes.
2012-11-05 14:02:43 +11:00
Con Kolivas
734f3d1c54
Insert the extra nonce and remaining data in the correct position in the coinbase.
2012-11-05 11:49:22 +11:00
Con Kolivas
611c3164dc
Remove txn size debugging and enlarge gbt block string to prevent overflow.
2012-11-05 10:55:55 +11:00
Con Kolivas
bd384883da
Remove varint display debugging.
2012-11-05 08:39:33 +11:00
Con Kolivas
cb6f0340cd
Build varint correctly for share submission and sleep 5 seconds before retrying submit.
2012-11-05 08:27:20 +11:00
Con Kolivas
88b6f7924c
Make gbt_coinbase large enough for submissions, swap bytes correctly to make a header from GBT and encode the number of transactions in share submission.
2012-11-04 18:01:09 +11:00
Con Kolivas
889ed23934
Store the fixed size entries as static variables in GBT in binary form, byteswapping as is required.
2012-11-04 15:28:13 +11:00
Con Kolivas
cdc3c8779a
32 bit hex encoded variables should be in LE with GBT.
2012-11-04 14:58:24 +11:00
Con Kolivas
2914a5eddf
Target and prevblockhash need to be reversed from GBT variables.
2012-11-04 12:18:59 +11:00
Con Kolivas
6b34faf83c
Construct block for submission when using GBT.
2012-11-04 10:24:09 +11:00
Con Kolivas
59087a5d77
Use same string for debug as for submission and make string larger to cope with future GBT messages.
2012-11-04 08:59:00 +11:00
Con Kolivas
914e88bbad
Skip trying to decipher LP url if we have GBT support.
2012-11-04 08:46:58 +11:00
Con Kolivas
c5c5fb8273
Store all the transaction hashes in pool->txn_hashes instead of separating txn0 and correct generation of merkle root, fixing memory overwrites.
2012-11-04 08:35:50 +11:00
Con Kolivas
5acb182ec1
Hook into various places to generate GBT work where appropriate.
2012-11-04 02:07:45 +11:00
Con Kolivas
875ca0fcc6
Create extra work fields when generating GBT work.
2012-11-04 01:07:01 +11:00
Con Kolivas
2bfb293fe3
Generate header from correct hashing generation of the merkle root for GBT.
2012-11-04 00:52:50 +11:00
Con Kolivas
cbc246eace
Generate the merkle root for gbt work generation.
2012-11-03 19:45:37 +11:00
Con Kolivas
8d0f748246
Create a store of the transactions with GBT in the minimum size form required to generate work items with a varied coinbase.
2012-11-03 13:27:41 +11:00
Con Kolivas
4a72a1574f
Create a function that generates a GBT coinbase from the existing pool variables.
2012-11-01 22:34:08 +11:00
Con Kolivas
813e814f6c
Extract and store the various variables GBT uses when decoding gbt work.
2012-11-01 16:56:54 +11:00
Con Kolivas
432b2636d5
Check for invalid json result in work_decode.
2012-11-01 15:41:32 +11:00
Con Kolivas
56b16953a9
Decode work in separate functions for getwork vs gbt.
2012-11-01 15:40:07 +11:00
Con Kolivas
26e0115030
Check for the coinbase/append mutable in GBT support to decide whether to use it or not.
2012-11-01 15:36:22 +11:00
Con Kolivas
d10699d4c3
Add a gbt mutex within the pool struct for protecting the gbt values.
2012-11-01 14:24:55 +11:00
Con Kolivas
8afc1f6512
Convert work decode function to prepare for decoding block templates.
2012-11-01 14:05:25 +11:00
Con Kolivas
1c456d4fb3
Check for GBT support on first probing the pool and convert to using the GBT request as the rpc request for that pool.
2012-11-01 13:53:12 +11:00
Con Kolivas
f4cc59f25f
Make the rpc request used with getwork a pool variable to allow it to be converted to/from gbt requests.
2012-11-01 13:06:34 +11:00
Con Kolivas
7e17af6913
Merge pull request #322 from luke-jr/bugfix_stratum_tmpwork
...
Bugfix: Initialize temporary stratum work
2012-10-29 21:48:59 -07:00
Con Kolivas
e19c5d9db9
Set sshare id and swork_id within the sshare mutex to avoid multiple share submits with the same id.
2012-10-29 21:28:15 +11:00
Luke Dashjr
280486a748
Bugfix: Initialize temporary stratum work
...
Without this, work.mandatory might have been true skipping block change handling code
This caused newfound shares to be considered stale always, and bitforce devices to constantly restart work
2012-10-29 07:14:29 +00:00
Con Kolivas
d92609e665
Fail on select() failing in stratum thread without needing to attempt recv_line.
2012-10-29 16:47:43 +11:00
Con Kolivas
843fa3397e
Add share to stratum database before sending it again in case we get a response from the pool before it's added.
2012-10-29 16:37:25 +11:00
Con Kolivas
d28a844f61
Shorten the stratum timeout on read to 90 seconds to detect unresponsive pool.
2012-10-29 12:33:25 +11:00
Con Kolivas
c086ef8049
Display best share difficulty on exit.
2012-10-29 12:23:58 +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
cafe9aac54
Only add stratum share to database if we succeeded in submitting it, with a debug output saying it succeeded.
2012-10-28 14:43:47 +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
2e56706cc6
Display compact status in menu and update README to reflect current menu entries.
2012-10-27 23:06:37 +11:00
Con Kolivas
d97e19f1c8
Add a compact display mode that does not list per device statistics in the status window.
2012-10-27 22:55:47 +11:00
Con Kolivas
784a41c8b5
Add blank spaces after best share displayed.
2012-10-27 22:17:30 +11:00
Con Kolivas
d85b60c09b
Round a few static string arrays up to 4 byte boundaries for ARM.
2012-10-27 17:28:42 +11:00
Con Kolivas
7bca8a0ab0
Display best share diff for scrypt as well.
2012-10-27 17:27:06 +11:00
Con Kolivas
27aa82aab6
Show the best diff share as "best share" and add info to the README.
2012-10-27 17:21:22 +11:00
Con Kolivas
a6cb920a9e
Display the best diff share submitted so far.
2012-10-27 16:49:00 +11:00
Con Kolivas
f7b79e34cf
Redundant check.
2012-10-27 12:33:46 +11:00
Con Kolivas
68c881fde7
Handle crash exceptions by trying to restart cgminer unless the --no-restart option is used.
2012-10-23 20:17:10 +11:00
Con Kolivas
9ccc418a6c
Switch queued count when choosing a different pool from a failed stratum pool in getwork thread.
2012-10-22 23:12:06 +11:00
Con Kolivas
334a9db41a
Put a mandatory 5s wait between reattempting a getwork on failure to avoid hammering requests.
2012-10-22 23:08:38 +11:00
Con Kolivas
17251795c3
Merge pull request #319 from kanoi/mmq
...
MMQ new initialisation (that works) and clocking control
2012-10-17 14:09:15 -07:00
ckolivas
3fce32f494
Use 3 significant digits when suffix string is used and values are >1000.
2012-10-17 10:33:22 +11:00
Kano
fc14b2ee07
MMQ new initialisation (that works) and clocking control
2012-10-17 09:56:42 +11:00
Con Kolivas
2aa5163b8b
Cope with dval being zero in suffix_string and display a single decimal place when significant digits is not specified but the value is greater than 1000.
2012-10-16 22:04:05 +11:00
Con Kolivas
54d2999d77
Pad out the suffix string function with zeroes on the right.
2012-10-16 21:20:02 +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
ckolivas
5fcc8612b4
Clear the pool idle flag in stratum when it comes back to life.
2012-10-16 14:56:50 +11:00
Con Kolivas
7adb7a30e6
Display correct share hash and share difficulty with scrypt mining.
2012-10-15 23:10:24 +11:00
Con Kolivas
57aac5040c
Show work target diff for scrypt mining.
2012-10-15 17:29:33 +11:00
Con Kolivas
d4f8a0b2b5
Round target difficulties down to be in keeping with the rounding of detected share difficulties.
2012-10-15 10:29:44 +11:00
Con Kolivas
bd377f767f
Align static arrays to 4 byte boundaries to appease ARM builds for stratum.
2012-10-14 03:35:01 +11:00
Con Kolivas
13676ef11a
Left align values that are suffix_string generated.
2012-10-12 18:00:14 +11:00
Con Kolivas
f22fe76157
Share_diff should not be converting the work data to hex.
2012-10-12 17:36:48 +11:00
Con Kolivas
7c7e51166b
Disable stratum detection with scrypt.
2012-10-12 14:53:16 +11:00
Con Kolivas
c3bdb359d5
Use the suffix string function when displaying device hashrates.
2012-10-12 14:52:14 +11:00
Con Kolivas
660a0ffe16
Correct variables used in get_statline
2012-10-12 14:46:55 +11:00
Con Kolivas
a10e3294bd
Be consistent with the get_statline function.
2012-10-12 14:41:13 +11:00
Con Kolivas
911b1788c7
Use the suffix string function for displaying hashrate with 4 significant digits.
2012-10-12 14:40:02 +11:00
Con Kolivas
420fdf32d6
Display the actual share diff next to the pool required diff, using a suffix creation function to prevent values of >1000 being shown in their entirety.
2012-10-12 14:17:29 +11:00
Con Kolivas
d211f8e0b0
Create a fix-protocol option which prevents cgminer from switching to stratum if it's detected.
2012-10-11 19:52:40 +11:00
Con Kolivas
5ed6e9d55e
Simplify target generation code.
2012-10-11 19:31:24 +11:00
ckolivas
ca962ee58b
Use a 64 bit unsigned integer on the diff target to generate the hex target.
2012-10-11 10:46:45 +11:00
Con Kolivas
ef6ad423e3
Only copy the stratum url to the rpc url if an rpc url does not exist.
2012-10-10 23:46:49 +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
80d4355737
Remove free that could segfault.
2012-10-08 23:00:37 +11:00
Con Kolivas
7d6bcab899
Use the stratum url as the rpc url advertised if we switch to it.
2012-10-08 22:15:30 +11:00
Con Kolivas
662ab1eff7
Count each stratum work item as local work.
2012-10-08 21:34:46 +11:00
Con Kolivas
2023e53fb2
Cope with one stratum pool being the only active pool when it dies by sleeping for 5 seconds before retrying to get work from it instead of getting work indefinitely.
2012-10-08 13:48:18 +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
0a90207111
Merge branch 'master' into stratum
2012-10-07 13:22:17 +11:00
Con Kolivas
461b7c6de2
Display correct pool number when block is found.
2012-10-06 15:12:05 +10:00
Con Kolivas
8a32f381b4
Use the stratum thread to detect when a stratum pool has died based on no message for 2 minutes.
2012-10-06 14:33:51 +10:00
Con Kolivas
0cddd1ab54
Only set the stratum auth flag once and once the stratum thread is started, use that to set/unset the stratum active flag.
2012-10-06 12:17:46 +10: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
8893f7ab23
Target should only be 32 bytes copied.
2012-10-06 01:13:52 +10:00
Con Kolivas
687fed1de9
Use a static array for work submission data instead of stack memory.
2012-10-05 19:03:28 +10:00
Con Kolivas
c4aa8d267c
Clear the buffer data before sprinting to it.
2012-10-05 19:02:10 +10:00
Con Kolivas
f0901e0a26
Clear work stratum strings before setting them and add them to debug output.
2012-10-05 18:09:10 +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
591c433477
Make detect stratum fail if a proxy has been set up.
2012-10-05 09:41:23 +10:00
Con Kolivas
51c499a5ae
Stratum does not currently have any proxy support so do not try to switch to stratum if a proxy has been specified.
2012-10-05 00:10:00 +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
3c85498d57
Add space to reject reason.
2012-10-04 09:38:05 +10:00
Con Kolivas
b4450bb852
Parse the reject reason where possible from stratum share submission.
2012-10-04 09:17:28 +10:00
Con Kolivas
512d244094
Pass json error value to share result function to be able to parse reject reason in stratum.
2012-10-04 08:52:56 +10:00