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

1074 Commits

Author SHA1 Message Date
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
Con Kolivas
9698858abc Remove the sshare hash entry if we failed to send it. 2012-10-03 18:19:31 +10:00
Con Kolivas
284b786da7 Check the stratum pool difference has not changed compared to the work diff when testing whether a share meets the target or not and retarget if necessary. 2012-10-03 11:18:08 +10:00
Con Kolivas
ac0c813f9d Bit error in target calculation for stratum. 2012-10-03 10:33:11 +10:00
Con Kolivas
310239b8e8 Revert "Parse reject reason from the stratum json error code if there is one."
This reverts commit c6a3d065fa.

Segfaults. Needs work.
2012-10-03 10:20:54 +10:00
Con Kolivas
3d982dfbe9 Set work_block in gen_stratum_work for when work is reused to avoid thinking it's all stale. 2012-10-03 09:49:01 +10:00
Con Kolivas
74c11945f0 Offset the current block detection to the prev block hash. 2012-10-03 09:42:20 +10:00
Con Kolivas
c6a3d065fa Parse reject reason from the stratum json error code if there is one. 2012-10-03 08:55:02 +10:00
Con Kolivas
9e0e61509d We should be testing for id_val, not id in parse stratum response. 2012-10-03 01:14:35 +10:00
Con Kolivas
fdaabf59c6 Make target on stratum scale to any size by clearing sequential bits according to diff. 2012-10-03 00:35:08 +10:00
Con Kolivas
a8a8ed6207 Correct target calculation in gen_stratum_work. 2012-10-02 16:01:32 +10:00
Con Kolivas
925d01922b If a share result has an error code but still has an id, it is likely a reject, not an error. 2012-10-02 14:12:34 +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
210bc9be3e If no stratum url is set by the end of the detect stratum routine, copy the sockaddr url. 2012-10-02 10:02:25 +10:00
Con Kolivas
78aafcec5c Make all buffers slightly larger to prevent overflow. 2012-10-02 09:26:18 +10:00
Con Kolivas
df91df3507 Userpass needs to be copied to user and pass earlier to allow stratum authorisation to work with it. 2012-10-02 02:03:52 +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
2ccb6d78ca Decrease the queued count with stratum work once it's staged as well. 2012-10-01 23:19:34 +10:00
Con Kolivas
601d1aca97 Allow the stratum retry to initiate and auth stratum in pool_alive to make sure the stratum thread is started. 2012-10-01 23:15:50 +10:00
Con Kolivas
4a7ce9dd2a Avoid duplicating pool->rpc_url and setting pool->stratum_url twice to itself. 2012-10-01 22:21:43 +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
b495a51b76 Comment update. 2012-10-01 18:50:32 +10:00
Con Kolivas
2aacd89aa8 Minor message change. 2012-10-01 18:46:33 +10:00
Con Kolivas
90b1893746 Create a work item from a "clean" request from stratum allowing the new block to be detected and the appropriate block change message to be given. 2012-10-01 18:43:24 +10:00
Con Kolivas
b97a33a58a Use statically allocated stratum strings in struct work to cope with the inability to safely deallocate dynamically allocated ram. 2012-10-01 14:44:44 +10:00
Con Kolivas
e93f679ae4 Use the current pool when deciding whether to reuse work from a stratum source rather than the work's previous pool. 2012-09-30 23:44:27 +10:00
Con Kolivas
6174c80678 Copy the stratum url to the rpc url to avoid none being set. 2012-09-30 23:36:05 +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
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
b871f69f62 Display stratum as mechanism in status line when current pool is running it. 2012-09-30 19:13:50 +10:00
Con Kolivas
6593b89328 Correct nonce submitted with share. 2012-09-30 16:47:06 +10:00
Con Kolivas
41acd23d0f Extranonce2 should be added before coinbase2. 2012-09-29 23:59:55 +10:00
Con Kolivas
fb987fd25a We should be hashing the binary coinbase, not the hex one. 2012-09-29 19:15:58 +10:00
Con Kolivas
61360952f5 Fix endianness of nonce submitted for stratum. 2012-09-29 17:44:19 +10:00
Con Kolivas
fab9ff3cb7 Revert "Free stratum buffers added to the work struct when freeing work ram."
This reverts commit 13fdff6531.

