1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-09 22:38:01 +00:00
Commit Graph

770 Commits

Author SHA1 Message Date
Con Kolivas
2b171f7fae Limit intensity range according to whether scrypt is in use or not. 2013-08-09 15:12:57 +10:00
Kano
ad1572f77f size check get_datestamp/get_timestamp and remove unused cgpu->init 2013-07-06 20:17:17 +10:00
Kano
385a70bea7 make all statline overflow safe 2013-07-06 19:15:59 +10:00
Con Kolivas
563feac74e Merge pull request #446 from kanoi/master
Rework logging to mostly avoid using varargs
2013-06-15 20:15:00 -07:00
Kano
7eba963477 remove varargs from logging/quit/in general as much as possible 2013-06-15 22:03:56 +10:00
ckolivas
b8a203ab33 Don't yield when downgrading a cg ilock. 2013-06-15 21:33:12 +10:00
Con Kolivas
736dfb4075 Don't yield on grabbing the read lock variant of cglocks. 2013-06-15 12:35:16 +10:00
Con Kolivas
cd9ff7f6b8 Only display as many device rows as the maximum live existed at any time. 2013-06-15 01:28:00 +10:00
Kano
7ad9132bbe usb lock out use cg locks 2013-06-15 01:02:27 +10:00
Kano
ad30d41f79 usb lock out transfers during open/close 2013-06-14 23:48:03 +10:00
Kano
84ffcbc51b Use mining start time for device MH/U calculations 2013-06-14 01:09:50 +10:00
Con Kolivas
0aeb1b5480 Yield after releasing a lock in case we are on a device with limited CPU resources. 2013-06-13 13:28:48 +10:00
ckolivas
065d4aabf6 Fix build. 2013-06-09 13:29:38 +10:00
ckolivas
9b2e517f30 Use cgsem structures instead of the flaky pings in the work queue to start mining threads and remove the unused thr_info_freeze function. 2013-06-09 12:20:04 +10:00
ckolivas
b59c33800b Implement cgminer specific cgsem semaphores to imitate unnamed semaphore behaviour on osx which does not support them. 2013-06-06 13:08:00 +10:00
ckolivas
05123bf452 Temporarily fix apple not having semtimedop by ignoring the timeout value. 2013-06-05 15:50:30 +10:00
Con Kolivas
727184d6ef Change the --device parameter parsing and configuration to use ranges and comma separated values. 2013-06-03 11:09:36 +10:00
Con Kolivas
cc04d3abc7 Use a counting semaphore to signal the usb resource thread that it has work to do. 2013-05-30 11:01:29 +10:00
Con Kolivas
876e7e5893 Merge branch 'icarus-dev' into usbdev
Conflicts:
	usbutils.h
