news txt

Embed Size (px)

Citation preview

  • 8/14/2019 news txt

    1/60

    Version 2.11.4 - April 5th, 2013

    - Remove bfl-sc option from configure for 2.11 branch.- Only update hashrate calculation with the log interval.- Update the total_tv_end only when we show the log to prevent failure to updatelogs.- Minor README updates.- Add example 7970 tuning for scrypt in readme.- Update driver recommendations.- Add extensive GPU FAQs for the flood of new Scrypt miners.- Remove help option for cpumining in build environment.- Remove scripts that make it too easy to compile CPU mining support.- Win32 and win64 build updates- Remove references to CPU mining from README.- Show share hash as little endian as needed.- usbutils extra message requirements- Make hashmeter frequency for hash_queued_work match sole_work.- Update links and recommended SDKs.- Update scrypt readme re drivers and sdk.- usbutils.c usb_cmdname() usb_cmds -> string name- BFL FPGA Windows timeout set to 999ms- AUTHORS - spam update time (one year since the last)- Update README for x970 memdiff values.- Update README to match changes to display.

    - Remove increasingly irrelevant discarded work from status lines.- Remove increasingly irrelevant queued and efficiency values from status andmove WU to status line.- Allow cgminer to start if usb hotplug is enabled but no devices yet exist.- Do not scan other gpu platforms if one is specified.- Update README for sync objects on windows.- Update README about intensity.- Add information for setting gpu max alloc and sync parameters for windows withscrypt.- If the hashmeter is less than the log interval and being updated by thewatchdog, don't update the hashrate.

    Version 2.11.3 - March 17, 2013

    - Update docs and reorder README to show executive summary near top.- Update the hashmeter at most 5 times per second.- Usbutils use its own internal read buffer- Calculate work utility for devices that support target diffs of greater than1, and update scrypt code to use it.- usbutils allow read termination match to be a string- Set default GPU threads to 1 for scrypt.- Connect backup stratum pools if the primary pool cannot deliver work.- Use a new algorithm for choosing a thread concurrency when none or no shadervalue is specified for scrypt.- Do not round up the bufsize to the maximum allocable with scrypt.

    - Remove the rounding-up of the scrypt padbuffer which was not effectual andcounter-productive on devices with lots of ram, limiting thread concurrenciesand intensities.- bufsize is an unsigned integer, make it so for debug.- Update the hashmeter once per second but only display the extra logs everyopt_log_inteval.- add a dummy ztex to usbutils so cgminer -n lists ztex also- nDevs required for -n with usb- USB device list - convert some common error numbers to messages- USB -n 'known' text only without ---usb-list-all

  • 8/14/2019 news txt

    2/60

    - USB modify -n and --usb-dump to only show known devices or use new--usb-list-all option to see all- Make pool adding while running asynchronous, using the pool test threadfunctionality.- Only curl easy cleanup a stratum curl if it exists.- Sacrifice the ram of curl handles in stratum disconnects when we have builtwith old libcurl to avoid crashes.- cgminer -n to include a USB device list- usbutils allow call of usb_all() from other code- Convert gbt_lock to a cg_lock.- Add intermediate variants of cglocks that can be up or downgraded to read orwrite locks and use them for stratum work generation.- Move the stratum and GBT data to be protected under a new cg_lock data_lock.- Convert the ch_lock to cg_lock.- Convert the control_lock to a cg_lock.- Remove unused qd_lock.- Implement cg_lock write biased rwlocks.- do usb_initialise() after the started message so we see it- --usb-dump display brief dump if value = 0- USB add --usb options to limit USB device selection v0.1

    Version 2.11.2 - March 9, 2013

    - Whitelist AMD APP SDK 2.8 for diablo kernel.- Cope with the highest opencl platform not having usable devices.- Fix memory leak with share submission on GPU work structures as discovered bytwobitcoins.- usb_cleanup() without locking.- Use curl_easy_cleanup to close any open stratum sockets.- Show pool number in switch message- Don't start testing any pools with the watchpool thread if any of the testthreads are still active.- Set sockd to false should curl setup fail on stratum.- Close any open sockets when reusing a curl handle and reopen the socketwhenever we're retrying stratum.- Set pool died on failed testing to allow idle flag and time to be set.

    - Remove unused pthread_t typedefs from struct pool.- Perform pool_resus on all pools that are found alive with the test poolthreads.- Use pool_unworkable in select_balanced as well.- Differentiate pool_unusable from pool_unworkable.- Keep a connection open on higher priority stratum pools to fail back to them.- Rename threads according to what pool they're associated with as well.- Set the wrong bool in pool_active- Start the stratum thread only if we successfully init and authorise it,otherwise unset the init flag.- Make the initialisation of the stratum thread more robust allowing thewatchpool thread safe access to it after the stratum thread is started.- API no longer ignore send() status

    - API make the main socket non-static

    Version 2.11.1 - March 7, 2013

    - Shorten the time before keepalive probes are sent out and how frequentlythey're sent with stratum curls.- Only set stratum auth once to prevent multiple threads being started.- Display select return value on select fail in stratum thread.- Clear the socket of anything in the receive buffer if we're going to retry

  • 8/14/2019 news txt

    3/60

    connecting.- Allow pools to be resuscitated on first startup by the watchpool thread.- Check all pools simultaneously at startup switching to the first alive one tospeed up startup.- Clear just the socket buffer when we don't care what is left in a stratumsocket.- Clear the stratum socket whenever we are closing it since the buffer is goingto be reused.- Do not continue work from a stratum pool where the connection has beeninterrupted.- Reset stratum_notify flag on suspend_stratum as well.- Close any sockets opened if we fail to initiate stratum but have opened thesocket.- Close any existing stratum socket if we are attempting to restart stratum sothe pool knows the connection has gone.- Show mechanism of stratum interruption if select times out.- Make stratum connection interrupted message higher priority to be visible atnormal logging levels.- Implement client.show_message support for stratum.- API add 'Network Difficulty' to 'coin'- Setup BFLSC support- API use control_lock when switching pools- Make sure to retry only once with noresume support for stratum.- 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 submittedawaiting a response.- usbutils.c copy full size to 'Last Command'- configure - set USE_USBUTILS when usbutils is required and use it in the code- Clear last pool work on switching pools if the current pool supports localwork generation or we are in failover only mode.- make rw locks: mining_thr_lock and devices_lock- Release MMQ device only once (not 4 times)- api.c fix MSG overlap- Hotplug - allow setting interval via --hotplug or API- curses - fix - put a dev_width inside #ifdef- usb_cleanup() use correct locking mechanism- Implement and use usb_cleanup() on shutdown or restart

    - miner.php report 'Last Valid Work' as time before request- API - return Last Valid Work- api -> drv- ZTX bug set missing drv_id

    Version 2.11.0 - March 2, 2013

    - Update kernel file names signifying changes.- Update a pool's last work time when the work is popped as well as staged.- API always report failed send() replies- Update diff stale: total and pools when stratum throws away shares- Keep stratum connections open for 2 minutes after the last work item was

    staged to allow stray shares to be submitted on pool switching.- Try to extract the sessionid associated with mining.notify on 3rd level arrayand submit it along with the userid to support mining resume, failing gracefullyand restarting if the pool rejects it.- Speed up watchdog interval and therefore display updates to 2 seconds.- Update copyright dates.- Cope with misread sessionid on stratum for now.- Use constants from the array of __constants throughout the diablo kernel.- Create a __constant array for use within diablo kernel.- Fix --benchmark generating valid work for cgminer.

  • 8/14/2019 news txt

    4/60

    - Use the sessionid as passed on stratum connect to attempt to resume aconnection once and then clear it if it fails, to use a new connection.- Move to storing the nonce1 in the work struct instead of the sessionid for thenow defunct first draft mining.resume protocol.- Use global constant arrays for all other constants used in scrypt kernel.- Use global __constants for sha functions in scrypt kernel.- Use constants for endian swap macros.- Revise scrypt kernel copyright notice.- Separate out additions in scrypt kernel.- Reuse some Vals[] variables that can be assigned to constants earlier in thepoclbm kernel, making for fewer ops.- Put all constants used in poclbm kernel into __const memory array to speed upconcurrent reads on the wavefront.- BFL stop 1st init command if no device- Add a get_queued function for devices to use to retrieve work items from thequeued hashtable.- Bugfix: Duplicate stratum sessionid when copying work, to avoid double-free- Bugfix: Missing pool_no parameter to applog for no-stratum-sessionid debugmessage- Add the choice of hash loop to the device driver, defaulting to hash_sole_workif none is specified.- Add comments.- Add a driver specific flush_work for queued devices that may have work itemsalready queued to abort working on them on the device and discard them.

    - Flush queued work on a restart from the hash database and discard the workstructs.- Create a central point for removal of work items completed by queued devicedrivers.- Create a fill_queue function that creates hashtables of as many work items asis required by the device driver till it flags the queue full.- Create the hash queued work variant for use with devices that are fast enoughto require a queue.- Update copyright year.- Fix tv_lastupdate being made into tv_end and update the hashmeter on cycle,not opt_log_interval.- Fix tv_lastupdate being made into tv_end and update the hashmeter on cycle,not opt_log_interval.

    - Only continue submitting shares with mining.resume support on stratum when thesession id matches.- Provide support for mining.resume with stratum, currently re-authorising aftersuccessful resumption pending finalising of the protocol process.- Provide basic framework for restarting stratum depending on whether resumesupport exists or not.- Abstract out the setting up of the stratum curl socket.- Free sessionid in clean_work and remove redundant setting of strings to NULLsince the whole work struct is zeroed.- Only clear stratum shares mandatorily on stratum dropouts when the pool doesnot support resume.- Try resubmitting stratum shares every 5 seconds for up to 2 minutes if thepool session id exists and matches on failure to submit.

    - Do as much outside of mutex locking of sshare_lock as possible.- Remove last reference to struct work used outside the sshare_lock insubmit_work_thread- Unlock the sshare_lock in submit_work_thread when all references to work andsshare are complete.- Add timestamps to stratum_share structs as they're generated and copy thestratum sessionid if it exists to stratum work generated.- Store session id for stratum if the pool supports it for future mining.resumesupport.- API.java allow partial reads

  • 8/14/2019 news txt

    5/60

    - debug_cb buffer type warning- MMQ rewrite the last of the old scanhash loop and drastically reduce CPU- hash_sole_work can be static- Make the numbuf larger to accept larger scrypt parameters.- Keep the unique id of each work item across copy_work to prevent multiple workitems having the same id.- Abstract out the main hashing loop to allow us to use a separate loop fordevices that are fast enough to require queued work.- Provide a noop thread_enable function for drivers that don't support it.- Provide a noop thread_shutdown function for drivers that don't support it.- Provide a noop hw_error function for drivers that don't support it.- Provide a noop prepare_work for drivers that don't support it.- Provide a noop thread_init for drivers that don't support it.- Provide a noop can_limit_work for devices that don't support it.- Provide a noop thread_prepare function for drivers that don't usethread_prepare.- Use blank_get_statline_before for GPU devices that don't support adlmonitoring.- Provide a noop get_stats function for drivers that don't support it.- Provide a blank get_statline for drivers that don't support it.- Provide a blank get_statline_before function for drivers that don't have one.- Fill drivers missing reinit_device with a noop version.- add 'count' to cumstomsummarypage 'calc'- hotplug use get_thread() where appropriate

    - convert sleep(const) to nmsleep()- remove empty #ifdef- call a separate get_devices() with locking, as required- usbutils - avoid free cgusb twice- usbutils hotplug v0.1- Report USB nodev as ZOMBIE on the screen- Change file modes.

    Version 2.10.5 - February 7, 2013

    - Fix logic fail on partial writes with stratum send that was leading to corruptmessage submissions.

    - Do not consider every call to stratum_resumed a pool recovery unless it wasactually idle.- Do not enable the pool disable on reject feature unless explicitly enabledwith --disable-rejecting.- Stratum disconnect shares - count total against stale- Use sanity checking to prevent a possible overflow with invalid data beinggiven by the pool for difficulty as reported by luke-Jr.- Check for calloc failure for completeness in gen_stratum_work.- Cache the coinbase length to speed up stratum work generation.- Cache the header length when generating stratum work to avoid calculating iton every work generation, and to only need one alloc+sprintf, speeding up workgeneration.- Use heap ram for coinbase in gen_stratum_work, zeroing it before use.

    - Provide a wrapper for aligning lengths of size_t to 4 byte boundaries.- Fix memory leak on stratum share submission.- Zero the best share string memory when zeroing stats.

    Version 2.10.4 - December 29, 2012

    - Change the pool stratum socket buffer to be dynamically allocated toaccomodate any size coinbase and keep receiving data in recv line for up to 60sif no end of line has been received.

  • 8/14/2019 news txt

    6/60

    - Differentiate socket full from sock full.- Allow stratum to startup without notify but check it is valid before creatingstratum work.- Do not try to generate stratum work unless the notify command has succeeded.- Reset total diff1 shares when zeroing stats as well to show correct workutility.

    Version 2.10.3 - December 26, 2012

    - Do not give the share submission failure message on planned stratumdisconnects.- Parse anything in the stratum socket if it's full without waiting. Empty thesocket even if a connection is not needed in case there are share returns.- Provide a mechanism to zero all the statistics from the menu.- Display the current pool diff in the status line.- Display block diff in status line.- Generalise the code for solving a block to enable block solve detection withscrypt mining.- Generate the output hash for scrypt as well and use the one function to setshare_diff.- Use the flip80 function in regeneratehash and the correct sized hash array.- Use one size for scratchbuf as a macro in scrypt.c- Stage work outside of the stgd lock to prevent attempted recursive locking in

    clone_available.- share_diff needs to be performed on a BE version of the output hash to work,leading to false best_share values as spotted by luke-Jr.- Remove the unused sha224 functions.- Use the flip functions in hashtest.- Simplify the setting of the nonce data field in work on submitting nonces.- Scrypt code does not enter the hashtest function.- Go back to cloning available work under staged lock.- Updated links to AMD APP SDK- Updated link to ADL SDK- scrypt_diff uses a uint64_t as well.- Correct target for stratum support with scrypt mining.- libztex: fixed a typo

    - libztex: check returnvalue of libusb_claim_interface() and release theinterface in case of early exit

    Version 2.10.2 - December 19, 2012

    - Stop all work from the current pool if it's a stratum pool once it isdisconnected since it will be invalid upon reconnecting.- Discard all staged work from stratum pools as well as the shares upondisconnection since all the work becomes invalid.- Use correct cbreak after 15 second delay when no pool is found alive.- MMQ missing firmware -> ERR not DEBUG- Allow stratum to work with scrypt.

    - MMQ ensure delta clock can never exceed limits- MMQ lowercase new string constants- MMQ add api pgaset for clock- API V1.23 - new pgaset command, to be used soon- Protect the best_share/best_diff values under control lock.- MMQ style police- MMQ count work check timeout failures- MMQ allow partial work replies and count them- Check a stratum pool hasn't gone dead while being a backup pool and missedhaving its idle flag cleared.

  • 8/14/2019 news txt

    7/60

    - MMQ overheat: remove clockdown (doesn't help) + ensure no lost shares- API-README grammar- API-README explain custom page extensions in miner.php- miner.php add a sample group pool report- miner.php allow where,group,having on cumstom pages

    Version 2.10.1 - December 14, 2012

    - Check for EWOULDBLOCK when supported in send and recv as well.- Use the raw send() command instead of curl_easy_send since curl raw socketusage introduces random bugs on windows.- Use raw recv() command in place of curl_easy_recv since the curlimplementation introduces random bugs on windows builds when the recv fails.- miner.php when displaying a single rig, add prev/next rig buttons if theyexist, next to refresh- miner.php allow custom page joins for STATS- API show if pool has GBT (so people know not to use that pool)- miner.php - include windows easyphp link- driver-ztex: use the correct size for the swap array- API stats - display pool byte transfer stats- Pool store data transfer stats- README ModMiner dependency- Benchmark incorrect work size

    - ChangeLog refer to NEWS- MMQ handle over temp differently and hash longer- driver-ztex: search the complete noncerange based on the actual speed- README - update ModMiner details- API-README update- api use a dynamic io buffer, truncated before it reaches the current ~64klimit

    Version 2.10.0 - December 10, 2012

    - Include prctl header for thread renaming to work.- Set tv_idle time if a pool is not active when input from the menu.

    - usb display message when device is in use/another cgminer- libztex: avoid the use of libusb_error_name()- minor unlikely zero pointer test- BeaverCreek doesn't like BFI INT patching.- Only stratum pools that are idle need to be kicked via cnx_needed.- mmq - abbreviate the temperature numbers- Do not do any setup if opt_api_listen is disabled in api.c.- usbutils.c uninitialised usbstat for non-primary mmqs- Only set the lagging flag for select_pool() on failed getwork if we're not inopt_fail_only mode.- libztex: in case the selectFpga() failed set the selected fpga to unknown- Modified windows-build.txt to update git instructions.- libztex: use a function for the twice called firmware reset code

    - libztex: removed an unused struct member (ztex->valid)- driver-ztex: support for broken fpga on a multifpga board- Set the pool lagging flag on startup to avoid it being shown initially, andonly unset it once the maximum number of staged work items has been reached.- Avoid recursive locking of the stgd lock.- Return value of keep_sockalive is no longer used.- Remove dependency on mstcpip.h for windows build by making curl version >=7.25.0 mandatory on windows builds, and use curl functions for keepalivewhenever possible instead.- Make main() the getwork scheduler once everything is set up, so that all app

  • 8/14/2019 news txt

    8/60

    exits use the kill_work and quit paths.- ztex: more style and whitespace fixes- libztex: silenced another warning- Set successful connect to true on auth stratum to allow summary on exit fromsingle stratum pool.- Only consider work stale for stratum of different job_id if it's not a share.- Increment version preempting changed version signifying different codebase to2.9- Hash_pop should signal further waiters on its own pthread conditional in casethere are multiple waiters.- Check the job_id has not changed on stratum work when deciding if the work isstale as might occur across disconnections.- Perform pool_resus on getwork pool that generates work in getwork_thread.- Set pool lagging message for getwork pool that falls to zero staged in getworkthread.- Stage extra work when the primary pool is a getwork pool without rolltime.- Do not try to clean up twice if kill message is given.- Only recalculate total_staged in getwork thread if required.- Include the correct config header in libztex and include it before otherincludes.- Implement a completely new getwork scheduler. Stage all work from the onethread, making it possible to serialise all requests minimising the number ofgetworks requested or local work generated. Use a pthread conditional to wake upthe 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.- libztex: fixed some warnings and removed some whitespaces- libztex: silenced some warnings- Remove all references to the now unused workio_cmd structure.- Remove the old workio command queue thread, replacing it with a killconditional to exit the program.- Remove getwork command from workio_cmd queues and do them directly fromqueue_request.- Begin tearing down the old workio command queues by removing submit commandsfrom there and submit them asynchronously via their own threads.- Update windows build instructions.- Set pool probed to true on successful authorisation with stratum to avoid it

    being pinged later with pool_getswork.- driver-ztex: libztex_setFreq() must be called before ztex_releaseFpga()- driver-ztex: changed two pairs of malloc()/memset() to calloc()- libztex: Read bitstream file in 2kb blocks with simpler and faster code- Added the binary versions of ztex_ufm1_15d4.ihx and ztex_ufm1_15y1.ihx- Trivial space removal.- libztex: Add firmware download support for ZTEX 1.15d and 1.15x- libztex: Factor out local version of libusb_get_string_descriptor_ascii()- Shut up some boring old cpu warnings.- Style changes.- Allow pool active to be called on stratum or disabled pools in the watchpoolthread if the pool has not been probed.- libztex: Make log messages say bitstream when refering to bitstreams

    - libztex: Don't return error when a bitstream was already configured- libztex: Read bitstream file in 64kb blocks with simpler and faster code- libztex: Verify that the mining firmware is not a dummy firmware- libztex: Match mining firmware ZTEX descriptor against the dummy firmware- Combine shared padding into one char.- libztex: Start download sequence only after reading in the new firmware- libztex: Download mining firmware to all devices with dummy firmware- lock (most of) the threaded statistics updates- README stats don't add up- usbutils.c remove compiler warning

  • 8/14/2019 news txt

    9/60

    - Make need connection return true if a pool is idle.- API add Best Share to summary- Check on creating new GBT work if the structures are up to date and updatethem as required rather than regularly.- Update windows build instructions.- Enable backup stratum connections for getwork when the primary pool doesn'thave longpoll aka solo mining.- Check for correct absence of opt_fail_only in cnx_needed.- Remove unused variable.- The specification for stratum has been elaborated to say that a changed diffapplies only to new work so do not retarget when submitting shares.- Use a variable length string array in submit_upstream_work to cope withmassive GBT submissions.- API lock access to some summary statistics (and copy them)- Suspend stratum connections to backup pools when there is no requirement topotentially grab work from them.- Fix missing export for RenameThread.- enumerate the mining threadnames- MMQ avoid possible number overrun crashes- mmq usb v0.4 + api usb stats- setting the name of the threads for linux,freebsd,openbsd and osx code isborrowed from bitcoins util.c, so it is already tested- Don't show broken WU value with scrypt mining.- Style police.

    - Remove unused getwork times in getswork.- Fix readme wordwrap.

    Version 2.9.6 - December 2, 2012

    - Make gen_stratum_work more robust by using a dynamically allocated array forthe header in case bogus data is sent by the pool to avoid overflowing a staticarray.- scrypt_diff now returns a uint64_t- Support monitoring and reporting much higher diffs for scrypt mining,truncating irrelevant zeroes from displayed hash.- Pass ostate values around in scrypt to be able to extract full hashes if

    needed later on.- Since we will be using calloc_str to put a string into it, convert thefunction to calloc_strcat which does it automatically.- Revert "Handle crash exceptions by trying to restart cgminer unless the--no-restart option is used."- Count longpoll and GBT decodes as queued work since the count otherwiseremains static.- Use the string helper functions to create gbt blocks of any length.- Provide helper functions calloc_str and realloc_strcat to create and extendarbitrary length arrays based on string length.

    Version 2.9.5 - November 25, 2012

    - fixes target calc for mips openwrt- openwrt needs roundl- Get rid of unused last_work in opencl thread data.- Do away with the flaky free_work api in the driver code which would often losethe work data in opencl and simply flush it before exiting the opencl scanhash.- Use base_work for comparison just for cleanness in __copy_work- Remove all static work structs, using the make and free functions.- Add pool no. to stale share detected message.- Add info about which pool share became stale while resubmitting.

  • 8/14/2019 news txt

    10/60

    -b Copy the work on opencl_free_work- Add an extra slot in the max backlog for ztex to minimise dupes.- Do not use or count the getworks submitted which are simply testing that poolsare still up. This was increasing share leakage and making stats not reflectreal work.- Track all dynamically allocated memory within the work struct by copying workstructs in a common place, creating freshly allocated heap ram for all arrayswithin the copied struct. Clear all work structs from the same place to ensurememory does not leak from arrays within the struct. Convert the gbt coinbase andstratum strings within the work struct to heap ram. This will allow arbitrarylengths without an upper limit for the strings, preventing the overflows thathappen with GBT.- libztex: Work around ZTEX USB firmware bug exposed by the FreeBSD libusb- opencl: Use new dev_error function for REASON_DEV_NOSTART

    Version 2.9.4 - November 18, 2012

    - Provide rudimentary support for the balancing failover strategies with stratumand GBT by switching pools silently on getwork requests.- Convert remaining modminer and bfl uses of usleep to nmsleep.- Convert libztex to nmsleep where possible.- Convert unreliable usleep calls to nmsleep calls in ztex driver.- Support workid for block submission on GBT pools that use it.

    - Provide rudimentary support for literal ipv6 addresses when parsing stratumURLs.- Work around libcurl cflags not working on hacked up mingw installations onwindows.- Only increase gpu engine speed by a larger step if the temperature is belowhysteresis instead of increasing it to max speed.- Convert pool not responding and pool alive message on backup pools to verboselevel only since they mean a single failed getwork.- Update work block on the longpoll work item before calling restart threads toensure all work but the longpoll work item gets discarded when we calldiscard_stale from restart_threads.- Do not attempt to remove the stratum share hash after unsuccessful submissionsince it may already be removed by clear_stratum_shares.

    - Check against a double for current pool diff.- Support for fractional diffs and the classic just-below-1 share all FFs difftarget.

    Version 2.9.3 - November 11, 2012

    - Make header larger on gen stratum work to accomodate \0 at the end.

    Version 2.9.2 - November 11, 2012

    - Use stratum block change from backup pools as an alternative to longpoll for

    pools that don't support LP.- Check share target diff for best_share to be calculated when solo mining.- Round some more static string arrays to 4 byte boundaries.- There is no need for the static arrays to be larger than required, so long asthey're 4 byte aligned to appease ARM.- Store the full stratum url information in rpc_url for correct configurationfile saving.- Put in a hack to prevent dud work from sneaking into test_work_current beingseen as a new block.- Reset the work->longpoll flag where it will affect stratum work items as well.

  • 8/14/2019 news txt

    11/60

    - Check for both coinbase/append and submit/coinbase support before using GBTprotocol.- First pass through testing for GBT should not set probed to true since we areabout to probe again.- Hash1 is only used by the deprecated cpu mining code and never changes soremove it from the work struct and bypass needing to process the value for allother mining.- Get a work item once per minute for all getwork and GBT pools to test they'restill alive and to maintain a current GBT template.- Get a fresh block template with GBT pools on switching to them.

    Version 2.9.1 - November 6, 2012

    - Reset work flags to prevent GBT shares from being submitted as stratum onesafter switching.

    Version 2.9.0 - November 6, 2012

    - Add endian swap defines for where missing.- Only retarget stratum shares to new pool diff if diff has dropped.- Remove resetting of probed variable when detecting GBT.- Count lost stratum share submits and increase message priority to warning.

    - Only retrieve a new block template for GBT pools that are the current pool.- Show which pool untracked share messages have come from.- Add management for dead GBT pools.- Count lost shares with stratum as submit stale lost.- Discard record of stratum shares sent and report lost shares on disconnectionsince they will never be reported back.- Swab, don't just swap the bytes in the GBT target.- Change status window message for GBT connected pools versus LP.- Generate a gbt work item from longpoll when required to set new block andmessage appropriately.- Use existing pool submit_old bool from gbt data.- Retrieve a new block template if more than 30 seconds has elapsed since thelast one to keep the data current and test the pool is still alive.

    - Update GBT longpollid every time we request a new longpoll.- Manage appropriate response codes for share submission with GBT.- Allow the longpoll thread to start with GBT and only set the longpollid once.- Correct last few components of GBT block generation courtesy of Luke-jr.- Use correct length for offsetting extra nonce and remaining data.- Flip all 80 bytes in the flip function which was wrongly named flip256 for itspurpose.- Calculate midstate for gbt work and remove now unused variable.- Use a standard function for flipping bytes.- Insert the extra nonce and remaining data in the correct position in thecoinbase.- Remove txn size debugging and enlarge gbt block string to prevent overflow.- Remove varint display debugging.

    - Build varint correctly for share submission and sleep 5 seconds beforeretrying submit.- Make gbt_coinbase large enough for submissions, swap bytes correctly to make aheader from GBT and encode the number of transactions in share submission.- Store the fixed size entries as static variables in GBT in binary form,byteswapping as is required.- 32 bit hex encoded variables should be in LE with GBT.- Target and prevblockhash need to be reversed from GBT variables.- Construct block for submission when using GBT.- Use same string for debug as for submission and make string larger to cope

  • 8/14/2019 news txt

    12/60

    with future GBT messages.- Skip trying to decipher LP url if we have GBT support.- Store all the transaction hashes in pool->txn_hashes instead of separatingtxn0 and correct generation of merkle root, fixing memory overwrites.- Hook into various places to generate GBT work where appropriate.- Create extra work fields when generating GBT work.- Generate header from correct hashing generation of the merkle root for GBT.- Generate the merkle root for gbt work generation.- Create a store of the transactions with GBT in the minimum size form requiredto generate work items with a varied coinbase.- Create a function that generates a GBT coinbase from the existing poolvariables.- Extract and store the various variables GBT uses when decoding gbt work.- Check for invalid json result in work_decode.- Decode work in separate functions for getwork vs gbt.- Check for the coinbase/append mutable in GBT support to decide whether to useit or not.- Add a gbt mutex within the pool struct for protecting the gbt values.- Convert work decode function to prepare for decoding block templates.- Check for GBT support on first probing the pool and convert to using the GBTrequest as the rpc request for that pool.- Make the rpc request used with getwork a pool variable to allow it to beconverted to/from gbt requests.- Changes to build prototypes to support building on FreeBSD 9.1-RC2 amd64

    - Free old stratum_work data before replacing it- There is no need for addrinfo any more.- server and client sockaddr_in are no longer used in struct pool.- Merge pull request #322 from luke-jr/bugfix_stratum_tmpwork- Set sshare id and swork_id within the sshare mutex to avoid multiple sharesubmits with the same id.- Initialize temporary stratum work

    Version 2.8.7 - October 29, 2012

    - Fail on select() failing in stratum thread without needing to attemptrecv_line.

    - Add share to stratum database before sending it again in case we get aresponse from the pool before it's added.

    Version 2.8.6 - October 29, 2012

    - Shorten the initiate stratum connect timeout to 30 seconds.- Shorten the stratum timeout on read to 90 seconds to detect unresponsive pool.- Display best share difficulty on exit.- Make stratum socket fail more robust on windows by disabling the send buffer.- Reuse the same curl handle forcing a new connection instead of riskingderefencing.- Add information about submission failure to stratum send.

    - Only add stratum share to database if we succeeded in submitting it, with adebug output saying it succeeded.- Use keepalive with stratum sockets to improve its ability to detect brokenconnections.- Show only the URL in the status bar to avoid long prefixes making for extralong lines.- Display compact status in menu and update README to reflect current menuentries.- Add a compact display mode that does not list per device statistics in thestatus window.

  • 8/14/2019 news txt

    13/60

    - Add blank spaces after best share displayed.- Round a few static string arrays up to 4 byte boundaries for ARM.- Display best share diff for scrypt as well.- Show the best diff share as "best share" and add info to the README.- Display the best diff share submitted so far.- Redundant check.- The work struct pointer in struct pc_data in findnonce is never freed yetthere is no need to allocate it separately so make struct work a static part ofthe struct pc_data. s

    Version 2.8.5 - October 23, 2012

    - Handle crash exceptions by trying to restart cgminer unless the --no-restartoption is used.- Switch queued count when choosing a different pool from a failed stratum poolin getwork thread.- Put a mandatory 5s wait between reattempting a getwork on failure to avoidhammering requests.- The ATI stream / AMD APP SDK environment variables appear to only interferewith win32 builds so bypass them.- Make sure to check pool stratum curl exists under lock before attempting anyrecv to not risk dereferencing upon attempting to reinitiate stratum.- Avoid redefining macros and align to 4 byte boundaries.

    - API - add Stratum information to pools- update FPGA-README for MMQ

    Version 2.8.4 - October 18, 2012

    - Time for dynamic is in microseconds, not ms.- x86_64 builds of mingw32 are not supported directly and should just configureas generic mingw32 builds since they're NOT 64 bit.- Cope with both ATI stream and AMD APP SDK roots being set when building.- Use 3 significant digits when suffix string is used and values are >1000.- MMQ new initialisation (that works) and clocking control- Get rid of unused warning for !scrypt.

    - Use select on stratum send to make sure the socket is writeable.- Cope with dval being zero in suffix_string and display a single decimal placewhen significant digits is not specified but the value is greater than 1000.- Pad out the suffix string function with zeroes on the right.- Failure to calloc in bin2hex is a fatal failure always so just check for thatfailure within the function and abort, simplifying the rest of the code.- Provide locking around the change of the stratum curl structures to avoidpossible races.- Bump opencl kernel version numbers.- Remove atomic ops from opencl kernels given rarity of more than once nonce onthe same wavefront and the potential increased ramspeed requirements to use theatomics.- Clear the pool idle flag in stratum when it comes back to life.

    - Display correct share hash and share difficulty with scrypt mining.- Use explicit host to BE functions in scrypt code instead of hard codingbyteswap everywhere.- Show work target diff for scrypt mining.- Ease the checking on allocation of padbuffer8 in the hope it works partiallyanyway on an apparently failed call.- Watch for buffer overflows on receiving data into the socket buffer.- Round target difficulties down to be in keeping with the rounding of detectedshare difficulties.- Dramatically simplify the dynamic intensity calculation by oversampling many

  • 8/14/2019 news txt

    14/60

    runs through the opencl kernel till we're likely well within the timerresolution on windows.- String alignment to 4 byte boundaries and optimisations for binhexconversions.- In opencl_free_work, make sure to still flush results in dynamic mode.- Align static arrays to 4 byte boundaries to appease ARM builds for stratum.

    Version 2.8.3 - October 12, 2012

    - Left align values that are suffix_string generated.- Share_diff should not be converting the work data to hex.- Off by one error.- Prevent overflows of the port char array in extract_sockaddr.- Disable stratum detection with scrypt.- Use the suffix string function when displaying device hashrates.- Be consistent with the get_statline function.- Use the suffix string function for displaying hashrate with 4 significantdigits.- Display the actual share diff next to the pool required diff, using a suffixcreation function to prevent values of >1000 being shown in their entirety.- Fix 4 * 0 being 0 that would break dynamic intensity mode.- Fix wrong byteswap macro being used on mingw32 which was breaking targetgeneration on stratum.

    Version 2.8.2 - October 11, 2012

    - Reinstate the history on dynamic intensity mode to damp fluctuations inintensity but use an upper limit on how much the value can increase at any timeto cope with rare overflows.- Create a fix-protocol option which prevents cgminer from switching to stratumif it's detected.- Simplify target generation code.- Add support for client.get_version for stratum.- Use a 64 bit unsigned integer on the diff target to generate the hex target.- Update reconnect message to show whole address including port.

    - Look for null values and parse correct separate array entries for url and portwith client reconnect commands for stratum.- The command for stratum is client.reconnect, not mining.reconnect.- Only copy the stratum url to the rpc url if an rpc url does not exist.- Implement rudimentary mining.reconnect support for stratum.- Ignore the value of stratum_active on calling initiate_stratum and assumewe're always trying to reinitiate it, and set the active flag to false in thatfunction.- stratum auth can be unset if we fail to authorise on subsequent calls toauth_stratum which undoes the requirement of setting it in one place so set itin pool_active.

    Version 2.8.1 - October 8, 2012

    - Use the stratum url as the rpc url advertised if we switch to it.- Count an invalid nonce count as a hardware error on opencl.- Count each stratum work item as local work.- Cope with one stratum pool being the only active pool when it dies by sleepingfor 5 seconds before retrying to get work from it instead of getting workindefinitely.- Detect stratum outage based on either select timing out or receiving an emptybuffer and properly re-establish connection by disabling the stratum_active

  • 8/14/2019 news txt

    15/60

    flag, coping with empty buffers in parse_stratum.

    Version 2.8.0 - October 7, 2012

    - Major upgrade - support for the stratum mining protocol.- Fix various modminer warnings on mingw.- Fix sign warning on windows build for bitforce.- Cast socketfail to integer since SOCKET is an unsigned int on windows.- Use strtod not strtol for bitforce temp backup.- Cope with broken drivers returning nonsense values for bitforce temperatures.- Minor warning fixes.- Use the stratum thread to detect when a stratum pool has died based on nomessage for 2 minutes.- Only set the stratum auth flag once and once the stratum thread is started,use that to set/unset the stratum active flag.- Only hand off to stratum from getwork if we succeed in initiating theprotocol.- Target should only be 32 bytes copied.- Use a static array for work submission data instead of stack memory.- Clear the buffer data before sprinting to it.- Clear work stratum strings before setting them and add them to debug output.- Drop stratum connect failed message to verbose level only since it's a regularprobing message.

    - TCP Keepalive in curl is only in very recent versions and not required withregular messages on stratum anyway.- Move stratum sockets to curl infrastructure with locking around send+recv tobegin support for proxies and ssl.- Make detect stratum fail if a proxy has been set up.- Stratum does not currently have any proxy support so do not try to switch tostratum if a proxy has been specified.- Windows doesn't work with MSG_PEEK on recv so move to a continuously updatingbuffer for incoming messages.- Alloca is unreliable on windows so use static arrays in util.c stratum code.- Begin support for mingw stratum build.- Add space to reject reason.- Parse the reject reason where possible from stratum share submission.

    - Pass json error value to share result function to be able to parse rejectreason in stratum.- Don't try to parse unneeded parameters in response to mining.subscribe.- Remove the sshare hash entry if we failed to send it.- Change notify message to info level to avoid spamming repeatedly when a poolis down.- Check the stratum pool difference has not changed compared to the work diffwhen testing whether a share meets the target or not and retarget if necessary.- Bit error in target calculation for stratum.- Set work_block in gen_stratum_work for when work is reused to avoid thinkingit's all stale.- Offset the current block detection to the prev block hash.- We should be testing for id_val, not id in parse stratum response.

    - Make target on stratum scale to any size by clearing sequential bits accordingto diff.- Correct target calculation in gen_stratum_work.- If a share result has an error code but still has an id, it is likely areject, not an error.- Initiate stratum the first time in pool_active only, allowing us to switch toit on getting a failed getwork and detecting the presence of stratum on the urlat that time.- Use 5 second timeout on sock full for now as a temporary workaround.- If no stratum url is set by the end of the detect stratum routine, copy the

  • 8/14/2019 news txt

    16/60

    sockaddr url.- Make all buffers slightly larger to prevent overflow.- Make the stratum recv buffer larger than the recvsize.- Userpass needs to be copied to user and pass earlier to allow stratumauthorisation to work with it.- Store a sockaddr url of the stripped url used in determining sockaddr to notconfuse it with the stratum url and fix build warnings.- Decrease the queued count with stratum work once it's staged as well.- Allow the stratum retry to initiate and auth stratum in pool_alive to makesure the stratum thread is started.- Avoid duplicating pool->rpc_url and setting pool->stratum_url twice to itself.- Detect if a getwork based pool has the X-Stratum header on startup, and if so,switch to the stratum based pool.- Comment update.- Minor message change.- Create a work item from a "clean" request from stratum allowing the new blockto be detected and the appropriate block change message to be given.- Use statically allocated stratum strings in struct work to cope with theinability to safely deallocate dynamically allocated ram.- Use the current pool when deciding whether to reuse work from a stratum sourcerather than the work's previous pool.- Copy the stratum url to the rpc url to avoid none being set.- Provide locking around stratum send operations to avoid races.- Submit shares from stratum through the abstracted submit share function

    detecting what message they belong to and showing the data from the associatedwork, and then deleting it from the hash.- Use a more robust mechanism to obtain a \n terminated string over a socket.- Abstract out share submit as a function to be useable by stratum.- Rename parse_stratum to parse_method as it is only for stratum messages thatcontain methods.- Display stratum as mechanism in status line when current pool is running it.- Count each stratum notify as a getwork equivalent.- Correct nonce submitted with share.- Extranonce2 should be added before coinbase2.- We should be hashing the binary coinbase, not the hex one.- Fix endianness of nonce submitted for stratum.- Check that stratum is already active in initiate_stratum to avoid

    de-authorising ourselves by subscribing again.- Begin implementing a hash database of submissions and attempt sending results.- Copy parameters from stratum work required for share submission.- Set lagging flag on first adding a pool to prevent pool slow warning atstartup.- Fix work->target being a 32 byte binary in gen_stratum_work.- Store and display stripped url in its own variable.- Create machinery to divert work requests to stratum.- Generate the work target in gen_stratum_work, setting default diff to 1 incase it is not yet set.- Generate work data, midstate and hash1 in gen_stratum_work.- Generate header created from stratum structures in gen_stratum_work.- Generate merkle root hash in gen_stratum_work.

    - Generate the coinbase for generation of stratum based work.- The number of transactions is variable so make merkle a variable lengthdynamically allocated array and track how many there are for stratum.- Rename nonce2 to n2size reflecting that it's a size variable and not theactual nonce.- Provide rudimentary support for stratum clean work command in the stratumthread.- Cope with pools being removed in the stratum thread.- Use the pool sock value directly in the stratum thread in case it changesafter reconnecting.

  • 8/14/2019 news txt

    17/60

    - Create a stratum thread per pool that has stratum that monitors the socket andserves received data.- Check return value of stratum_parse.- Complete authorisation in stratum.- Implement stratum parsing of notify parameters and storing them in the poolstratum work structure.- Create helper functions for duplicating json strings to avoid keeping jsonreferences in use.- Append \n in the sock_send function instead of adding it when constructingjson in stratum.- Don't keep any json references around with stratum structures.- Create parse_stratum function that hands off stratum parameters to otherfunctions to manage pool stratum work struct variables. Implement miningdifficulty setting.- Create helper functions for checking when a socket is ready to read on andreceive a single line at a time. Begin stratum authorisation process.- Provide a helper function for reading a single \n terminated string from asocket.- Create a stratum work structure to store current work variables.- Test specifically for stratum being active in pool_active.- Detect stratum in common place when adding urls, and use a bool to tell uswhen it's active.- Fix warnings.- Extract and store various parameters on stratum init confirming successful

    mining notify.- Use existing socket macros and close the socket on failure in init stratum.- Initiate stratum and grab first json result.- Get detailed addressinfo from the parsed URL for future raw socket usage whenpossible. IPV4 only for now.- Prepare for getaddrinfo call.- Add data structures to pool struct for socket communications.- Put all socket definitions in util.h to allow reusing by added socketfunctions to be used in util.c.

    Version 2.7.7 - October 7, 2012

    - Fix unused warnings on ming build.- Fix sign warning in ocl.c- fds need to be zeroed before set in modminer.- Put scrypt warning on separate line to avoid 0 being shown on windows asbufsize.- Display correct pool number when block is found.- Prevent corrupt values returned from the opencl code from trying to readbeyond the end of the buffer by masking the value to a max of 15.- Icarus USB write failure is also a comms error- api.c DEBUG message has no paramter- Icarus catch more USB errors and close/reopen the port- API-README update cgminer verison number- hashmeter fix stats kh/s on 32bit windows

    Version 2.7.6 - September 24, 2012

    - Reorder libztex header include order to fix missing struct definition.- Display share difficulty on log with a shortened hash display on submission.- API stats add some pool getwork difficulty stats- Ignore any pings pushed to the worker threads if the thread is still paused toprevent it being enabled and disabled repeatedly.- README - FAQ - usermod group - shouldn't remove other groups

  • 8/14/2019 news txt

    18/60

    - Test for sequential getwork failures on a pool that might actually be up butfailing to deliver work as we may end up hammering it repeatedly by mistake.- reduce windows compile warnings- util.c - bug - proxy - no data end condition- As we average gpu time over 5 work intervals for dynamic GPU intensity, thereis no need to maintain a rolling average and it avoids the potential long termcorruption of a single overflow value.- Test for the now-automatically exported variable AMDAPPSDKROOT when lookingfor the presence of the OpenCL headers.- API don't change 'Diff1 Shares' - backward compatability FTW- miner.php highlighting correctly handling difficulty- API - Add last share difficulty for devices and pool- Store and report Accepted,Rejected,Stale difficulty in the summary and API- WorkTime - display prevblock for scrypt- api.c remove compile warnings- Calculate work difficulty for each getwork and display with WorkTime debug- remove MMQ unused variable warning- FPGA - allow long or short device names in detect code + style police- WorkTime - multiple nonce per work and identify the work source- Optional WorkTime details with each Accepted/Rejected work item- Icarus - ignore hardware errors in timing mode- miner.php oops - mistype- miner.php by default don't display IP/Port numbers in error messages- api.c all STATUS messages automatically escaped

    - api.c add missing escape for comma in MSG_PGAUNW- API add display of and setting queue,scantime,expiry- HW: dont submit bad shares- save individual pool proxy settings to config- --default-config - allow command line to define the default configuration filefor loading and saving- API-README update for pools proxy info- README URL proxy must use quote so show in the example- bug: remove proxy: from the front of the proxy used- CURL support for individual proxy per pool and all proxy types- README spelling/etc- README - FPGA device FAQ- HW: error counter auto for all devices - ztex code not fixed

    - API pgaidentify - unsupported message should be a warning- API/BFL identify a device - currently only BFL to flash the led- BFL add throttle count to internal stats + API- BFL: missing device id in log message- miner.php correct to new Diff1 Work field names- API add device diff1 work- API-README update- api.c Correct diff1 field name- count device diff1 shares- API-README more debug parameter information- API allow full debug settings control

    Version 2.7.5 - August 31, 2012

    - Adjust opencl intensity when adjusting thread count to prevent it gettingpegged at a value below the minimum threads possible.- miner.h max_hashes -> int64_t- Keep the local block number in the blocks structs stored and sort them bynumber to guarantee we delete the oldest when ageing the block struct entries.- Use correct sdk version detection for SDK 2.7- Revert "Pick worksize 256 with Cypress if none is specified."- Test for lagging once more in queue_request to enable work to leak to backup

  • 8/14/2019 news txt

    19/60

    pools.- There is no need to try to switch pools in select_pool since the current poolis actually not affected by the choice of pool to get work from.- Only clear the pool lagging flag if we're staging work faster than we're usingit.- needed flag is currently always false in queue_request. Remove it for now.- thr is always NULL going into queue_request now.

    Version 2.7.4 - August 23, 2012

    - Perform select_pool even when not lagging to allow it to switch back if neededto the primary.- Simplify macros in output kernels avoiding apparent loops and local variables.- Carry the needed bool over the work command queue.- Move the decision to queue further work upstream before threads are spawnedbased on fine grained per-pool stats and increment the queued count immediately.- Track queued and staged per pool once again for future use.- OpenCL 1.0 does not have native atomic_add and extremely slow support withatom_add so detect opencl1.0 and use a non-atomic workaround.- Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php

    Version 2.7.3 - August 22, 2012

    - Minimise the number of getwork threads we generate.

    Version 2.7.2 - August 22, 2012

    - Pick worksize 256 with Cypress if none is specified.- Give warning with sdk2.7 and phatk as well.- Whitelist sdk2.7 for diablo kernel as well.- Only keep the last 6 blocks in the uthash database to keep memory usageconstant. Storing more is unhelpful anyway.- BFL Flash - always distribute source- Increase kernel versions signifying changed APIs.

    - BFL flash - include source in builds and more FPGA-README- Check we haven't staged work while waiting for a curl entry before proceeding.- Use atomic ops to never miss a nonce on opencl kernels, including nonce==0,also allowing us to make the output buffer smaller.- Remove compile errors/warnings and document compile/usage in FPGA-README- bitforce-firmware-flash.c by Luke-jr- Ignore the submit_fail flag when deciding whether to recruit more curls or notsince we have upper bounds on how many curls can be recruited, this test isredundant and can lead to problems.- API-README update cgminer version number- API-README fix groups P: example mistake- API-README add COIN and other edits- gpu->hit should be reset on new work as well.

    - Do not add time to dynamic opencl calculations over a getwork.- miner.php allow 'coin' is custom pages

    Version 2.7.1 - August 21, 2012

    - Update windows build instructions courtesy of sharky.- Increase max curls to number of mining threads + queue * 2, accounting for upand downstream comms.- Queue enough requests to get started.

  • 8/14/2019 news txt

    20/60

    - There is no point trying to clone_work in get_work() any more since we cloneon every get_work_thread where possible.- There is no point subtracting 1 from maxq in get_work_thread.- Only set lagging flag once there are no staged work items.- select_pool does not switch back to the primary once lagging is disabled.- miner.php allow page title to be defined in myminer.php- Free work before retrying in get_work_thread.- Increment total work counter under mutex lock.- Increment the queued count after the curl is popped in case there's a delaywaiting on curls and we think we've queued work when in fact we're waiting- API new command 'coin' with mining information- Do the dynamic timing in opencl code over a single pass through scanhash tomake sure we're only getting opencl times contributing to the measured inte- Increase curl reaping time to 5 minutes since comms between curl requests canbe 2 mins apart with lots of rolltime.- No need for extra variable in hash_push.- Remove short options -r and -R to allow them to be reused and remove readmeentries for deprecated options.- Avoid attempting to recursively lock the console mutex by disabling warningsin gpu_fanpercent when fanspeed monitoring fails on windows. Debugged by l- Deprecate the opt_fail_pause parameter, leaving a null placeholder forexisting configurations.- Don't pause after failed getwork, set lagging flag and reassess.- Add message to share if it's a resubmit.

    - We should not be pausing in trying to resubmit shares.- Get rid of the extending fail pause on failed connects since we discard workafter a period.- get_work always returns true so turn it into a void function.- get_work never returns false so get rid of fail pause loop.- Get rid of pause and retry from get_upstream_work so we only do it from oneplace.- Deprecate the opt_retries feature as no one wants cgminer to automaticallyabort. Leave a null placeholder for configurations that still have it.- Reinstate fix ADL gpu-map not working when there are more ADL devices thanopenCL patch by Nite69. Add virtual adl mapping for when none is specified o- miner.php show summary Diff1 Shares total- miner.php fix Work Utility totals

    - miner.php format new Work Utility and Diff1 Shares- API V1.17 show Work Utility and Diff1 Shares

    Version 2.7.0 - August 18, 2012

    - Introduce a new statistic, Work Utility, which is the number of difficulty 1shares solved per minute. This is useful for measuring a relative rate of workthat is independent of reject rate and target difficulty.- Implement a new pool strategy, BALANCE, which monitors work performed per poolas a rolling average every 10 minutes to try and distribute work evenly over allthe pools. Do this by monitoring diff1 solutions to allow different difficulty

    target pools to be treated equally, along with solo mining. Update thedocumentation to describe this strategy and more accurately describe theload-balance one.- Getwork fail was not being detected. Remove a vast amount of unused variablesand functions used in the old queue request mechanism and redefine the getfailtesting.- Don't try to start devices that don't support scrypt when scrypt mining.- 0 is a valid return value for read so only break out if read returns -1.- Consider us lagging only once our queue is almost full and no staged work.- Simplify the enough work algorithm dramatically.

  • 8/14/2019 news txt

    21/60

    - Only queue from backup pools once we have nothing staged.- Don't keep queueing work indefinitely if we're in opt failover mode.- Make sure we don't opt out of queueing more work if all the queued work isfrom one pool.- Set lagging flag if we're on the last of our staged items.- Reinstate clone on grabbing work.- Grab clones from hashlist wherever possible first.- Cull all the early queue requests since we request every time work is poppednow.- Keep track of staged rollable work item counts to speed up clone_available.- Make expiry on should_roll to 2/3 time instead of share duration since somehardware will have very fast share times.- Do the cheaper comparison first.- Check that we'll get 1 shares' worth of work time by rolling before saying weshould roll the work.- Simplify all those total_secs usages by initialising it to 1 second.- Overlap queued decrementing with staged incrementing.- Artificially set the pool lagging flag on pool switch in failover only mode aswell.- Artificially set the pool lagging flag on work restart to avoid messages aboutslow pools after every longpoll.- Factor in opt_queue value into enough work queued or staged.- Roll work whenever we can on getwork.- Queue requests for getwork regardless and test whether we should send for a

    getwork from the getwork thread itself.- Get rid of age_work().- 0 is a valid return value for read so only break out if read returns -1.- Offset libusb reads/writes by length written as well in ztex.- Cope with timeouts and partial reads in ztex code.- fpga serial I/O extra debug (disabled by default)

    Version 2.6.5 - August 15, 2012

    - Don't try to get bitforce temperature if we're polling for a result tominimise the chance of interleaved responses.- Set memory clock based on memdiff if present from with engine changes,

    allowing it to parallel manual changes from the menu as well.- Increase the timeout on bitforce as per Paul Sheppard's suggestion to accountfor throttling + work time + excess.- Fix ADL gpu-map not working when there are more ADL devices than openCL.Initial patch supplied by Nite69. Modified to suit.- Windows' timer resolution is limited to 15ms accuracy. This was breakingdynamic intensity since it tries to measure below this. Since we are repeatedlysampling similar timeframes, we can average the gpu_us result over 5 differentvalues to get very fine precision.- Fix harmless unused warnings in scrypt.h.- api.c typo- API allow display/change failover-only setting- Check we are not lagging as well as there is enough work in getwork.

    - Minimise locking and unlocking when getting counts by reusing shared mutexlock functions.- Avoid getting more work if by the time the getwork thread is spawned we findourselves with enough work.- The bitforce buffer is cleared and hw error count incremented on return from afailed send_work already so no need to do it within the send_work function.- miner.php allow a custom page section to select all fields with '*' - e.g. tocreate a STATS section on a custom page- Escape " and \ when writing json config file- miner.php optional single rig totals (on by default)

  • 8/14/2019 news txt

    22/60

  • 8/14/2019 news txt

    23/60

    - Clear the bitforce buffer whenever we get an unexpected result as it haslikely throttled and we are getting cached responses out of order, and use thetemperature monitoring as a kind of watchdog to flush unexpected results.- It is not critical getting the temperature response in bitforce so don'tmandatorily wait on the mutex lock.- Check there is a cutoff temp actually set in bitforce before using it as a cutoff value otherwise it may think it's set to zero degrees.- We dropped the temporary stopping of curl recruiting on submit_fail bymistake, reinstate it.- Make threads report in either side of the scanhash function in case we missreporting in when restarting work.- Don't make mandatory work and its clones last forever.- Make test work for pool_active mandatory work items to smooth out staged workcounts when in failover-only mode.- Add debugging output when work is found stale as to why.- Print the 3 parameters that are passed to applog for a debug line inbitforce.c- Clear bitforce buffer on init as previously.- Add some headroom to the number of curls available per pool to allow forlongpoll and sendwork curls.- Revert "Revert "Change BFL driver thread initialising to a constant 100msdelay between devices instead of a random arrangement.""- Revert "Remove bitforce_thread_init"- Show the correct base units on GPU summary.

    - Differentiate between the send return value being a bool and the get returnvalue when managing them in bitforce scanhash.- 23a8c60 Revert "bitforce: Skip out of sending work if work restart requested"

    Version 2.6.1 - July 30, 2012

    - Display scrypt as being built in as well.- Fix build warning about KL_SCRYPT when built without scrypt support.- Remove the low hash count determinant of hardware being sick. A low hash ratecan be for poor network connectivity or scrypt mining, neither of which are dueto a sick device.- api.c poolpriority changes

    Version 2.6.0 - July 29, 2012

    - Display kilohash when suitable, but store the global mhash value still trulyin megahashes to not break the API output.- Don't try and print curses output for devices that won't fit on the screen.- Add scrypt documentation in the form of a separate readme.- Fix build error without scrypt enabled.- Limit total number of curls recruited per pool to the number of mining threadsto prevent blasting the network when we only have one pool to talk to.- bitforce: Skip out of sending work if work restart requested- 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 poolto the rejecting state.- fpgautils: add support for 57.6 kBd serial- miner.php add a socket RCV timeout for if cgminer is hung and the API threadis still running- Limit thread concurrency for scrypt to 5xshaders if shaders is specified.- Simplify repeated use of gpus[gpu]. in ocl.c- Find the nearest power of 2 maximum alloc size for the scrypt buffer that cansuccessfully be allocated and is large enough to accomodate the threadconcurrency chosen, thus mapping it to an intensity.

  • 8/14/2019 news txt

    24/60

    - Don't make opt_scrypt mandatory blocking with opencl code.- Update kernel versions reflecting changes in the API.- Make the thread concurrency and lookup gap options hidden on the command lineand autotune parameters with a newly parsed --shaders option.- Fix target testing with scrypt kernel as it would have been missing sharesbelow target.- Bugfix: Use a mutex to control non-curses output- Simplify code to a single vprintf path for curses-less printing- Move opt_quiet check to my_log_curses, so it works for curses-less builds- Use log_generic for vapplog to cut down on code duplication- Add space to log output now that there is more screen real estate available.- BFL force all code to timeout to avoid hanging- Bugfix: Copy argv[0] given to dirname()- Always create the largest possible padbuffer for scrypt kernels even if notneeded for thread_concurrency, giving us some headroom for intensity levels.- Use the detected maximum allocable memory on a GPU to determine the optimalscrypt settings when lookup_gap and thread_concurrency parameters are not given.- Check the maximum allocable memory size per opencl device.- Add debugging output if buffer allocation fails for scrypt and round upbufsize to a multiple of 256.- Nonce testing for btc got screwed up, leading to no accepted shares. Fix it.- Display size of scrypt buffer used in debug.- Allow intensities up to 20 if scrypt is compiled in.- Add name to scrypt kernel copyright.

    - Allow lookup gap and thread concurrency to be passed per device and storedetails in kernel binary filename.- Ignore negative intensities for scrypt.- Change the scale of intensity for scrypt kernel and fix a build warning.- Correct target value passed to scrypt kernel.- Use 256 output slots for kernels to allow 1 for each worksize.- Test the target in the actual scrypt kernel itself saving furthercalculations.- Reinstate GPU only opencl device detection.- Decrease lookup gap to 1. Does not seem to help in any way being 2.- Fix build.- Make pad0 and pad1 local variable in scrypt kernel.- Constify input variable in scrypt kernel.

    - Send correct values to scrypt kernel to get it finally working.- Create command queue before compiling program in opencl.- Detach pthread from within the api thread in case it is terminated due to notbeing instantiated before pthread_cancel is called from main, leading to asegfault.- Debug output per thread hashrate is out by a factor of 1000.- Initialise mdplatform.- Find the gpu platform with the most devices and use that if no platform optionis passed.- Allow more platforms to be probed if first does not return GPUs.- Fix external scrypt algo missing.- Limit scrypt to 1 vector.- Handle KL_SCRYPT in config write.

    - Get rid of stuff.- Don't enqueuewrite buffer at all for pad8 and pass work details around forscrypt in dev_blk.- Set the correct data for cldata and prepare for pad8 fixes.- Bugfix: Fix build without curses but with OpenCL- Find the gpu platform with the most devices and use that if no platform optionis passed.- Allow more platforms to be probed if first does not return GPUs.- Get rid of spaces in arrays in scrypt kernel.- Start with smaller amount of hashes in cpu mining to enable scrypt to return

  • 8/14/2019 news txt

    25/60

    today sometime.- Show Khash hashrates when scrypt is in use.- Free the scratchbuf memory allocated in scrypt and don't check if CPUs aresick since they can't be. Prepare for khash hash rates in display.- Add cpumining capability for scrypt.- Set scrypt settings and buffer size in ocl.c code to be future modifiable.- Cope with when we cannot set intensity low enough to meet dynamic interval byinducing a forced sleep.- Make dynamic and scrypt opencl calls blocking.- Calculate midstate in separate function and remove likely/unlikely macrossince they're dependent on pools, not code design.- bitforce: Use "full work" vs "nonce range" for kernel name- Display in debug mode when we're making the midstate locally.- Fix nonce submission code for scrypt.- Make sure goffset is set for scrypt and drop padbuffer8 to somethingmanageable for now.- Set up buffer8 for scrypt.- Build fix for opt scrypt.- Don't check postcalc nonce with sha256 in scrypt.- Don't test nonce with sha and various fixes for scrypt.- Make scrypt buffers and midstate compatible with cgminer.- Use cgminer specific output array entries in scrypt kernel.- Provide initial support for the scrypt kernel to compile with and mine scryptwith the --scrypt option.

    - Enable completely compiling scrypt out.- Begin import of scrypt opencl kernel from reaper.- bitforce_get_result returns -1 on error now.- Check return value of read in BFgets- Bugfix: Make our Windows nanosleep/sleep replacements standards-compliant(which fixes nmsleep) and include compat.h for bitforce (for sleep)- rpc: Use a single switch statement for both stringifications of cgpu->status- Fix whitespace mangling.- miner.php fix rig # when miners fail- Only try to shut down work cleanly if we've successfully connected and startedmining.- Use switch statement for cgpu->status and fix spelling.- Abbrv. correction

    - Bugfix: Don't declare devices SICK if they're just busy initialising- Bugfix: Calculate nsec in nmsleep correctly- Bugfix: Adapt OpenCL scanhash errors to driver API change (errors are now -1,not 0)- Remove superfluous ave_wait- Put kname change for broken nonce-range back in- Add average wait time to api stats- Change BFL driver thread initialising to a constant 100ms delay betweendevices instead of a random arrangement.- Spelling typo.- Time opencl work from start of queueing a kernel till it's flushed whencalculating dynamic intensity.- Modify te scanhash API to use an int64_t and return -1 on error, allowing zero

    to be a valid return value.- Check for work restart after the hashmeter is invoked for we lose the hashesotherwise contributed in the count.- Remove disabled: label from mining thread function, using a separatemt_disable function.- Style changes.- Missed one nonce-range disabling.- Add average return time to api stats- miner.php allow rig names in number buttons- Remove bitforce_thread_init The delay thing does nothing useful... when long

  • 8/14/2019 news txt

    26/60

    poll comes around, all threads restart at the same time anyway.- Change timeouts to time-vals for accuracy.- fix API support for big endian machines- Cope with signals interrupting the nanosleep of nmsleep.- Use standard cfsetispeed/cfsetospeed to set baud rate on *nix- miner.php split() flagged deprecated in PHP 5.3.0- More BFL tweaks. Add delay between closing and reopening port. Remove bufferclear in re-init Add kernel type (mini-rig or single)- Make long timeout 10seconds on bitforce for when usleep or nanosleep justcan't be accurate...

    Version 2.5.0 - July 6, 2012

    - Fix --benchmark not working since the dynamic addition of pools and poolstats.- Make disabling BFL nonce range support a warning since it has to be explicitlyenabled on the command line now.- miner.php allow renaming table headers- Make bitforce nonce range support a command line option --bfl-range sinceenabling it decrease hashrate by 1%.- Add sanity checking to make sure we don't make sleep_ms less than 0 inbitforce.- The fastest minirig devices need a significantly smaller starting sleep time.

    - Use a much shorter initial sleep time to account for faster devices and noncerange working, and increase it if nonce range fails to work.- Use nmsleep instead of usleep in bitforce.- Provide a ms based sleep function that uses nanosleep to avoid the inaccuracyof usleep on SMP systems.- delay_time_ms is always set so need not be initialised in bitforce.- Increase bitforce timeout to 10 seconds.- Add more hysteresis and poll ~5 times to allow for timer delays in bitforcedevices.- miner.php allow alternating line colours (off by default)- Display the actual duration of wait when it is greater than the cutoff.- Set nonce to maximum once we determine nonce range support is broken.- Initial wait time is always known so no need to zero it beforehand in

    bitforce.- No point counting wait time until the work is actually sent to bitforcedevices.- Use string comparison functions instead of explicit comparisons.- Account for wait_ms time when nonce_range is in use on BFL.- Split nonces up into 1/5 chunks when nonce range is supported.- limit clear buffer iterations.- Ad fd check to clear buffer.- miner.php remove incorrect 'DATE' error message- miner.php allow summary header in custom pages- Disable nonce range support in BFL when broken support is detected.- Restart_wait is only called with a ms value so incorporate that into thefunction.

    - Only try to adjust dev width when curses is built in.- miner.php define custom sum fields as a simple array- Fix off-by-one error in nonce increment in bfl.- Use BE when setting nonce in bitforce nonce range work.- Enable nonce range in the normal init sequence for bfl.- Queue extra work at 2/3 differently depending on whether we're using noncerange or not.- Initially enable support for nonce range support on bfl, splitting nonces upinto 3/4 size and only disable it if it fails on work submit.- Attempt to detect nonce range support in BFL by sending work requring its

  • 8/14/2019 news txt

    27/60

    support.- Limit retrying on busy for up to BITFORCE_TIMEOUT_MS- Attempt to initialise while bitforce device returns BUSY.- Extend length of string that can be passed to BFL devices.- Fix signedness warning.- Adjust device width column to be consistent.- Use cgpu-> not gpus[] in watchdog thread.- Add api stats (sleep time)- Timing tweaks Added long and short timeouts, short for detecting throttling,long to give up totally. Reset sleep time when device re-initialised Still checkresults after timeout Back up a larger time if result on first poll.- Add API Notify counter 'Comms Error'- Style police on api.c- Do all logging outside of the bitforce mutex locking to avoid deadlocks.- Remove applog call from bfwrite to prevent grabbing nested mutexes.- Bitforce style changes.- Minor style changes.- Remove needless roundl define.- Made JSON error message verbose.- Fine-tune timing adjustment. Also remove old work_restart timing.- Check for gpu return times of >= 0, not just 0, to fix intensity dropping to-10.- Restart is zeroed in the mining thread so no need to do it inside the bitforcecode.

    - More improvements to comms. BFL return nothing when throttling, so should notbe considered an error. Instead repeat with a longer delay.- Polling every 10ms there's not much point checking the pthread_cond_timedwaitas it just adds overhead. Simply check the value of work_restart in the bfl mainpolling loop.- Use a pthread conditional that is broadcast whenever work restarts arerequired. Create a generic wait function waiting a specified time on thatconditional that returns if the condition is met or a specified time passed toit has elapsed. Use this to do smarter polling in bitforce to abort work, queuemore work, and check for results to minimise time spent working needlessly.- Add busy time to wait time.- api.c put version up to 1.14- Add tiny delay after writing to BFL Change BFL errors to something more human

    readable Send work busy re-tries after 10ms delay

    Version 2.4.4 - July 1, 2012

    - Fix builds on non gnu platforms.- api.c ensure old mode is always available when not using --api-groups + quit()on param errors- Implement rudimentary X-Mining-Hashrate support.- Detect large swings in temperature when below the target temperature range andchange fan by amounts dependant on the value of tdiff.- Adjust the fanspeed by the magnitude of the temperature difference when in theoptimal range.

    - Revert "Restarting cgminer from within after ADL has been corrupted only leadsto a crash. Display a warning only and disable fanspeed monitoring."- api.c fix json already closed- implement and document API option --api-groups- Put upper bounds to under 2 hours that work can be rolled into the future forbitcoind will deem it invalid beyond that.- define API option --api-groups- api.c allow unwell devices to be enabled so they can be cured- miner.php - fix/enable autorefresh for custom pages- miner.php allow custom summary pages - new 'Mobile' summary

  • 8/14/2019 news txt

    28/60

  • 8/14/2019 news txt

    29/60

    Version 2.4.3 - June 14, 2012

    - can_roll and should_roll should have no bearing on the cycle period within theminer_thread so remove it.- Check for strategy being changed to load balance when enabling LPs.- Check that all threads on the device that called get_work are waiting ongetwork before considering the pool lagging.- Iterate over each thread belonging to each device in the hashmeter instead ofsearching for them now that they're a list.- When using rotate pool strategy, ensure we only select from alive enabledpools.- Start longpoll from every pool when load balance strategy is in use.- Add mandatory and block fields to the work struct. Flag any shares that aredetected as blocks as mandatory to submit, along with longpoll work from apreviously rejecting pool.- Consider the fan optimal if fanspeed is dropping but within the optimal speedwindow.- Fix typo in some API messages (succeess/success)- api.c MMQ stat bugs- Bugfix: Fix warnings when built without libudev support- Bugfix: slay a variety of warnings- Bugfix: modminer: Fix unsigned/signed comparison and similar warnings- API add ModMinerQuad support

    - Bugfix: Honour forceauto parameter in serial_detect functions- modminer: Temperature sensor improvements- modminer: Make log messages more consistent in format- Only adjust GPU speed up if the fanspeed is within the normal fanrange andhasn't been turned to maximum speed under overheat conditions.- ModMiner use valid .name- New driver: BTCFPGA ModMiner- Abstract generally useful FPGA code into fpgautils.c- API add stats for pool getworks- miner.php option to hide specific fields from the display- miner.php add version numbers to the summary page- Update debian configs to v2.4.2- Add API and FPGA READMEs into Makefile to be included in source distribution.

    - Icarus - fix unit64_t printf warnings

    Version 2.4.2 - June 2, 2012

    - API.class compiled with Java SE 6.0_03 - works with Win7x64- miner.php highlight devs too slow finding shares (possibly failing)- API update version to V1.11 and document changes- API save default config file if none specified- api.c save success incorrectly returns error- api.c replace BUFSIZ (linux/windows have different values)- Move RPC API content out of README to API-README- Open a longpoll connection if a pool is in the REJECTING state as it's the

    only way to re-enable it automatically.- Use only one longpoll as much as possible by using a pthread conditionalbroadcast that each longpoll thread waits on and checks if it's the current poolbefore- If shares are known stale, don't use them to decide to disable a pool forsequential rejects.- Restarting cgminer from within after ADL has been corrupted only leads to acrash. Display a warning only and disable fanspeed monitoring.- Icarus: fix abort calculation/allow user specified abort- Icarus: make --icarus-timing hidden and document it in FPGA-README

  • 8/14/2019 news txt

    30/60

    - Icarus: high accuracy timing and other bitstream speed support- add-MIPSEB-to-icarus-for-BIG_ENDIAN- work_decode only needs swab32 on midstate under BIG ENDIAN- add compile command to api-example.c- save config bugfix: writing an extra ',' when no gpus- Add dpkg-source commits

    Version 2.4.1 - May 6, 2012

    - In the unlikely event of finding a block, display the block solved count withthe pool it came from for auditing.- Display the device summary on exit even if a device has been disabled.- Use correct pool enabled enums in api.c.- Import Debian packaging configs- Ensure we test for a pool recovering from idle so long as it's not set todisabled.- Fix pool number display.- Give cgminer -T message only if curses is in use.- Reinit_adl is no longer used.- API 'stats' allow devices to add their own stats also for testing/debug- API add getwork stats to cgminer - accesable from API 'stats'- Don't initialise variables to zero when in global scope since they're alreadyinitialised.

    - Get rid of unitialised variable warning when it's false.- Move a pool to POOL_REJECTING to be disabled only after 3 minutes ofcontinuous rejected shares.- Some tweaks to reporting and logging.- Change FPGA detection order since BFL hangs on an ICA- API support new pool status- Add a temporarily disabled state for enabled pools called POOL_REJECTING anduse the work from each longpoll to help determine when a rejecting pool hasstarted working again. Switch pools based on the multipool strategy once a poolis re-enabled.- Removing extra debug- Fix the benchmark feature by bypassing the new networking code.- Reset sequential reject counter after a pool is disabled for when it is

    re-enabled.- Icarus - correct MH/s and U: with work restart set at 8 seconds- ztex updateFreq was always reporting on fpga 0- Trying harder to get 1.15y working- Specifying threads on multi fpga boards extra cgpu- Missing the add cgpu per extra fpga on 1.15y boards- API add last share time to each pool- Don't try to reap curls if benchmarking is enabled.

    Version 2.4.0 - May 3, 2012

    - Only show longpoll warning once when it has failed.

    - Convert hashes to an unsigned long long as well.- Detect pools that have issues represented by endless rejected shares anddisable them, with a parameter to optionally disable this feature.- Bugfix: Use a 64-bit type for hashes_done (miner_thread) since it can overflow32-bit on some FPGAs- Implement an older header fix for a label existing before the pthread_cleanupmacro.- Limit the number of curls we recruit on communication failures and withdelaynet enabled to 5 by maintaining a per-pool curl count, and using a pthreadconditional that wakes up when one is returned to the ring buffer.

  • 8/14/2019 news txt

    31/60

    - Generalise add_pool() functions since they're repeated in add_pool_details.- Bugfix: Return failure, rather than quit, if BFwrite fails- Disable failing devices such that the user can attempt to re-enable them- Bugfix: thread_shutdown shouldn't try to free the device, since it's neededafterward- API bool's and 1TBS fixes- Icarus - minimise code delays and name timer variables- api.c V1.9 add 'restart' + redesign 'quit' so thread exits cleanly- api.c bug - remove extra ']'s in notify command- Increase pool watch interval to 30 seconds.- Reap curls that are unused for over a minute. This allows connections to beclosed, thereby allowing the number of curl handles to always be the minimumnecessary to not delay networking.- Use the ringbuffer of curls from the same pool for submit as well as getworkthreads. Since the curl handles were already connected to the same pool and areimmediately available, share submission will not be delayed by getworks.- Implement a scaleable networking framework designed to cope with any sizednetwork requirements, yet minimise the number of connections being reopened. Dothis by create a ring buffer linked list of curl handles to be used by getwork,recruiting extra handles when none is immediately available.- There is no need for the submit and getwork curls to be tied to the poolstruct.- Do not recruit extra connection threads if there have been connection errorsto the pool in question.

    - We should not retry submitting shares indefinitely or we may end up with ahuge backlog during network outages, so discard stale shares if we failed tosubmit them and they've become stale in the interim.

    Version 2.3.6 - April 29, 2012

    - Shorten stale share messages slightly.- Protect the freeing of current_hash under mutex_lock to prevent racing on itwhen set_curblock is hit concurrently.- Change default behaviour to submitting stale, removing the --submit-staleoption and adding a --no-submit-stale option.- Make sure to start the getwork and submit threads when a pool is added on the

    fly. This fixes a crash when a pool is added to running cgminer and thenswitched to.- Faster hardware can easily outstrip the speed we can get work and submitshares when using only one connection per pool.- Test the queued list to see if any get/submits are already queued and if theyare, start recruiting extra connections by generating new threads.- This allows us to reuse network connections at low loads but recuit new openconnections as they're needed, so that cgminer can scale to hardware of anysize.

    Version 2.3.5 - April 28, 2012

    - Restarting cgminer leads to a socket that can't be bound for 60 seconds, soincrease the interval that API binding waits to 30 seconds to minimise thenumber of times it will retry, spamming the logs.- Give a longpoll message for any longpoll that detects a block change, primaryor backup, and also display which pool it was.- Decrease utility display to one decimal place.- Small cosmetic output alignment.- Add pool number to stale share message.- Add space to log output now that there is more screen real estate available.- Indentation clean up.

  • 8/14/2019 news txt

    32/60

    - Merge branch 'master' of github.com:ckolivas/cgminer- Remove thread id display from rejected shares as well.- Merge pull request #185 from Diapolo/diakgcn- add goffset support for diakgcn with -v 1 and update kernel version- Set have_longpoll to true when there is at least one pool with longpoll.- Don't display the thread ID since it adds no useful information over thedevice number.- Don't display the first 8 bytes of a share since they will always be zero at>= 1 difficulty.- work->longpoll is reset across test_work_current so we need to recheck whatpool it belongs to.- Use longpolls from backup pools with failover-only enabled just to check forblock changes, but don't use them as work.- Start longpoll only after we have tried to extract the longpoll URL.- Check for submitold flag on resubmit of shares, and give different message forstale shares on retry.- Check for submitold before submitstale.- Don't force fresh curl connections on anything but longpoll threads.- Create one longpoll thread per pool, using backup pools for those pools thatdon't have longpoll.- Use the work created from the longpoll return only if we don't havefailover-enabled, and only flag the work as a longpoll if it is the currentpool.- This will work around the problem of trying to restart the single longpoll

    thread on pool changes that was leading to race conditions.- It will also have less work restarts from the multiple longpolls received fromdifferent pools.- Remove the ability to disable longpoll. It is not a