Not always allocated... needs some more thought.
2012-09-29 16:10:44 +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
13fdff6531 Free stratum buffers added to the work struct when freeing work ram. 2012-09-29 15:13:18 +10:00
Con Kolivas
aa93fa336c Copy parameters from stratum work required for share submission. 2012-09-29 15:02:23 +10:00
Con Kolivas
4a29759480 Set lagging flag on first adding a pool to prevent pool slow warning at startup. 2012-09-29 14:48:34 +10:00
Con Kolivas
73d61ca4c3 Fix work->target being a 32 byte binary in gen_stratum_work. 2012-09-29 14:25:21 +10:00
Con Kolivas
ac47f7f3a6 Store and display stripped url in its own variable. 2012-09-29 14:16:16 +10:00
Con Kolivas
3db6fb4fac Create machinery to divert work requests to stratum. 2012-09-29 13:07:00 +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
2e9ade14a9 Generate work data, midstate and hash1 in gen_stratum_work. 2012-09-29 11:12:59 +10:00
Con Kolivas
e1468cc5fd Generate header created from stratum structures in gen_stratum_work. 2012-09-29 11:02:25 +10:00
Con Kolivas
5c74be5930 Generate merkle root hash in gen_stratum_work. 2012-09-29 10:30:56 +10:00
Con Kolivas
1f6fe55152 Generate the coinbase for generation of stratum based work. 2012-09-29 02:16:22 +10:00
Con Kolivas
54ab28fd6e Provide rudimentary support for stratum clean work command in the stratum thread. 2012-09-29 00:38:09 +10:00
Con Kolivas
04551445f6 Cope with pools being removed in the stratum thread. 2012-09-29 00:23:27 +10:00
Con Kolivas
0f1f2a62a6 Use the pool sock value directly in the stratum thread in case it changes after reconnecting. 2012-09-28 18:04:28 +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
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
30b665f021 Test specifically for stratum being active in pool_active. 2012-09-27 13:01:12 +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
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
5e7e150b12 hashmeter fix stats kh/s on 32bit windows 2012-09-24 23:34:10 +10:00
Con Kolivas
823a710a54 Display share difficulty on log with a shortened hash display on submission. 2012-09-24 14:08:35 +10:00
Kano
7c32562d80 API stats add some pool getwork difficulty stats 2012-09-24 11:34:50 +10:00
Con Kolivas
fd28d9f407 Ignore any pings pushed to the worker threads if the thread is still paused to prevent it being enabled and disabled repeatedly. 2012-09-24 09:03:27 +10:00
Con Kolivas
57a73dce34 Test for sequential getwork failures on a pool that might actually be up but failing to deliver work as we may end up hammering it repeatedly by mistake. 2012-09-24 08:30:07 +10:00
Kano
a6bf276f6b API - Add last share difficulty for devices and pool 2012-09-19 01:14:43 +10:00
Kano
89b6989fb3 Store and report Accepted,Rejected,Stale difficulty in the summary and API 2012-09-19 00:54:55 +10:00
Kano
7ede5a59bd WorkTime - display prevblock for scrypt 2012-09-18 14:30:46 +10:00
Kano
923b9e0d86 Calculate work difficulty for each getwork and display with WorkTime debug 2012-09-18 11:19:57 +10:00
Kano
796f3906c1 WorkTime - multiple nonce per work and identify the work source 2012-09-16 07:57:43 +10:00
Kano
bd3c98aaaf Optional WorkTime details with each Accepted/Rejected work item 2012-09-15 14:04:57 +10:00
Kano
99f0607fb2 API add display of and setting queue,scantime,expiry 2012-09-12 23:26:43 +10:00
Kano
e649aa3906 HW: dont submit bad shares 2012-09-12 20:10:00 +10:00
Kano
fced503ed6 save individual pool proxy settings to config 2012-09-12 19:45:49 +10:00
Kano
0ac350547e --default-config - allow command line to define the default configuration file for loading and saving 2012-09-12 19:32:37 +10:00
Kano
cef9731fbc CURL support for individual proxy per pool and all proxy types 2012-09-12 07:44:00 +10:00
Kano
307d8da034 HW: error counter auto for all devices - ztex code not fixed 2012-09-04 15:57:11 +10:00
Kano
fd2034ce77 Merge branch 'main' 2012-09-04 00:56:35 +10:00
Kano
4023872b76 count device diff1 shares 2012-09-01 23:51:51 +10:00
Kano
568b0fed89 API allow full debug settings control 2012-09-01 18:21:08 +10:00
Con Kolivas
57c3b12f64 Sort the blocks database in reverse order, allowing us to remove the first block without iterating over them. Output the block number to debug. 2012-08-31 12:04:16 +10:00
Con Kolivas
f97bf2e2ac Keep the local block number in the blocks structs stored and sort them by number to guarantee we delete the oldest when ageing the block struct entries. 2012-08-28 20:16:50 +10:00
Con Kolivas
b768758818 Test for lagging once more in queue_request to enable work to leak to backup pools. 2012-08-27 10:15:48 +10:00
Con Kolivas
579c1299c6 There is no need to try to switch pools in select_pool since the current pool is actually not affected by the choice of pool to get work from. 2012-08-27 10:10:50 +10:00
Con Kolivas
4a210d4eff Only clear the pool lagging flag if we're staging work faster than we're using it. 2012-08-27 10:02:53 +10:00
Con Kolivas
d1683f75c9 needed flag is currently always false in queue_request. Remove it for now. 2012-08-27 09:55:19 +10:00
Con Kolivas
1b7db5bc9c thr is always NULL going into queue_request now. 2012-08-27 09:47:55 +10:00
Con Kolivas
0e0093e602 Select pool regardless of whether we're lagging or not, and don't queue another request in switch pool to avoid infinite recursion. 2012-08-24 01:23:54 +10:00
Con Kolivas
7992e5f3c8 Carry the needed bool over the work command queue. 2012-08-24 00:41:14 +10:00
Con Kolivas
37fa7d36d4 Move the decision to queue further work upstream before threads are spawned based on fine grained per-pool stats and increment the queued count immediately. 2012-08-24 00:35:26 +10:00
Con Kolivas
618b3e8b11 Track queued and staged per pool once again for future use. 2012-08-23 23:50:38 +10:00
Con Kolivas
4ca288e820 Limit queued_getworks to double the expected queued maximum rather than factoring in number of pools. 2012-08-23 16:55:14 +10:00
Con Kolivas
ad90269508 Minimise the number of getwork threads we generate. 2012-08-23 16:33:24 +10:00
Con Kolivas
0feb679b67 Only keep the last 6 blocks in the uthash database to keep memory usage constant. Storing more is unhelpful anyway. 2012-08-23 12:19:23 +10:00
Con Kolivas
b74b54d95b Check we haven't staged work while waiting for a curl entry before proceeding. 2012-08-23 11:09:09 +10:00
Con Kolivas
61df3013a8 Ignore the submit_fail flag when deciding whether to recruit more curls or not since we have upper bounds on how many curls can be recruited, this test is redundant and can lead to problems. 2012-08-22 23:03:17 +10:00
ckolivas
edd9b81622 Do not add time to dynamic opencl calculations over a getwork. 2012-08-22 10:07:20 +10:00
Con Kolivas
9de3a264fc Increase max curls to number of mining threads + queue * 2, accounting for up and downstream comms. 2012-08-21 22:51:34 +10:00
Con Kolivas
3ab5dba67e Queue enough requests to get started. 2012-08-21 22:50:09 +10:00
Con Kolivas
3ebe8e8c77 Revert "Scale maximum number of curls up according to work submission rate."
This reverts commit 1dff48e759.