2013-05-29 00:01:54 +10:00
Con Kolivas
6972ec62a7 Execute driver shutdown sequence during kill_work. 2013-05-28 23:33:32 +10:00
Kano
2f94ec8025 usb separate thread for resource locking and modified windows locking code 2013-05-27 23:30:18 +10:00
Con Kolivas
269a8de977 First pass rewriting serialdev into direct usb dev for avalon driver. 2013-05-27 15:43:22 +10:00
Con Kolivas
44736b3012 Make submit_nonce return a bool for whether it's a valid share or not. 2013-05-26 20:59:40 +10:00
Kano
c9cc7445e5 miner.h remove unused device_file and add device_data 2013-05-20 02:52:07 +10:00
Kano
8fe40e98ba miner.h icarus no long uses fd 2013-05-20 02:46:58 +10:00
Con Kolivas
01fca3e756 Create a logwin_update function which mandatorily updates the logwin and use it when input is expected to prevent display refresh delays. 2013-05-19 21:28:53 +10:00
Con Kolivas
3a2008ac61 Use a persistent single separate thread for stratum share submission that uses workqueues since all stratum sends are serialised. 2013-05-19 11:25:45 +10:00
Con Kolivas
1a7a87c2a6 Use a discrete device target for scrypt that dynamically changes to ensure we still report a work utility even if no shares are submitted such as in solo mining. 2013-05-11 20:29:48 +10:00
Con Kolivas
2fb6637b5a Make set_work_target a function to set a specified char as target for use elsewhere. 2013-05-11 19:51:43 +10:00
Con Kolivas
68196588c9 Make raw sockets compile on windows 2013-05-09 11:39:09 +10:00
Con Kolivas
31aa4f6ceb Use raw sockets without curl for stratum communications. 2013-05-08 21:59:58 +10:00
Con Kolivas
009008ade7 Fix BFLSC building. 2013-04-26 12:00:44 +10:00
Con Kolivas
f4b2790761 Remove all CPU mining code. 2013-04-22 14:35:43 +10:00
Con Kolivas
4597c0a17e Provide endian_flipX functions to avoid special casing big endian in cgminer.c 2013-04-22 09:35:48 +10:00
Con Kolivas
8d81f1d207 Provide a flip128 helper to simplify big endian flipping. 2013-04-22 09:28:06 +10:00
Con Kolivas
c351f8d8d3 Use flip helpers to simplify code for calculation of midstate. 2013-04-22 09:23:13 +10:00
Con Kolivas
62a1403b3b Move util.c exports to util.h 2013-04-21 19:41:54 +10:00
James Z.M. Gao
7ada22a4e6 define le32toh if needed 2013-04-19 09:13:36 +08:00
Con Kolivas
6b714dd431 Increment hardware error count from the one site. 2013-04-18 14:47:46 +10:00
Con Kolivas
dbab07a12d Only reset an avalon device with no results when there are no results consecutively. 2013-04-15 20:30:02 +10:00
Con Kolivas
5c7a32fde8 Rationalise and simplify the share diff and block solve detection to a common site. 2013-04-08 21:26:10 +10:00
Con Kolivas
293b94c7ed Add API support for Avalon. 2013-04-07 01:39:20 +11:00
Con Kolivas
97bad1eef6 Only get extra work in fill_queue if we don't have any unqueued work in the list. 2013-04-06 13:01:42 +11:00
Con Kolivas
67be00e41e Create an array of 4 lots of work for avalon and cycle through them. 2013-04-06 02:25:48 +11:00
Con Kolivas
67c5da49b6 Members of cgpu_info for avalon are not meant to be in the union. 2013-04-05 21:01:42 +11:00
Con Kolivas
71bae003bc First draft of port of avalon driver to new cgminer queued infrastructure. 2013-04-05 14:52:07 +11:00
James Z.M. Gao
c9ae715019 Compile CPU mining for win32 and win64 2013-04-04 22:59:10 +08:00
Kano
f080db5fee generic work structure flags for BFLSC (and usable by other drivers if needed) 2013-04-02 09:50:05 +11:00
Kano
ea327f7ba2 work queues - remove new but unnecessary functions 2013-04-01 13:10:15 +11:00
Kano
73616fb810 miner.h missing extern 2013-04-01 00:38:19 +11:00
Kano
131e20042a functions for handling work queues 2013-04-01 00:35:50 +11:00
Kano
b3ae0f168e find_work() to find work in devices work queue 2013-03-31 21:54:32 +11:00
Kano
956d444054 avalon usbutils requirements 2013-03-21 15:25:10 +11:00
Con Kolivas
13e19de4d5 Calculate work utility for devices that support target diffs of greater than 1, and update scrypt code to use it. 2013-03-17 10:15:24 +11:00
Kano
b21747b978 USB modify -n and --usb-dump to only show known devices or use new --usb-list-all option to see all 2013-03-15 00:02:17 +11:00
Con Kolivas
b6e3d5b4fa Make pool adding while running asynchronous, using the pool test thread functionality. 2013-03-14 22:34:53 +11:00
Con Kolivas
ffc8681f91 Merge pull request #403 from kanoi/bflsc
USB add --usb options to limit USB device selection v0.1 + --usb-dump display brief dump if value = 0
2013-03-12 18:07:17 -07:00
Con Kolivas
b5b3ca4911 Convert gbt_lock to a cg_lock. 2013-03-12 22:44:41 +11:00
Con Kolivas
b8ed231f64 Add intermediate variants of cglocks that can be up or downgraded to read or write locks and use them for stratum work generation. 2013-03-12 22:40:23 +11:00
Con Kolivas
26ddd1fd20 Move the stratum and GBT data to be protected under a new cg_lock data_lock. 2013-03-12 22:31:45 +11:00
Con Kolivas
fd87825bf9 Convert the ch_lock to cg_lock. 2013-03-12 22:17:08 +11:00
Con Kolivas
0bbaaa9723 Convert the control_lock to a cg_lock. 2013-03-12 22:07:06 +11:00
ckolivas
18fc2df483 Implement cg_lock write biased rwlocks. 2013-03-11 13:23:51 +11:00
Kano
3f50e878a2 USB add --usb options to limit USB device selection v0.1 2013-03-11 10:58:28 +11:00
Con Kolivas
5412323e26 Fix memory leak with share submission on GPU work structures as discovered by twobitcoins. 2013-03-09 15:12:41 +11:00
Con Kolivas
e0196a3307 Don't start testing any pools with the watchpool thread if any of the test threads are still active. 2013-03-09 11:33:50 +11:00
Con Kolivas
c618d868cc Remove unused pthread_t typedefs from struct pool. 2013-03-09 09:43:40 +11:00
ckolivas
e746ed6412 Make the initialisation of the stratum thread more robust allowing the watchpool thread safe access to it after the stratum thread is started. 2013-03-08 15:18:10 +11:00
Con Kolivas
96ae17a466 Merge pull request #398 from kanoi/bflsc
API use control_lock when switching pools + Setup BFLSC support + API add 'Network Difficulty' to 'coin'
2013-03-06 15:51:33 -08:00
Kano
0eafc8b9fe API add 'Network Difficulty' to 'coin' 2013-03-07 07:40:05 +11:00
Kano
540f3e89bc Setup BFLSC support 2013-03-07 00:00:31 +11:00
Kano
419083a7d2 API use control_lock when switching pools 2013-03-06 21:19:02 +11:00
ckolivas
386ea2dffb Instead of keeping track of when the last work item was generated to keep stratum connections open, keep them open if any shares have been submitted awaiting a response. 2013-03-06 14:34:17 +11:00
Kano
2f6660e83f configure - set USE_USBUTILS when usbutils is required and use it in the code 2013-03-05 18:33:43 +11:00
Kano
120e9a072d make rw locks: mining_thr_lock and devices_lock 2013-03-04 22:46:34 +11:00
Kano
be8cadbc46 Hotplug - allow setting interval via --hotplug or API 2013-03-04 17:26:11 +11:00
Kano
c14f2ec642 API V1.25 - add 'Last Valid Work' time for each device 2013-03-03 19:33:20 +11:00
Con Kolivas
b2b0d10a00 Merge branch 'master' into usb-dev 2013-02-28 23:37:06 +11:00
Con Kolivas
b4cac54a7e Keep stratum connections open for 2 minutes after the last work item was staged to allow stray shares to be submitted on pool switching. 2013-02-28 23:35:31 +11:00
Con Kolivas
6bf79626b8 Merge branch 'master' into usb-dev 2013-02-23 13:59:37 +11:00
ckolivas
68d691093c Move to storing the nonce1 in the work struct instead of the sessionid for the now defunct first draft mining.resume protocol. 2013-02-22 12:55:01 +11:00
Con Kolivas
fce5434975 Add a get_queued function for devices to use to retrieve work items from the queued hashtable. 2013-02-18 14:14:10 +11:00
Con Kolivas
fda6d46e95 Add the choice of hash loop to the device driver, defaulting to hash_sole_work if none is specified. 2013-02-16 14:09:44 +11:00
Con Kolivas
c80c65eac0 Add a driver specific flush_work for queued devices that may have work items already queued to abort working on them on the device and discard them. 2013-02-16 12:38:53 +11:00
Con Kolivas
e8e88beff1 Create a central point for removal of work items completed by queued device drivers. 2013-02-16 12:28:50 +11:00
Con Kolivas
95b2020263 Create a fill_queue function that creates hashtables of as many work items as is required by the device driver till it flags the queue full. 2013-02-16 12:14:13 +11:00
Con Kolivas
5e3253a7cf Create the hash queued work variant for use with devices that are fast enough to require a queue. 2013-02-16 11:54:05 +11:00
Con Kolivas
ab0cc58cb4 Merge branch 'master' into usb-dev 2013-02-15 23:15:11 +11:00
Con Kolivas
be4705a003 Provide support for mining.resume with stratum, currently re-authorising after successful resumption pending finalising of the protocol process. 2013-02-15 23:05:29 +11:00
Con Kolivas
1bf1f4a217 Add timestamps to stratum_share structs as they're generated and copy the stratum sessionid if it exists to stratum work generated. 2013-02-15 15:36:29 +11:00
Con Kolivas
c851f39598 Store session id for stratum if the pool supports it for future mining.resume support. 2013-02-15 14:46:30 +11:00
Con Kolivas
61a3e1b1d1 Merge pull request #382 from kanoi/hotplug
USB tidy up requests + Hotplug
2013-02-09 02:36:27 -08:00
Con Kolivas
5d581cb5d7 Use blank_get_statline_before for GPU devices that don't support adl monitoring. 2013-02-09 19:27:57 +11:00
Kano
bc5755233c call a separate get_devices() with locking, as required 2013-02-08 02:12:09 +11:00
Kano
983fe2b0c0 usbutils hotplug v0.1 2013-02-08 01:42:36 +11:00
Con Kolivas
0244998ef8 Merge branch 'master' into usb-dev 2013-02-04 11:23:20 +11:00
Con Kolivas
d644fdf1f4 Cache the coinbase length to speed up stratum work generation. 2013-02-04 11:19:12 +11:00
Con Kolivas
0870ab7532 Cache the header length when generating stratum work to avoid calculating it on every work generation, and to only need one alloc+sprintf, speeding up work generation. 2013-02-04 11:06:05 +11:00
Con Kolivas
5d122cad93 Provide wrappers for grabbing of thr value under the mining_thr_lock. 2013-02-03 23:41:41 +11:00
Kano
7abf30b2c0 distinguish between drv and it's id enum now called drv_id 2013-02-03 22:51:05 +11:00
Kano
61ec1fe91f mutex all access to mining_thr 2013-02-02 20:14:55 +11:00
Kano
212f32e5e0 Split thr_info array into control_thr and mining_thr pointers so more mining threads can be added later 2013-02-02 20:14:53 +11:00
Kano
7fbc3770b4 USB move usbdev info that needs to stay around into usbinfo 2013-02-02 20:14:36 +11:00
Kano
c1eae36f7b API stats - include pool network bytes + in miner.php 2013-02-02 20:14:33 +11:00
Kano
34bcc1c66d USB automatically handle losing the device and report nodev in the API 2013-02-02 20:14:29 +11:00
Kano
0b3d8c89c2 API zero - zero statistics - all or bestshare - with optional on screen summary 2013-02-02 20:14:27 +11:00
Kano
f9e04a3c5b device_drv - allow .name to be changed before add_cgpu() 2013-02-02 20:14:23 +11:00
Kano
a344deb6ac rename device_api -> device_drv and all related api -> drv and add a device_drv->drv enum for identifying which driver each is 2013-02-02 20:14:19 +11:00
Kano
1ce817d4df Merge branch 'api' 2013-01-03 21:48:22 +11:00
Kano
e3db37a64e Merge branch 'bfl' 2013-01-03 21:47:41 +11:00
Kano
03f626e68d Remember best share per pool and return in API pools 2013-01-02 21:51:09 +11:00
Kano
03c2cabab2 BFL include all USB requirements 2012-12-31 23:46:03 +11:00
Con Kolivas
e1387dc85c Change the pool stratum socket buffer to be dynamically allocated to accomodate any size coinbase and keep receiving data in recv line for up to 60s if no end of line has been received. 2012-12-29 11:29:59 +11:00
Con Kolivas
e1d7ecdd35 Do not try to generate stratum work unless the notify command has succeeded. 2012-12-29 09:45:40 +11:00
Con Kolivas
d3bfee14b3 Display the current pool diff in the status line. 2012-12-25 23:14:21 +11:00
Con Kolivas
f0c1782c03 Generate the output hash for scrypt as well and use the one function to set share_diff. 2012-12-25 14:08:27 +11:00
Kano
e931b72753 API V1.23 - new pgaset command, to be used soon 2012-12-19 10:43:27 +11:00
Kano
072909a12f MMQ count work check timeout failures 2012-12-17 13:21:24 +11:00
Kano
38ff2a7df9 MMQ allow partial work replies and count them 2012-12-17 13:20:10 +11:00
Con Kolivas
cada0d3195 Check for EWOULDBLOCK when supported in send and recv as well. 2012-12-14 21:36:42 +11:00
Con Kolivas
fd1bd9e7c3 Merge pull request #365 from kanoi/api
Pool store data transfer stats + API stats - display pool byte transfer stats
2012-12-12 15:29:51 -08:00
Kano
138465bf0c Pool store data transfer stats 2012-12-13 00:56:10 +11:00
Kano
f3f8b4fdb4 MMQ handle over temp differently and hash longer 2012-12-12 17:01:28 +11:00
Con Kolivas
b28055517e Implement a completely new getwork scheduler.
Stage all work from the one thread, making it possible to serialise all requests minimising the number of getworks requested or local work generated.
Use a pthread conditional to wake up the thread whenever work is removed to generate enough work to stay above the watermark set by opt_queue.
Remove all remnants of the old queueing mechanism, deleting the now defunct queued count.
2012-12-08 21:13:04 +11:00
Con Kolivas
c99636f21b Begin tearing down the old workio command queues by removing submit commands from there and submit them asynchronously via their own threads. 2012-12-07 13:21:46 +11:00
Con Kolivas
8ebf4f6ecd Style changes. 2012-12-04 21:52:41 +11:00
Kano
e55fe73f9a API add Best Share to summary 2012-12-03 23:08:11 +11:00
Kano
a67e96c3e4 API lock access to some summary statistics (and copy them) 2012-12-03 11:36:15 +11:00
Kano
152e7e36a2 mmq usb v0.4 + api usb stats 2012-12-02 21:48:37 +11:00
Con Kolivas
3ab03e8ff9 Merge pull request #334 from denis2342/pkgconfig
third of version of pkg-config changes
2012-12-02 01:41:03 -08:00
Con Kolivas
33c9faae11 Pass ostate values around in scrypt to be able to extract full hashes if needed later on. 2012-12-01 21:47:27 +11:00
Peter Stuge
318ef85a9f Require pkg-config to find libusb-1.0, and fix libusb.h #includes 2012-11-25 05:42:42 +01:00
Con Kolivas
8bc60506c5 Revert "Find libusb-1.0 with pkg-config except on mingw, and fix #include path"
This reverts commit ce72dbea7d.
2012-11-25 09:47:26 +11:00
nelisky
c93e5e95cd openwrt needs roundl 2012-11-24 13:11:46 -08:00
Con Kolivas
217be6ed98 Do away with the flaky free_work api in the driver code which would often lose the work data in opencl and simply flush it before exiting the opencl scanhash. 2012-11-25 00:37: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
Peter Stuge
ce72dbea7d Find libusb-1.0 with pkg-config except on mingw, and fix #include path 2012-11-21 19:56:05 +01:00
Con Kolivas
e55ef04df6 Revert "Find libusb-1.0 using pkg-config and correct the libusb.h #include path"
This reverts commit 171c3d0c72.