Did  not increase staged work even though it decreased queues.
2012-08-21 22:09:11 +10:00
Con Kolivas
3ceb57b8f6 There is no point trying to clone_work in get_work() any more since we clone on every get_work_thread where possible. 2012-08-21 21:54:33 +10:00
Con Kolivas
787e40a7cc There is no point subtracting 1 from maxq in get_work_thread. 2012-08-21 21:53:35 +10:00
Con Kolivas
1dff48e759 Scale maximum number of curls up according to work submission rate. 2012-08-21 21:50:20 +10:00
Con Kolivas
56be75228e Roll back to 45f0ac7b48 2012-08-21 21:22:26 +10:00
Con Kolivas
c1886c9c99 Assume we need a full allotment of work after lp and make clone_work clone_lpwork only. 2012-08-21 21:13:14 +10:00
Con Kolivas
82fa6e25d5 There is no point running through clone_work from get_work() now that cloning is done from the get_work_thread. 2012-08-21 21:11:22 +10:00
Con Kolivas
caa266ca3b Make opt_queue a function of mining threads in clone_work as well. 2012-08-21 21:10:23 +10:00
Con Kolivas
652efc6939 opt_queue should be a function of the number of mining threads. 2012-08-21 21:08:17 +10:00
Con Kolivas
8ed381f78a Only set lagging flag once there are no staged work items. 2012-08-21 19:47:30 +10:00
Con Kolivas
f5ac84b804 select_pool does not switch back to the primary once lagging is disabled. 2012-08-21 19:32:05 +10:00
Con Kolivas
af32fb9a3d Merge pull request #301 from kanoi/minerphp
API new command 'coin' with mining information
2012-08-21 00:28:50 -07:00
ckolivas
f71d635f0f Free work before retrying in get_work_thread. 2012-08-21 17:02:11 +10:00
Con Kolivas
b3cfe47222 Increment total work counter under mutex lock. 2012-08-20 22:24:28 +10:00
Con Kolivas
e8daf1d8f2 Increment the queued count after the curl is popped in case there's a delay waiting on curls and we think we've queued work when in fact we're waiting on curls. 2012-08-20 16:19:28 +10:00
Kano
b3e9858c9f API new command 'coin' with mining information 2012-08-20 16:07:20 +10:00
Con Kolivas
08948e02f3 Increase curl reaping time to 5 minutes since comms between curl requests can be 2 mins apart with lots of rolltime. 2012-08-20 16:02:32 +10:00
Con Kolivas
51d485e236 No need for extra variable in hash_push. 2012-08-20 16:02:32 +10:00
Con Kolivas
c01284fb07 Remove short options -r and -R to allow them to be reused and remove readme entries for deprecated options. 2012-08-20 11:58:05 +10:00
Con Kolivas
8fc701dd76 Deprecate the opt_fail_pause parameter, leaving a null placeholder for existing configurations. 2012-08-20 11:18:37 +10:00
Con Kolivas
35cb7fd101 Don't pause after failed getwork, set lagging flag and reassess. 2012-08-20 11:16:38 +10:00
Con Kolivas
69d8c339aa Add message to share if it's a resubmit. 2012-08-20 11:08:56 +10:00
Con Kolivas
b622e97e3e We should not be pausing in trying to resubmit shares. 2012-08-20 11:03:28 +10:00
Con Kolivas
a9278ce944 Get rid of the extending fail pause on failed connects since we discard work after a period. 2012-08-20 11:00:10 +10:00
Con Kolivas
34b8dcb7bc get_work always returns true so turn it into a void function. 2012-08-20 10:58:12 +10:00
Con Kolivas
260b1c87c0 get_work never returns false so get rid of fail pause loop. 2012-08-20 10:54:59 +10:00
Con Kolivas
4df9c387f0 Get rid of pause and retry from get_upstream_work so we only do it from one place. 2012-08-20 10:53:42 +10:00
Con Kolivas
1f295cd7fa Deprecate the opt_retries feature as no one wants cgminer to automatically abort. Leave a null placeholder for configurations that still have it. 2012-08-20 10:43:50 +10:00
Con Kolivas
f6d2853c9b Summary layout difference. 2012-08-18 19:53:43 +10:00
Con Kolivas
ed3eb5771a Introduce a new statistic, Work Utility, which is the number of difficulty 1 shares solved per minute. This is useful for measuring a relative rate of work that is independent of reject rate and target difficulty. 2012-08-18 15:44:48 +10:00
Con Kolivas
26ab7346e3 Implement a new pool strategy, BALANCE, which monitors work performed per pool as a rolling average every 10 minutes to try and distribute work evenly over all the pools.
Do this by monitoring diff1 solutions to allow different difficulty target pools to be treated equally, along with solo mining.
Update the documentation to describe this strategy and more accurately describe the load-balance one.
2012-08-18 15:27:53 +10:00
Con Kolivas
d8c76bbd08 Getwork fail was not being detected. Remove a vast amount of unused variables and functions used in the old queue request mechanism and redefine the getfail testing. 2012-08-18 11:26:11 +10:00
Con Kolivas
8fa708093b Don't try to start devices that don't support scrypt when scrypt mining. 2012-08-18 11:07:32 +10:00
Con Kolivas
b814b42c7f Consider us lagging only once our queue is almost full and no staged work. 2012-08-18 10:38:02 +10:00
Con Kolivas
b60f9da4a5 Simplify the enough work algorithm dramatically. 2012-08-18 10:37:05 +10:00
Con Kolivas
0e56dffd92 Only queue from backup pools once we have nothing staged. 2012-08-18 10:37:05 +10:00
Con Kolivas
e16b7566bd Don't keep queueing work indefinitely if we're in opt failover mode. 2012-08-18 10:37:05 +10:00
Con Kolivas
6d1949e694 Make sure we don't opt out of queueing more work if all the queued work is from one pool. 2012-08-18 10:37:05 +10:00
Con Kolivas
a5f7b953fe Set lagging flag if we're on the last of our staged items. 2012-08-18 10:37:05 +10:00
Con Kolivas
ee9e621e1c Reinstate clone on grabbing work. 2012-08-18 10:37:05 +10:00
Con Kolivas
55f7c14982 Grab clones from hashlist wherever possible first. 2012-08-18 10:37:05 +10:00
Con Kolivas
c3e32274ee Cull all the early queue requests since we request every time work is popped now. 2012-08-18 10:37:05 +10:00
Con Kolivas
0fbd60ae37 Keep track of staged rollable work item counts to speed up clone_available. 2012-08-18 10:37:05 +10:00
Con Kolivas
83b9ddfea4 Make expiry on should_roll to 2/3 time instead of share duration since some hardware will have very fast share times. 2012-08-18 10:37:05 +10:00
Con Kolivas
8697d6a2ce Do the cheaper comparison first. 2012-08-18 10:37:05 +10:00
Con Kolivas
381c56f811 Check that we'll get 1 shares' worth of work time by rolling before saying we should roll the work. 2012-08-18 10:37:05 +10:00
Con Kolivas
afcfea15a7 Simplify all those total_secs usages by initialising it to 1 second. 2012-08-18 10:37:05 +10:00
Con Kolivas
5fadfdb219 Overlap queued decrementing with staged incrementing. 2012-08-18 10:37:05 +10:00
Con Kolivas
9f1d9ce3b7 Artificially set the pool lagging flag on pool switch in failover only mode as well. 2012-08-18 10:37:05 +10:00
Con Kolivas
a6b97327e1 Artificially set the pool lagging flag on work restart to avoid messages about slow pools after every longpoll. 2012-08-18 10:37:05 +10:00
Con Kolivas
44e81218fd Factor in opt_queue value into enough work queued or staged. 2012-08-18 10:37:05 +10:00
Con Kolivas
611f1cec7c Roll work whenever we can on getwork. 2012-08-18 10:37:05 +10:00
Con Kolivas
fd0be1bb51 Queue requests for getwork regardless and test whether we should send for a getwork from the getwork thread itself. 2012-08-18 10:37:04 +10:00
Con Kolivas
7d77c01619 Get rid of age_work(). 2012-08-18 10:37:04 +10:00
Con Kolivas
d1508bd40e Merge pull request #296 from kanoi/api
API allow display/change failover-only setting (API v1.16)
2012-08-14 14:45:34 -07:00
Kano
95dff7363e API allow display/change failover-only setting 2012-08-14 12:54:27 +10:00
Con Kolivas
8e20456bc0 Check we are not lagging as well as there is enough work in getwork. 2012-08-14 09:13:59 +10:00
Con Kolivas
00691ababf Merge pull request #292 from kanoi/main
Escape " and \ when writing json config file
2012-08-11 20:42:05 -07:00
Con Kolivas
d66742a8c1 Minimise locking and unlocking when getting counts by reusing shared mutex lock functions. 2012-08-12 11:04:51 +10:00
Con Kolivas
c91a95459b Avoid getting more work if by the time the getwork thread is spawned we find ourselves with enough work. 2012-08-12 10:55:18 +10:00
Con Kolivas
f27bcb8ee5 Going back to e68ecf5eb2 2012-08-12 10:45:59 +10:00
Con Kolivas
c892ded6e0 Make sure there are true pending staged work items as well in failover only mode. 2012-08-12 10:40:58 +10:00
Con Kolivas
61003df49f In failover-only mode we need to queue enough work for the local pool and ignore the total queued count. 2012-08-12 10:33:26 +10:00
Con Kolivas
8aa61f6626 Make sure we have work from the current pool somewhere in the queue in case the queue is full of requests from a pool that has just died. 2012-08-11 16:47:49 +10:00
Con Kolivas
c0aaf56a8d Since all the counts use the same mutex, grab it only once. 2012-08-11 16:11:53 +10:00
Con Kolivas
4f9394be81 When popping work, grab cloned work first if possible since original work can be reused to make further clones. 2012-08-11 14:39:35 +10:00
Con Kolivas
8085ae6854 Further simplify the queue request mechanism. 2012-08-11 14:04:55 +10:00
Con Kolivas
f83863a996 Keep total queued count as a fake pending staged count to account for the period a queue is in flight before it is staged. 2012-08-11 13:30:41 +10:00
Con Kolivas
e47dc87355 Clone work at the time of requesting it if an existing work item can be rolled. 2012-08-10 21:44:15 +10:00
Con Kolivas
e68ecf5eb2 Queue one request for each staged request removed, keeping the staged request count optimal at all times. 2012-08-10 20:18:04 +10:00
Kano
52e5524d7f Escape " and \ when writing json config file 2012-08-09 18:01:35 +10:00
ckolivas
3dd1658e1f We may as well leave one curl still available per pool instead of reaping the last one. 2012-08-07 12:10:01 +10:00
ckolivas
c7bcad653b Need to recheck the pool->curls count on regaining the pool lock after the pthread conditional wait returns. 2012-08-07 11:59:54 +10:00
ckolivas
ad8c4b7755 Revert "Only add to the pool curlring and increment the counter under mutex lock."
This reverts commit 8897e06575.

Wrong fix. Recursive locking now.
2012-08-07 11:52:37 +10:00
ckolivas
145f04ccc7 Display reaped debug message outside mutex lock to avoid recursive locking. 2012-08-07 11:10:59 +10:00
ckolivas
8897e06575 Only add to the pool curlring and increment the counter under mutex lock. 2012-08-07 11:05:23 +10:00
Con Kolivas
25fd6cd0fd Correct writing of scrypt parameters to config file based on command line parameters only. 2012-08-05 15:35:37 +10:00
Con Kolivas
ac131d3138 Merge pull request #279 from tyeken8/tydus
Add scrypt support while writing conf
2012-08-04 22:34:47 -07:00
Con Kolivas
7611499b11 Queue a request on pool switch in case we have no work from the new pool yet. 2012-08-05 14:57:46 +10:00
Con Kolivas
4efa31d2e7 Display failover only mode in pool menu and allow it to be toggled live. 2012-08-05 14:44:11 +10:00
Con Kolivas
1a041668a5 Reinstate check for system queueing lag when the current pool's queue is maxed out, there is no staged work, and the work is needed now. 2012-08-05 14:37:49 +10:00
Con Kolivas
499c594cba There is no need for pool active testing to be mandatory any more with queue request changes. 2012-08-05 14:29:21 +10:00
Con Kolivas
e4326e3ca2 Fix harmless warnings. 2012-08-05 14:24:31 +10:00
Con Kolivas
9a45a6d993 Check the current staged and global queued as well before queueing requests.
Discard stales before ageing work in the watchdog thread.
Queue requests after discarding and ageing work in watchdog thread.
Display accurate global queued in curses output.
Reuse variable in age_work().
2012-08-05 14:19:49 +10:00
Con Kolivas
bf9c324752 The queueing mechanism has become a complex state machine that is no longer predictable. Rewrite it from scratch watching only current queues in flight and staged work available on a pool by pool basis. 2012-08-05 13:40:46 +10:00
Con Kolivas
b66e0241f7 Queue an extra request whenever staged work drops below mining thread count in hash_pop. 2012-08-04 09:52:18 +10:00
Con Kolivas
b70ec3cb66 Merge pull request #283 from kanoi/icarus
ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards
2012-08-02 17:17:53 -07:00
Con Kolivas
15dc4bb320 Scrypt mining does not support block testing yet so don't try to print it. 2012-08-03 10:10:53 +10:00
Con Kolivas
2953aa2502 We dropped the temporary stopping of curl recruiting on submit_fail by mistake, reinstate it. 2012-08-02 22:46:49 +10:00
Con Kolivas
9410875e2f Make threads report in either side of the scanhash function in case we miss reporting in when restarting work. 2012-08-02 22:46:13 +10:00
ckolivas
d5dffa6aad Don't make mandatory work and its clones last forever. 2012-08-02 16:45:12 +10:00
Con Kolivas
aa52db4539 Make test work for pool_active mandatory work items to smooth out staged work counts when in failover-only mode. 2012-08-01 23:42:00 +10:00
Kano
e067be421a ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards 2012-08-01 22:50:30 +10:00
Con Kolivas
8414a9a7e2 Add debugging output when work is found stale as to why. 2012-08-01 22:48:38 +10:00
Con Kolivas
d37d044fb7 Add some headroom to the number of curls available per pool to allow for longpoll and sendwork curls. 2012-08-01 20:05:30 +10:00
Tydus
fd51e5ba01 Add scrypt support while writing conf 2012-07-30 18:27:33 +08:00
Con Kolivas
99204bd59a Display scrypt as being built in as well. 2012-07-30 14:07:03 +10:00
Con Kolivas
7a07c7d04c Fix build warning about KL_SCRYPT when built without scrypt support. 2012-07-30 14:07:03 +10:00
Con Kolivas
c91148f193 Remove the low hash count determinant of hardware being sick. A low hash rate can be for poor network connectivity or scrypt mining, neither of which are due to sick hardware. 2012-07-30 09:02:23 +10:00
Con Kolivas
d8ec6d3e23 Display kilohash when suitable, but store the global mhash value still truly in megahashes to not break the API output. 2012-07-29 21:35:24 +10:00
Con Kolivas
b5517af024 Don't try and print curses output for devices that won't fit on the screen. 2012-07-29 21:07:24 +10:00
Con Kolivas
500ed85bb3 Merge pull request #271 from luke-jr/cg_logfixes
Logging bugfixes
2012-07-29 03:46:49 -07:00
Con Kolivas
28ac422ab8 Merge pull request #270 from luke-jr/bugfix_procname
Bugfix: Copy argv[0] given to dirname()
2012-07-29 03:45:10 -07:00
Con Kolivas
b40c8b848f Limit total number of curls recruited per pool to the number of mining threads to prevent blasting the network when we only have one pool to talk to. 2012-07-29 19:10:40 +10:00
Con Kolivas
e87ff7c177 Keep a counter of enabled pools and use that instead of iterating over the pool list. Use that value to ensure we don't set the last remaining active pool to the rejecting state. 2012-07-29 13:15:39 +10:00
Con Kolivas
5148502c1e Reinstate help information for lookup gap and thread concurrency since tc will often need to be manually set for optimal scrypt performance. 2012-07-25 22:30:37 +10:00
Con Kolivas
9a6c082ad1 Make the thread concurrency and lookup gap options hidden on the command line and autotune parameters with a newly parsed --shaders option. 2012-07-24 20:27:37 +10:00
Luke Dashjr
da4ff2bde1 Bugfix: Use a mutex to control non-curses output
Without this, there is no guarantee writes won't overlap (and it happens quite a bit on Windows with the bitforce driver)
2012-07-23 20:29:06 +00:00
Luke Dashjr
d98e561a0a Simplify code to a single vprintf path for curses-less printing 2012-07-23 20:29:02 +00:00
Luke Dashjr
80593c47fc Move opt_quiet check to my_log_curses, so it works for curses-less builds 2012-07-23 20:28:57 +00:00
Luke Dashjr
a1cb0d06d5 Bugfix: Copy argv[0] given to dirname()
Per manpage, dirname can (and does on GNU/Linux!) modify its argument
2012-07-23 15:48:00 +00:00
Con Kolivas
94c94d659a Nonce testing for btc got screwed up, leading to no accepted shares. Fix it. 2012-07-23 07:38:58 +10:00
Con Kolivas
39f7d2fa74 Allow lookup gap and thread concurrency to be passed per device and store details in kernel binary filename. 2012-07-21 17:31:06 +10:00
Con Kolivas
b9e5f8e550 Revert "Use cpu scrypt code to check if an scrypt share is below target before submitting it."
This reverts commit 808f403a14.