Rollback breakage.
2012-11-18 23:44:08 +11:00
Con Kolivas
9ad02fe303 Support workid for block submission on GBT pools that use it. 2012-11-18 21:48:44 +11:00
Peter Stuge
171c3d0c72 Find libusb-1.0 using pkg-config and correct the libusb.h #include path 2012-11-16 00:26:55 +01: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
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
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
Con Kolivas
a8e1ebb11c Add endian swap defines for where missing. 2012-11-06 12:01:49 +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
85f400bf80 Correct last few components of GBT block generation courtesy of Luke-jr. 2012-11-05 15:57:47 +11: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
0ba5f0f94b Use a standard function for flipping bytes. 2012-11-05 14:02:43 +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
6b34faf83c Construct block for submission when using GBT. 2012-11-04 10:24:09 +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
875ca0fcc6 Create extra work fields when generating GBT work. 2012-11-04 01:07:01 +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
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
ckolivas
a2d5783509 server and client sockaddr_in are no longer used in struct pool. 2012-10-30 16:45:27 +11:00
Con Kolivas
e575763a80 Avoid redefining macros and align to 4 byte boundaries. 2012-10-22 22:06:00 +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
Kano
fc14b2ee07 MMQ new initialisation (that works) and clocking control 2012-10-17 09:56:42 +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
7450b25e75 Dramatically simplify the dynamic intensity calculation by oversampling many runs through the opencl kernel till we're likely well within the timer resolution on windows. 2012-10-14 12:07:27 +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
d15c70f8a8 Fix wrong byteswap macro being used on mingw32 which was breaking target generation on stratum. 2012-10-12 11:30:35 +11:00
Con Kolivas
a977fa4766 Fix lack of htobe64 on mingw32. 2012-10-11 20:53:56 +11:00
Con Kolivas
4fbc570fa4 Reinstate the history on dynamic intensity mode to damp fluctuations in intensity but use an upper limit on how much the value can increase at any time to cope with rare overflows. 2012-10-11 20:30:47 +11:00
Con Kolivas
0a90207111 Merge branch 'master' into stratum 2012-10-07 13:22:17 +11:00
Con Kolivas
aa35fbcc9a Fix sign warning in ocl.c 2012-10-07 10:21:20 +11:00
Con Kolivas
40b747bae6 Put scrypt warning on separate line to avoid 0 being shown on windows as bufsize. 2012-10-07 10:08:45 +11: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
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
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
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
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
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
7415d7aaa0 Begin implementing a hash database of submissions and attempt sending results. 2012-09-29 16:10:13 +10:00
Con Kolivas
aa93fa336c Copy parameters from stratum work required for share submission. 2012-09-29 15:02:23 +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
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
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
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
64df34cd4e Create a stratum work structure to store current work variables. 2012-09-27 13:26:09 +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
e3f1b02e9a Extract and store various parameters on stratum init confirming successful mining notify. 2012-09-26 16:49:51 +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
144a016097 Add data structures to pool struct for socket communications. 2012-09-24 16:50:04 +10:00
Kano
7c32562d80 API stats add some pool getwork difficulty stats 2012-09-24 11:34:50 +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
Con Kolivas
3243b91e2d Merge pull request #310 from kanoi/master
API debug, API-README, API Correct diff1 name, Device diff1, API diff1 etc.
2012-09-20 23:23:15 -07:00
Con Kolivas
618999026f As we average gpu time over 5 work intervals for dynamic GPU intensity, there is no need to maintain a rolling average and it avoids the potential long term corruption of a single overflow value. 2012-09-21 16:10:34 +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
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
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
9487ba05cd API/BFL identify a device - currently only BFL to flash the led 2012-09-04 12:52:11 +10:00
Kano
7a2407f15c BFL add throttle count to internal stats + API 2012-09-04 02:26:17 +10:00
Kano
4023872b76 count device diff1 shares 2012-09-01 23:51:51 +10:00
Kano
a178039a65 miner.h max_hashes -> int64_t 2012-08-30 23:22:37 +10:00
Con Kolivas
3acc064be3 Merge pull request #306 from kanoi/api
Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php (to display it)
2012-08-23 07:50:28 -07:00
Con Kolivas
618b3e8b11 Track queued and staged per pool once again for future use. 2012-08-23 23:50:38 +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
ckolivas
edd9b81622 Do not add time to dynamic opencl calculations over a getwork. 2012-08-22 10:07:20 +10:00
Kano
b3e9858c9f API new command 'coin' with mining information 2012-08-20 16:07:20 +10:00
Kano
9210abdf60 API V1.17 show Work Utility and Diff1 Shares 2012-08-19 15:09:45 +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
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
5fadfdb219 Overlap queued decrementing with staged incrementing. 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
2480cf23cc Don't try to get bitforce temperature if we're polling for a result to minimise the chance of interleaved responses. 2012-08-15 10:54:38 +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
Kano
95dff7363e API allow display/change failover-only setting 2012-08-14 12:54:27 +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
8085ae6854 Further simplify the queue request mechanism. 2012-08-11 14:04:55 +10:00
Con Kolivas
3576abf8a7 Make pool_disabled the first in the enums == 0, fixing the pool enabled count which compares if value is not enabled before enabling it. 2012-08-05 15:43:27 +10:00
Con Kolivas
fc44b6d7a1 Use different variables for command line specified lookup gap and thread concurrency to differentiate user defined versus auto chosen values. 2012-08-05 15:32:44 +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
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
7fa794a499 It is not critical getting the temperature response in bitforce so don't mandatorily wait on the mutex lock. 2012-08-03 09:26:43 +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
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
500ed85bb3 Merge pull request #271 from luke-jr/cg_logfixes
Logging bugfixes
2012-07-29 03:46:49 -07: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
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
Con Kolivas
89eb1fa393 Check the maximum allocable memory size per opencl device. 2012-07-23 17:41:31 +10:00
Con Kolivas
17dfe74f96 Allow intensities up to 20 if scrypt is compiled in. 2012-07-22 00:49:47 +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
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
Con Kolivas
0f43eb5eb7 Don't test nonce with sha and various fixes for scrypt. 2012-07-13 20:35:44 +10:00
Con Kolivas
b085c338f6 Make scrypt buffers and midstate compatible with cgminer. 2012-07-13 20:28:36 +10:00