Conflicts:
	findnonce.c
2012-07-21 10:28:41 +10:00
Con Kolivas
808f403a14 Use cpu scrypt code to check if an scrypt share is below target before submitting it. 2012-07-20 23:44:43 +10:00
Con Kolivas
d72add9af3 Send correct values to scrypt kernel to get it finally working. 2012-07-20 16:16:18 +10:00
Con Kolivas
dd25454594 Detach pthread from within the api thread in case it is terminated due to not being instantiated before pthread_cancel is called from main, leading to a segfault. 2012-07-16 22:04:48 +10:00
Con Kolivas
77b7ed4b9e Debug output per thread hashrate is out by a factor of 1000. 2012-07-16 20:25:16 +10:00
Con Kolivas
76c37891ea Handle KL_SCRYPT in config write. 2012-07-16 13:19:42 +10:00
Con Kolivas
5cd4bbd21c Get rid of stuff. 2012-07-16 13:18:43 +10:00
Con Kolivas
6ac14f4280 Don't enqueuewrite buffer at all for pad8 and pass work details around for scrypt in dev_blk. 2012-07-16 13:14:21 +10:00
Luke Dashjr
a1edc7dbcb Bugfix: Fix build without curses but with OpenCL 2012-07-15 05:37:49 +00:00
Con Kolivas
6c6c285268 Show Khash hashrates when scrypt is in use. 2012-07-14 22:25:41 +10:00
Con Kolivas
54f1b80824 Free the scratchbuf memory allocated in scrypt and don't check if CPUs are sick since they can't be. Prepare for khash hash rates in display. 2012-07-14 22:19:55 +10:00
Con Kolivas
a5ebb71216 Add cpumining capability for scrypt. 2012-07-14 22:01:20 +10:00
Con Kolivas
41daf99537 Calculate midstate in separate function and remove likely/unlikely macros since they're dependent on pools, not code design. 2012-07-14 09:45:55 +10:00
Con Kolivas
8230ab0549 Display in debug mode when we're making the midstate locally. 2012-07-14 01:10:50 +10:00
Con Kolivas
ea444d0239 Fix nonce submission code for scrypt. 2012-07-14 00:59:38 +10:00
Con Kolivas
0f43eb5eb7 Don't test nonce with sha and various fixes for scrypt. 2012-07-13 20:35:44 +10:00
Con Kolivas
dd740caa98 Provide initial support for the scrypt kernel to compile with and mine scrypt with the --scrypt option. 2012-07-13 19:02:43 +10:00
Con Kolivas
cbef2a6a65 Only try to shut down work cleanly if we've successfully connected and started mining. 2012-07-12 16:40:15 +10:00
Luke Dashjr
c57c308d1f Bugfix: Don't declare devices SICK if they're just busy initializing
This mainly applies to ModMiner since it takes 4-5 minutes to upload the bitstream
2012-07-11 20:29:06 +00:00
ckolivas
5c7e03084a Modify te scanhash API to use an int64_t and return -1 on error, allowing zero to be a valid return value. 2012-07-11 22:59:58 +10:00
ckolivas
f9d0324d2a Check for work restart after the hashmeter is invoked for we lose the hashes otherwise contributed in the count. 2012-07-11 22:47:03 +10:00
ckolivas
1d153a140f Remove disabled: label from mining thread function, using a separate mt_disable function. 2012-07-11 22:43:21 +10:00
ckolivas
af809b79be Style changes. 2012-07-11 22:36:45 +10:00
Con Kolivas
2ce7f28bbc Merge pull request #254 from luke-jr/work_restart2
Turn work_restart array into a bool in thr_info
2012-07-08 04:24:55 -07:00
Con Kolivas
ad02627e6b Fix --benchmark not working since the dynamic addition of pools and pool stats. 2012-07-06 19:35:28 +10:00
Con Kolivas
fd55fab96a Make bitforce nonce range support a command line option --bfl-range since enabling it decrease hashrate by 1%. 2012-07-06 16:54:00 +10:00
Luke Dashjr
d4af2d0535 Turn work_restart array into a bool in thr_info 2012-07-06 05:13:05 +00:00
Con Kolivas
274a40115e Merge branch 'master' into mr 2012-07-05 16:45:05 +10:00
Con Kolivas
75eca07823 Restart_wait is only called with a ms value so incorporate that into the function. 2012-07-05 09:15:21 +10:00
Con Kolivas
8bc7d1c9a0 Only try to adjust dev width when curses is built in. 2012-07-05 08:59:09 +10:00
Con Kolivas
67e92de18c Adjust device width column to be consistent. 2012-07-04 15:16:39 +10:00
Con Kolivas
ce93c2fc62 Use cgpu-> not gpus[] in watchdog thread. 2012-07-04 14:40:02 +10:00
Con Kolivas
7ada258bbf Merge branch 'master' into bfl 2012-07-03 11:04:44 +10:00
Con Kolivas
610cf0f0a5 Minor style changes. 2012-07-03 10:48:42 +10:00
Sergei Krivonos
aaa9f62b3e Made JSON error message verbose. 2012-07-03 01:01:37 +03:00
Paul Sheppard
ce850883e7 Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	driver-bitforce.c
2012-07-01 23:39:09 -07:00
Paul Sheppard
cc0ad5eaa7 Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	driver-bitforce.c
2012-07-01 23:35:06 -07:00
ckolivas
ac45260e18 Random style cleanups. 2012-07-02 16:12:35 +10:00
ckolivas
06ec47b3bd Must always unlock mutex after cond timedwait. 2012-07-02 12:45:16 +10:00
ckolivas
df5d196f9a Must unlock mutex if pthread_cond_wait succeeds. 2012-07-02 12:37:15 +10:00
ckolivas
fd7b21ed56 Use a pthread conditional that is broadcast whenever work restarts are required. Create a generic wait function waiting a specified time on that conditional that returns if the condition is met or a specified time passed to it has elapsed. Use this to do smarter polling in bitforce to abort work, queue more work, and check for results to minimise time spent working needlessly. 2012-07-02 10:54:20 +10:00
Paul Sheppard
a4a2000cc0 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-30 20:45:56 -07:00
ckolivas
830f2902b9 Numerous style police clean ups in cgminer.c 2012-07-01 11:09:06 +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
Paul Sheppard
efaa7398fb Tweak sick/dead logic
(remove pre-computed time calculations)
2012-06-30 11:59:53 -07:00
Paul Sheppard
86c8bbe57e Need to run Hashmeter all the time.
and not just if logging/display is enabled
2012-06-29 17:19:28 -07:00
Paul Sheppard
75a651c13f Revert "Check for submit_stale before checking for work_restart"
Makes no sense to continue working on the old block whether submit_stale is enabled or not.
2012-06-28 16:08:10 -07:00
Paul Sheppard
baa480c137 Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	cgminer.c
2012-06-28 08:22:55 -07:00
Paul Sheppard
f225392990 Add low hash threshold in sick/dead processing
Add check for fd in comms procedures
2012-06-28 08:20:45 -07:00
Con Kolivas
3267b534a8 Implement rudimentary X-Mining-Hashrate support. 2012-06-28 10:43:52 +10:00
Con Kolivas
4c5d41a8dd Merge pull request #243 from kanoi/master
define, implement and document API option --api-groups
2012-06-27 16:03:46 -07:00
Con Kolivas
24316fc7fc Revert "Work is checked if it's stale elsewhere outside of can_roll so there is no need to check it again."
This reverts commit 5ad58f9a5c.
2012-06-28 07:27:57 +10:00
Paul Sheppard
62c3c66f17 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-27 08:18:12 -07:00
Con Kolivas
5ad58f9a5c Work is checked if it's stale elsewhere outside of can_roll so there is no need to check it again. 2012-06-27 23:36:48 +10:00
Con Kolivas
eddd02fea1 Put upper bounds to under 2 hours that work can be rolled into the future for bitcoind will deem it invalid beyond that. 2012-06-27 23:32:50 +10:00
Con Kolivas
bcec5f5102 Revert "Check we don't exhaust the entire unsigned 32 bit ntime range when rolling time to cope with extremely high hashrates."
This reverts commit 522f620c89.

Unrealistic. Limits are bitcoind related to 2 hours in the future.
2012-06-27 23:30:50 +10:00
Con Kolivas
383d35b221 Merge branch 'master' of github.com:ckolivas/cgminer 2012-06-27 22:35:38 +10:00
Con Kolivas
522f620c89 Check we don't exhaust the entire unsigned 32 bit ntime range when rolling time to cope with extremely high hashrates. 2012-06-27 22:34:46 +10:00
Kano
c21fc06560 define API option --api-groups 2012-06-27 21:28:18 +10:00
ckolivas
794b6558a3 Merge branch 'master' of https://github.com/ckolivas/cgminer 2012-06-27 10:55:50 +10:00
ckolivas
21a23a45d7 Work around pools that advertise very low expire= time inappropriately as this leads to many false positives for stale shares detected. 2012-06-27 10:15:57 +10:00
Paul Sheppard
d3e2b62c54 Change sick/dead processing to use device pointer, not gpu array.
Change BFL timing to adjust only when hashing complete (not error/idle etc.).
2012-06-26 14:45:48 -07:00
Paul Sheppard
78d5a81d70 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-26 12:32:09 -07:00
Con Kolivas
68a3a9ad10 There is no need for work to be a union in struct workio_cmd 2012-06-26 22:37:24 +10:00
ckolivas
b198423d17 Don't keep rolling work right up to the expire= cut off. Use 2/3 of the time between the scantime and the expiry as cutoff for reusing work. 2012-06-26 16:01:06 +10:00
ckolivas
6e80b63bb8 Revert "Increase the getwork delay factored in to determine if work vs share is stale to avoid too tight timing."
This reverts commit d8de1bbc5b.

Wrong fix.
2012-06-26 15:43:03 +10:00
ckolivas
d8de1bbc5b Increase the getwork delay factored in to determine if work vs share is stale to avoid too tight timing. 2012-06-26 13:07:08 +10:00
Paul Sheppard
1ef52e0bac Check for submit_stale before checking for work_restart
(to keep Kano happy)
2012-06-25 19:23:10 -07:00
Paul Sheppard
df9e76bd73 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-25 10:56:04 -07:00
Paul Sheppard
90d82aa61d Revert to pre pool merge 2012-06-25 10:27:08 -07:00
Con Kolivas
c027492fa4 Make the pools array a dynamically allocated array to allow unlimited pools to be added. 2012-06-25 17:06:26 +10:00
Con Kolivas
5cf4b7c432 Make the devices array a dynamically allocated array of pointers to allow unlimited devices. 2012-06-25 16:59:29 +10:00
Con Kolivas
17ba2dca63 Logic fail on queueing multiple requests at once. Just queue one at a time. 2012-06-25 10:51:45 +10:00
Con Kolivas
42ea29ca4e Use a queueing bool set under control_lock to prevent multiple calls to queue_request racing. 2012-06-25 00:58:18 +10:00
Con Kolivas
63dd598e2a Queue multiple requests at once when levels are low. 2012-06-25 00:42:51 +10:00
Con Kolivas
757922e4ce Use the work clone flag to determine if we should subtract it from the total queued variable and provide a subtract queued function to prevent looping over locked code. 2012-06-25 00:33:47 +10:00
Con Kolivas
49dd8fb548 Don't decrement staged extras count from longpoll work. 2012-06-25 00:25:38 +10:00
Con Kolivas
d93e5f710d Count longpoll's contribution to the queue. 2012-06-25 00:23:58 +10:00
Con Kolivas
05bc638d97 Increase queued count before pushing message. 2012-06-25 00:08:50 +10:00
Con Kolivas
32f5272123 Revert "With better bounds on the amount of work cloned, there is no need to age work and ageing it was picking off master work items that could be further rolled."
This reverts commit 5d90c50fc0.
2012-06-25 00:03:37 +10:00
Con Kolivas
5d90c50fc0 With better bounds on the amount of work cloned, there is no need to age work and ageing it was picking off master work items that could be further rolled. 2012-06-24 23:38:24 +10:00
Con Kolivas
47f66405c0 Alternatively check staged work count for rolltime capable pools when deciding to queue requests. 2012-06-24 23:10:02 +10:00
Con Kolivas
efa9569b66 Test we have enough work queued for pools with and without rolltime capability. 2012-06-24 22:59:56 +10:00
Con Kolivas
1bbc860a15 Don't count longpoll work as a staged extra work. 2012-06-24 22:47:51 +10:00
Con Kolivas
ebaa615f6d Count extra cloned work in the total queued count. 2012-06-24 22:16:04 +10:00
Con Kolivas
74cd6548a9 Use a static base measurement difference of how many items to clone since requests_staged may not climb while rolling. 2012-06-24 22:00:37 +10:00
Con Kolivas
7b57df1171 Allow 1/3 extra buffer of staged work when ageing it. 2012-06-24 21:58:52 +10:00
Con Kolivas
53269a97f3 Revert "Simplify the total_queued count to those staged not cloned and remove the locking since it's no longer a critical value."
This reverts commit 9f811c528f.
2012-06-24 21:57:49 +10:00
Con Kolivas
a05c8e3fd9 Revert "Take into account total_queued as well when deciding whether to queue a fresh request or not."
This reverts commit b20089fdb7.
2012-06-24 21:57:18 +10:00
Con Kolivas
750474bcfb Revert "Further simplify the total_queued counting mechanism and do all dec_queued from the one location."
This reverts commit 790acad9f9.
2012-06-24 21:56:53 +10:00
Con Kolivas
d2c1a6bd6b Revert "Make sure to have at least one staged work item when deciding whether to queue another request or not and dec queued in free work not discard work."
This reverts commit c860172275.
2012-06-24 21:56:36 +10:00
Con Kolivas
c860172275 Make sure to have at least one staged work item when deciding whether to queue another request or not and dec queued in free work not discard work. 2012-06-24 21:52:07 +10:00
Con Kolivas
790acad9f9 Further simplify the total_queued counting mechanism and do all dec_queued from the one location. 2012-06-24 21:42:34 +10:00
Con Kolivas
b20089fdb7 Take into account total_queued as well when deciding whether to queue a fresh request or not. 2012-06-24 20:59:55 +10:00
Con Kolivas
ded16838db Add the getwork delay time instead of subtracting it when determining if a share is stale. 2012-06-24 20:48:02 +10:00
Con Kolivas
b5757d124b Don't count getwork delay when determining if shares are stale. 2012-06-24 20:45:47 +10:00
Con Kolivas
9f811c528f Simplify the total_queued count to those staged not cloned and remove the locking since it's no longer a critical value.
Clone only anticipated difference sicne there will be a lag from the value returned by requests_staged().
Keep 1/3 buffer of extra work items when ageing them.
2012-06-24 20:38:40 +10:00
Con Kolivas
411784a99d As work is sorted by age, we can discard the oldest work at regular intervals to keep only 1 of the newest work items per mining thread. 2012-06-24 19:53:31 +10:00
Con Kolivas
359635a8cf Only roll enough work to have one staged work for each mining thread. 2012-06-24 18:44:09 +10:00
Con Kolivas
0c970bbd1c Roll work again after duplicating it to prevent duplicates on return to the clone function. 2012-06-24 18:22:20 +10:00
Con Kolivas
610302afcb Abstract out work cloning and clone $mining_threads copies whenever a rollable work item is found and return a clone instead. 2012-06-24 18:10:17 +10:00
Con Kolivas
a8ae1a43ea Rolltime should be used as the cutoff time for primary work as well as the rolled work, if present. 2012-06-24 14:38:31 +10:00
Con Kolivas
c20a89d998 Take into account average getwork delay as a marker of pool communications when considering work stale. 2012-06-24 14:20:29 +10:00
Con Kolivas
f32ffb8718 Work out a rolling average getwork delay stored in pool_stats. 2012-06-24 13:20:17 +10:00
Con Kolivas
4e60a62ae2 Getwork delay in stats should include retries for each getwork call. 2012-06-24 12:55:56 +10:00
ckolivas
6a45cbbdfb Merge branch 'master' of https://github.com/ckolivas/cgminer 2012-06-23 23:45:08 +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
Paul Sheppard
6ce4871b94 Merge branch 'conf_pools' 2012-06-20 15:49:51 -07:00
Paul Sheppard
0bcdc2cac4 Add ability to disable pools in config file.
Also fix pool writing in priorty order.
2012-06-20 15:49:07 -07:00
Paul Sheppard
57fa2be13b Write pools in priority order 2012-06-20 11:40:28 -07:00
Paul Sheppard
e037028159 Merge branch 'master' of https://github.com/ckolivas/cgminer.git
Conflicts:
	driver-bitforce.c
2012-06-19 10:40:00 -07:00
Con Kolivas
f70577b097 Merge pull request #229 from luke-jr/modminer_primary
modminer: Don't delay 2nd+ FPGAs during work restart
2012-06-19 04:38:49 -07:00
Luke Dashjr
1215da39ee modminer: Don't delay 2nd+ FPGAs during work restart
Add primary_thread boolean to threads to identify a single one as the "primary" thread for shared-resource multithreading.
This is needed since ModMiners use multiple threads to interface with independent hashing components.
2012-06-18 05:51:09 +00:00
Paul Sheppard
af27b40e34 Merge branch 'master' of https://github.com/pshep/cgminer.git 2012-06-17 09:47:02 -07:00
Paul Sheppard
fe4c0869bf Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	cgminer.c
2012-06-17 09:44:42 -07:00
Paul Sheppard
7ae22e21e3 Disable OpenCL code when not available. 2012-06-16 20:24:40 -07:00
Con Kolivas
8faf3c90b8 Fix openwrt crashing on regeneratehash() by making check_solve a noop. 2012-06-16 09:22:11 +10:00
Paul Sheppard
6ed75c96cb Remove nDev limit in watchdog_thread
Can't work out why it was even there... so there could still be a reason
for it!
2012-06-15 12:11:28 -07:00
Paul Sheppard
fa3f357fc1 Sick/dead handling for non-gpus 2012-06-14 17:36:59 -07:00
Paul Sheppard
bc4a259af7 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-14 08:13:07 -07:00
Con Kolivas
bf3e15838f Fix sign warning. 2012-06-14 21:36:23 +10:00
Con Kolivas
83bf9f4334 can_roll and should_roll should have no bearing on the cycle period within the miner_thread so remove it. 2012-06-14 20:53:07 +10:00
Con Kolivas
ceec3f83c3 Check for strategy being changed to load balance when enabling LPs. 2012-06-14 20:36:17 +10:00
Con Kolivas
b0de3edeb8 Check that all threads on the device that called get_work are waiting on getwork before considering the pool lagging. 2012-06-14 17:28:24 +10:00
Con Kolivas
44f5d55d51 Iterate over each thread belonging to each device in the hashmeter instead of searching for them now that they're a list. 2012-06-14 17:16:37 +10:00
Paul Sheppard
2d1f961046 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-14 00:05:31 -07:00
Con Kolivas
6e2c12eeb0 When using rotate pool strategy, ensure we only select from alive enabled pools. 2012-06-14 16:11:29 +10:00
Con Kolivas
79f4b570f7 Start longpoll from every pool when load balance strategy is in use. 2012-06-14 15:58:18 +10:00
Con Kolivas
dbe9056df4 Add mandatory and block fields to the work struct. Flag any shares that are detected as blocks as mandatory to submit, along with longpoll work from a previously rejecting pool. 2012-06-14 15:42:43 +10:00
Paul Sheppard
b94e199649 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-13 17:31:20 -07:00
Paul Sheppard
eff2d04df0 Merge branch 'master' of https://github.com/ckolivas/cgminer.git
Conflicts:
	cgminer.c
2012-06-13 12:31:33 -07:00
Luke Dashjr
4eb23c7ea3 Bugfix: slay a variety of warnings 2012-06-13 17:03:26 +00:00
Paul Sheppard
2384d0fbc6 Removed idle mode... again!?
Changed work_reset rate to every 100ms & use defines rather than numerics.
Change total sleep time to 4300ms after performance testing/measurement (now good to 916MH/s).
Changed timeout to 15s - Throttle time is 15s.
Added support for 'Busy' when submitting work.
Improved logging text to include device identifier.
Added a thread_enable api function, called when a thread is re-enabled.
... and removed useless re-init inside scanhash.
Use modminer introduced mutex.
2012-06-12 18:20:18 -07:00
Luke Dashjr
a78d616bc5 modminer: Temperature sensor improvements
Display the temperature of each of the (up to) 4 FPGAs
2012-06-12 17:04:03 +00:00
Paul Sheppard
861388f960 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-12 09:04:42 -07:00
Luke Dashjr
76f96f4717 New driver: BTCFPGA ModMiner 2012-06-12 02:38:36 +00:00
Luke Dashjr
d3fa59d76f Abstract generally useful FPGA code into fpgautils.c 2012-06-12 02:35:45 +00:00