|
|
|
- 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 test
|
|
|
|
threads 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 socket
|
|
|
|
whenever 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 pool
|
|
|
|
threads.
|
|
|
|
- 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 the
|
|
|
|
watchpool 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 frequently
|
|
|
|
they'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
|
|
|
|
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 to
|
|
|
|
speed up startup.
|
|
|
|
- Clear just the socket buffer when we don't care what is left in a stratum
|
|
|
|
socket.
|
|
|
|
- Clear the stratum socket whenever we are closing it since the buffer is going
|
|
|
|
to be reused.
|
|
|
|
- Do not continue work from a stratum pool where the connection has been
|
|
|
|
interrupted.
|
|
|
|
- Reset stratum_notify flag on suspend_stratum as well.
|
|
|
|
- Close any sockets opened if we fail to initiate stratum but have opened the
|
|
|
|
socket.
|
|
|
|
- Close any existing stratum socket if we are attempting to restart stratum so
|
|
|
|
the 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 at
|
|
|
|
normal 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 submitted
|
|
|
|
awaiting 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 local
|
|
|
|
work 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 array
|
|
|
|
and submit it along with the userid to support mining resume, failing gracefully
|
|
|
|
and 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.
|
|
|
|
- Use the sessionid as passed on stratum connect to attempt to resume a
|
|
|
|
connection 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 the
|
|
|
|
now 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 the
|
|
|
|
poclbm kernel, making for fewer ops.
|
|
|
|
- Put all constants used in poclbm kernel into __const memory array to speed up
|
|
|
|
concurrent 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 the
|
|
|
|
queued hashtable.
|
|
|
|
- Bugfix: Duplicate stratum sessionid when copying work, to avoid double-free
|
|
|
|
- Bugfix: Missing pool_no parameter to applog for no-stratum-sessionid debug
|
|
|
|
message
|
|
|
|
- Add the choice of hash loop to the device driver, defaulting to hash_sole_work
|
|
|
|
if none is specified.
|
|
|
|
- Add comments.
|
|
|
|
- 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.
|
|
|
|
- Flush queued work on a restart from the hash database and discard the work
|
|
|
|
structs.
|
|
|
|
- Create a central point for removal of work items completed by queued device
|
|
|
|
drivers.
|
|
|
|
- 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.
|
|
|
|
- Create the hash queued work variant for use with devices that are fast enough
|
|
|
|
to 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 the
|
|
|
|
session id matches.
|
|
|
|
- Provide support for mining.resume with stratum, currently re-authorising after
|
|
|
|
successful resumption pending finalising of the protocol process.
|
|
|
|
- Provide basic framework for restarting stratum depending on whether resume
|
|
|
|
support 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 NULL
|
|
|
|
since the whole work struct is zeroed.
|
|
|
|
- Only clear stratum shares mandatorily on stratum dropouts when the pool does
|
|
|
|
not support resume.
|
|
|
|
- Try resubmitting stratum shares every 5 seconds for up to 2 minutes if the
|
|
|
|
pool 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 in
|
|
|
|
submit_work_thread
|
|
|
|
- Unlock the sshare_lock in submit_work_thread when all references to work and
|
|
|
|
sshare are complete.
|
|
|
|
- Add timestamps to stratum_share structs as they're generated and copy the
|
|
|
|
stratum sessionid if it exists to stratum work generated.
|
|
|
|
- Store session id for stratum if the pool supports it for future mining.resume
|
|
|
|
support.
|
|
|
|
- API.java allow partial reads
|
|
|
|
- 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 work
|
|
|
|
items having the same id.
|
|
|
|
- Abstract out the main hashing loop to allow us to use a separate loop for
|
|
|
|
devices 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 use
|
|
|
|
thread_prepare.
|
|
|
|
- Use blank_get_statline_before for GPU devices that don't support adl
|
|
|
|
monitoring.
|
|
|
|
- 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 corrupt
|
|
|
|
message submissions.
|
|
|
|
- Do not consider every call to stratum_resumed a pool recovery unless it was
|
|
|
|
actually idle.
|
|
|
|
- Do not enable the pool disable on reject feature unless explicitly enabled
|
|
|
|
with --disable-rejecting.
|
|
|
|
- Stratum disconnect shares - count total against stale
|
|
|
|
- Use sanity checking to prevent a possible overflow with invalid data being
|
|
|
|
given 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 it
|
|
|
|
on every work generation, and to only need one alloc+sprintf, speeding up work
|
|
|
|
generation.
|
|
|
|
- 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 to
|
|
|
|
accomodate any size coinbase and keep receiving data in recv line for up to 60s
|
|
|
|
if no end of line has been received.
|
|
|
|
- Differentiate socket full from sock full.
|
|
|
|
- Allow stratum to startup without notify but check it is valid before creating
|
|
|
|
stratum 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 work
|
|
|
|
utility.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.10.3 - December 26, 2012
|
|
|
|
|
|
|
|
- Do not give the share submission failure message on planned stratum
|
|
|
|
disconnects.
|
|
|
|
- Parse anything in the stratum socket if it's full without waiting. Empty the
|
|
|
|
socket 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 with
|
|
|
|
scrypt mining.
|
|
|
|
- Generate the output hash for scrypt as well and use the one function to set
|
|
|
|
share_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 the
|
|
|
|
interface 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 is
|
|
|
|
disconnected since it will be invalid upon reconnecting.
|
|
|
|
- Discard all staged work from stratum pools as well as the shares upon
|
|
|
|
disconnection 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 missed
|
|
|
|
having its idle flag cleared.
|
|
|
|
- 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 socket
|
|
|
|
usage introduces random bugs on windows.
|
|
|
|
- Use raw recv() command in place of curl_easy_recv since the curl
|
|
|
|
implementation introduces random bugs on windows builds when the recv fails.
|
|
|
|
- miner.php when displaying a single rig, add prev/next rig buttons if they
|
|
|
|
exist, 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 ~64k
|
|
|
|
limit
|
|
|
|
|
|
|
|
|
|
|
|
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 in
|
|
|
|
opt_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, and
|
|
|
|
only 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 keepalive
|
|
|
|
whenever possible instead.
|
|
|
|
- Make main() the getwork scheduler once everything is set up, so that all app
|
|
|
|
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 from
|
|
|
|
single 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 to
|
|
|
|
2.9
|
|
|
|
- Hash_pop should signal further waiters on its own pthread conditional in case
|
|
|
|
there are multiple waiters.
|
|
|
|
- Check the job_id has not changed on stratum work when deciding if the work is
|
|
|
|
stale 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 getwork
|
|
|
|
thread.
|
|
|
|
- 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 other
|
|
|
|
includes.
|
|
|
|
- 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.
|
|
|
|
- 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 kill
|
|
|
|
conditional to exit the program.
|
|
|
|
- Remove getwork command from workio_cmd queues and do them directly from
|
|
|
|
queue_request.
|
|
|
|
- Begin tearing down the old workio command queues by removing submit commands
|
|
|
|
from 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 watchpool
|
|
|
|
thread 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
|
|
|
|
- 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 update
|
|
|
|
them as required rather than regularly.
|
|
|
|
- Update windows build instructions.
|
|
|
|
- Enable backup stratum connections for getwork when the primary pool doesn't
|
|
|
|
have 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 diff
|
|
|
|
applies only to new work so do not retarget when submitting shares.
|
|
|
|
- Use a variable length string array in submit_upstream_work to cope with
|
|
|
|
massive GBT submissions.
|
|
|
|
- API lock access to some summary statistics (and copy them)
|
|
|
|
- Suspend stratum connections to backup pools when there is no requirement to
|
|
|
|
potentially 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 is
|
|
|
|
borrowed 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 for
|
|
|
|
the header in case bogus data is sent by the pool to avoid overflowing a static
|
|
|
|
array.
|
|
|
|
- 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 the
|
|
|
|
function 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 otherwise
|
|
|
|
remains static.
|
|
|
|
- Use the string helper functions to create gbt blocks of any length.
|
|
|
|
- Provide helper functions calloc_str and realloc_strcat to create and extend
|
|
|
|
arbitrary 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 lose
|
|
|
|
the 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.
|
|
|
|
-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 pools
|
|
|
|
are still up. This was increasing share leakage and making stats not reflect
|
|
|
|
real work.
|
|
|
|
- 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.
|
|
|
|
- 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 stratum
|
|
|
|
and 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 stratum
|
|
|
|
URLs.
|
|
|
|
- Work around libcurl cflags not working on hacked up mingw installations on
|
|
|
|
windows.
|
|
|
|
- Only increase gpu engine speed by a larger step if the temperature is below
|
|
|
|
hysteresis instead of increasing it to max speed.
|
|
|
|
- Convert pool not responding and pool alive message on backup pools to verbose
|
|
|
|
level only since they mean a single failed getwork.
|
|
|
|
- Update work block on the longpoll work item before calling restart threads to
|
|
|
|
ensure all work but the longpoll work item gets discarded when we call
|
|
|
|
discard_stale from restart_threads.
|
|
|
|
- Do not attempt to remove the stratum share hash after unsuccessful submission
|
|
|
|
since 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 diff
|
|
|
|
target.
|
|
|
|
|
|
|
|
|
|
|
|
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 as
|
|
|
|
they're 4 byte aligned to appease ARM.
|
|
|
|
- Store the full stratum url information in rpc_url for correct configuration
|
|
|
|
file saving.
|
|
|
|
- Put in a hack to prevent dud work from sneaking into test_work_current being
|
|
|
|
seen as a new block.
|
|
|
|
- Reset the work->longpoll flag where it will affect stratum work items as well.
|
|
|
|
- Check for both coinbase/append and submit/coinbase support before using GBT
|
|
|
|
protocol.
|
|
|
|
- First pass through testing for GBT should not set probed to true since we are
|
|
|
|
about to probe again.
|
|
|
|
- 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.
|
|
|
|
- Get a work item once per minute for all getwork and GBT pools to test they're
|
|
|
|
still 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 ones
|
|
|
|
after 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 disconnection
|
|
|
|
since 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 and
|
|
|
|
message appropriately.
|
|
|
|
- Use existing pool submit_old bool from gbt data.
|
|
|
|
- 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.
|
|
|
|
- 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 its
|
|
|
|
purpose.
|
|
|
|
- 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 the
|
|
|
|
coinbase.
|
|
|
|
- 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 before
|
|
|
|
retrying submit.
|
|
|
|
- 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.
|
|
|
|
- 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
|
|
|
|
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 separating
|
|
|
|
txn0 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 required
|
|
|
|
to generate work items with a varied coinbase.
|
|
|
|
- Create a function that generates a GBT coinbase from the existing pool
|
|
|
|
variables.
|
|
|
|
- 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 use
|
|
|
|
it 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 GBT
|
|
|
|
request as the rpc request for that pool.
|
|
|
|
- Make the rpc request used with getwork a pool variable to allow it to be
|
|
|
|
converted 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 share
|
|
|
|
submits 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 attempt
|
|
|
|
recv_line.
|
|
|
|
- Add share to stratum database before sending it again in case we get a
|
|
|
|
response 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 risking
|
|
|
|
derefencing.
|
|
|
|
- Add information about submission failure to stratum send.
|
|
|
|
- Only add stratum share to database if we succeeded in submitting it, with a
|
|
|
|
debug output saying it succeeded.
|
|
|
|
- Use keepalive with stratum sockets to improve its ability to detect broken
|
|
|
|
connections.
|
|
|
|
- Show only the URL in the status bar to avoid long prefixes making for extra
|
|
|
|
long lines.
|
|
|
|
- Display compact status in menu and update README to reflect current menu
|
|
|
|
entries.
|
|
|
|
- Add a compact display mode that does not list per device statistics in the
|
|
|
|
status window.
|
|
|
|
- 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 yet
|
|
|
|
there is no need to allocate it separately so make struct work a static part of
|
|
|
|
the struct pc_data. s
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.8.5 - October 23, 2012
|
|
|
|
|
|
|
|
- Handle crash exceptions by trying to restart cgminer unless the --no-restart
|
|
|
|
option is used.
|
|
|
|
- Switch queued count when choosing a different pool from a failed stratum pool
|
|
|
|
in getwork thread.
|
|
|
|
- Put a mandatory 5s wait between reattempting a getwork on failure to avoid
|
|
|
|
hammering requests.
|
|
|
|
- The ATI stream / AMD APP SDK environment variables appear to only interfere
|
|
|
|
with win32 builds so bypass them.
|
|
|
|
- Make sure to check pool stratum curl exists under lock before attempting any
|
|
|
|
recv 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 configure
|
|
|
|
as 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 place
|
|
|
|
when 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 that
|
|
|
|
failure within the function and abort, simplifying the rest of the code.
|
|
|
|
- Provide locking around the change of the stratum curl structures to avoid
|
|
|
|
possible races.
|
|
|
|
- Bump opencl kernel version numbers.
|
|
|
|
- Remove atomic ops from opencl kernels given rarity of more than once nonce on
|
|
|
|
the same wavefront and the potential increased ramspeed requirements to use the
|
|
|
|
atomics.
|
|
|
|
- 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 coding
|
|
|
|
byteswap everywhere.
|
|
|
|
- Show work target diff for scrypt mining.
|
|
|
|
- Ease the checking on allocation of padbuffer8 in the hope it works partially
|
|
|
|
anyway 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 detected
|
|
|
|
share difficulties.
|
|
|
|
- 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.
|
|
|
|
- String alignment to 4 byte boundaries and optimisations for bin<->hex
|
|
|
|
conversions.
|
|
|
|
- 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 significant
|
|
|
|
digits.
|
|
|
|
- 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.
|
|
|
|
- Fix 4 * 0 being 0 that would break dynamic intensity mode.
|
|
|
|
- Fix wrong byteswap macro being used on mingw32 which was breaking target
|
|
|
|
generation on stratum.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.8.2 - October 11, 2012
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
- Create a fix-protocol option which prevents cgminer from switching to stratum
|
|
|
|
if 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 port
|
|
|
|
with 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 assume
|
|
|
|
we're always trying to reinitiate it, and set the active flag to false in that
|
|
|
|
function.
|
|
|
|
- stratum auth can be unset if we fail to authorise on subsequent calls to
|
|
|
|
auth_stratum which undoes the requirement of setting it in one place so set it
|
|
|
|
in pool_active.
|
|
|
|
|
|
|
|
|
|
|
|
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 sleeping
|
|
|
|
for 5 seconds before retrying to get work from it instead of getting work
|
|
|
|
indefinitely.
|
|
|
|
- Detect stratum outage based on either select timing out or receiving an empty
|
|
|
|
buffer and properly re-establish connection by disabling the stratum_active
|
|
|
|
flag, coping with empty buffers in parse_stratum.
|
|
|
|
|
|
|
|
|
|
|
|
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 no
|
|
|
|
message 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 the
|
|
|
|
protocol.
|
|
|
|
- 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 regular
|
|
|
|
probing message.
|
|
|
|
- TCP Keepalive in curl is only in very recent versions and not required with
|
|
|
|
regular messages on stratum anyway.
|
|
|
|
- Move stratum sockets to curl infrastructure with locking around send+recv to
|
|
|
|
begin 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 to
|
|
|
|
stratum if a proxy has been specified.
|
|
|
|
- Windows doesn't work with MSG_PEEK on recv so move to a continuously updating
|
|
|
|
buffer 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 reject
|
|
|
|
reason 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 pool
|
|
|
|
is down.
|
|
|
|
- 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.
|
|
|
|
- Bit error in target calculation for stratum.
|
|
|
|
- Set work_block in gen_stratum_work for when work is reused to avoid thinking
|
|
|
|
it'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 according
|
|
|
|
to diff.
|
|
|
|
- Correct target calculation in gen_stratum_work.
|
|
|
|
- If a share result has an error code but still has an id, it is likely a
|
|
|
|
reject, not an error.
|
|
|
|
- Initiate stratum the first time in pool_active only, allowing us to switch to
|
|
|
|
it on getting a failed getwork and detecting the presence of stratum on the url
|
|
|
|
at that time.
|
|
|
|
- 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
|
|
|
|
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 stratum
|
|
|
|
authorisation to work with it.
|
|
|
|
- Store a sockaddr url of the stripped url used in determining sockaddr to not
|
|
|
|
confuse 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 make
|
|
|
|
sure 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 block
|
|
|
|
to be detected and the appropriate block change message to be given.
|
|
|
|
- Use statically allocated stratum strings in struct work to cope with the
|
|
|
|
inability to safely deallocate dynamically allocated ram.
|
|
|
|
- Use the current pool when deciding whether to reuse work from a stratum source
|
|
|
|
rather 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 associated
|
|
|
|
work, 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 that
|
|
|
|
contain 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 at
|
|
|
|
startup.
|
|
|
|
- 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 in
|
|
|
|
case 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 length
|
|
|
|
dynamically allocated array and track how many there are for stratum.
|
|
|
|
- Rename nonce2 to n2size reflecting that it's a size variable and not the
|
|
|
|
actual nonce.
|
|
|
|
- Provide rudimentary support for stratum clean work command in the stratum
|
|
|
|
thread.
|
|
|
|
- Cope with pools being removed in the stratum thread.
|
|
|
|
- Use the pool sock value directly in the stratum thread in case it changes
|
|
|
|
after reconnecting.
|
|
|
|
- Create a stratum thread per pool that has stratum that monitors the socket and
|
|
|
|
serves received data.
|
|
|
|
- Check return value of stratum_parse.
|
|
|
|
- Complete authorisation in stratum.
|
|
|
|
- Implement stratum parsing of notify parameters and storing them in the pool
|
|
|
|
stratum work structure.
|
|
|
|
- Create helper functions for duplicating json strings to avoid keeping json
|
|
|
|
references in use.
|
|
|
|
- Append \n in the sock_send function instead of adding it when constructing
|
|
|
|
json in stratum.
|
|
|
|
- Don't keep any json references around with stratum structures.
|
|
|
|
- Create parse_stratum function that hands off stratum parameters to other
|
|
|
|
functions to manage pool stratum work struct variables. Implement mining
|
|
|
|
difficulty setting.
|
|
|
|
- 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.
|
|
|
|
- Provide a helper function for reading a single \n terminated string from a
|
|
|
|
socket.
|
|
|
|
- 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 us
|
|
|
|
when 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 when
|
|
|
|
possible. 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 socket
|
|
|
|
functions 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 as
|
|
|
|
bufsize.
|
|
|
|
- Display correct pool number when block is found.
|
|
|
|
- Prevent corrupt values returned from the opencl code from trying to read
|
|
|
|
beyond 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 to
|
|
|
|
prevent it being enabled and disabled repeatedly.
|
|
|
|
- README - FAQ - usermod group - shouldn't remove other groups
|
|
|
|
- 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.
|
|
|
|
- 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, there
|
|
|
|
is no need to maintain a rolling average and it avoids the potential long term
|
|
|
|
corruption of a single overflow value.
|
|
|
|
- Test for the now-automatically exported variable AMDAPPSDKROOT when looking
|
|
|
|
for 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 file
|
|
|
|
for 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 getting
|
|
|
|
pegged 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 by
|
|
|
|
number 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
|
|
|
|
pools.
|
|
|
|
- There is no need to try to switch pools in select_pool since the current pool
|
|
|
|
is actually not affected by the choice of pool to get work from.
|
|
|
|
- Only clear the pool lagging flag if we're staging work faster than we're using
|
|
|
|
it.
|
|
|
|
- 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 needed
|
|
|
|
to 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 spawned
|
|
|
|
based 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 with
|
|
|
|
atom_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 usage
|
|
|
|
constant. 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 not
|
|
|
|
since we have upper bounds on how many curls can be recruited, this test is
|
|
|
|
redundant 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 up
|
|
|
|
and downstream comms.
|
|
|
|
- Queue enough requests to get started.
|
|
|
|
- There is no point trying to clone_work in get_work() any more since we clone
|
|
|
|
on 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 delay
|
|
|
|
waiting 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 to
|
|
|
|
make sure we're only getting opencl times contributing to the measured inte
|
|
|
|
- Increase curl reaping time to 5 minutes since comms between curl requests can
|
|
|
|
be 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 readme
|
|
|
|
entries for deprecated options.
|
|
|
|
- Avoid attempting to recursively lock the console mutex by disabling warnings
|
|
|
|
in gpu_fanpercent when fanspeed monitoring fails on windows. Debugged by l
|
|
|
|
- Deprecate the opt_fail_pause parameter, leaving a null placeholder for
|
|
|
|
existing 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 work
|
|
|
|
after 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 one
|
|
|
|
place.
|
|
|
|
- Deprecate the opt_retries feature as no one wants cgminer to automatically
|
|
|
|
abort. Leave a null placeholder for configurations that still have it.
|
|
|
|
- Reinstate fix ADL gpu-map not working when there are more ADL devices than
|
|
|
|
openCL 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 1
|
|
|
|
shares solved per minute. This is useful for measuring a relative rate of work
|
|
|
|
that is independent of reject rate and target difficulty.
|
|
|
|
- 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.
|
|
|
|
- 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.
|
|
|
|
- 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.
|
|
|
|
- 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 is
|
|
|
|
from 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 popped
|
|
|
|
now.
|
|
|
|
- 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 some
|
|
|
|
hardware 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 we
|
|
|
|
should 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 as
|
|
|
|
well.
|
|
|
|
- Artificially set the pool lagging flag on work restart to avoid messages about
|
|
|
|
slow 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 to
|
|
|
|
minimise 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 account
|
|
|
|
for 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 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.
|
|
|
|
- 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 mutex
|
|
|
|
lock functions.
|
|
|
|
- Avoid getting more work if by the time the getwork thread is spawned we find
|
|
|
|
ourselves with enough work.
|
|
|
|
- The bitforce buffer is cleared and hw error count incremented on return from a
|
|
|
|
failed 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. to
|
|
|
|
create a STATS section on a custom page
|
|
|
|
- Escape " and \ when writing json config file
|
|
|
|
- miner.php optional single rig totals (on by default)
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.6.4 - August 7, 2012
|
|
|
|
|
|
|
|
- Convert the serial autodetect functions to use int instead of char to
|
|
|
|
enumerate devices.
|
|
|
|
- Make the serial open timeout for BFL generically 1 second on windows.
|
|
|
|
- Deuglify windows autodetect code for BFL.
|
|
|
|
- There is no point zeroing temperature in BFL if we fail to get a response, and
|
|
|
|
we should register it as a HW error, suggesting throttling.
|
|
|
|
- Update SCRYPT README with information about HW errors.
|
|
|
|
- Use the scrypt CPU code to confirm results from OCL code, and mark failures as
|
|
|
|
HW errors, making it easier to tune scrypt parameters.
|
|
|
|
- We may as well leave one curl still available per pool instead of reaping the
|
|
|
|
last one.
|
|
|
|
- Need to recheck the pool->curls count on regaining the pool lock after the
|
|
|
|
pthread conditional wait returns.
|
|
|
|
- Display reaped debug message outside mutex lock to avoid recursive locking.
|
|
|
|
- Add specific information when ADL detects error -10 saying the device is not
|
|
|
|
enabled.
|
|
|
|
- api.c update API start message and include port number
|
|
|
|
- miner.php ignore arg when readonly
|
|
|
|
- miner.php allow pool inputs: delete, addpool, poolpriority
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.6.3 - August 5, 2012
|
|
|
|
|
|
|
|
- Count likely throttling episodes on bitforce devices as hardware errors.
|
|
|
|
- Style cleanups.
|
|
|
|
- Use FTD2XX.DLL on Windows to autodetect BitFORCE SHA256 devices.
|
|
|
|
- Make pool_disabled the first in the enums == 0, fixing the pool enabled count
|
|
|
|
which compares if value is not enabled before enabling it.
|
|
|
|
- Correct writing of scrypt parameters to config file based on command line
|
|
|
|
parameters only.
|
|
|
|
- Use different variables for command line specified lookup gap and thread
|
|
|
|
concurrency to differentiate user defined versus auto chosen values.
|
|
|
|
- Queue a request on pool switch in case we have no work from the new pool yet.
|
|
|
|
- Display failover only mode in pool menu and allow it to be toggled live.
|
|
|
|
- Reinstate check for system queueing lag when the current pool's queue is maxed
|
|
|
|
out, there is no staged work, and the work is needed now.
|
|
|
|
- There is no need for pool active testing to be mandatory any more with queue
|
|
|
|
request changes.
|
|
|
|
- Fix harmless warnings.
|
|
|
|
- Check the current staged and global queued as well before queueing requests.
|
|
|
|
Discard stales before ageing work in the watchdog thread. Queue requests after
|
|
|
|
discarding and ageing work in watchdog thread. Display accurate global queued in
|
|
|
|
curses output. Reuse variable in age_work().
|
|
|
|
- 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.
|
|
|
|
- API remove unused warning in non-GPU compile
|
|
|
|
- api.c in linux allow to open a closed socket in TIME_WAIT
|
|
|
|
- Queue an extra request whenever staged work drops below mining thread count in
|
|
|
|
hash_pop.
|
|
|
|
- Update debian package configs to v2.6.2
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.6.2 - August 3, 2012
|
|
|
|
|
|
|
|
- Scrypt mining does not support block testing yet so don't try to print it.
|
|
|
|
- Clear the bitforce buffer whenever we get an unexpected result as it has
|
|
|
|
likely throttled and we are getting cached responses out of order, and use the
|
|
|
|
temperature monitoring as a kind of watchdog to flush unexpected results.
|
|
|
|
- It is not critical getting the temperature response in bitforce so don't
|
|
|
|
mandatorily wait on the mutex lock.
|
|
|
|
- Check there is a cutoff temp actually set in bitforce before using it as a cut
|
|
|
|
off value otherwise it may think it's set to zero degrees.
|
|
|
|
- We dropped the temporary stopping of curl recruiting on submit_fail by
|
|
|
|
mistake, reinstate it.
|
|
|
|
- Make threads report in either side of the scanhash function in case we miss
|
|
|
|
reporting 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 work
|
|
|
|
counts 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 in
|
|
|
|
bitforce.c
|
|
|
|
- Clear bitforce buffer on init as previously.
|
|
|
|
- Add some headroom to the number of curls available per pool to allow for
|
|
|
|
longpoll and sendwork curls.
|
|
|
|
- Revert "Revert "Change BFL driver thread initialising to a constant 100ms
|
|
|
|
delay 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 return
|
|
|
|
value 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 rate
|
|
|
|
can be for poor network connectivity or scrypt mining, neither of which are due
|
|
|
|
to 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 truly
|
|
|
|
in 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 threads
|
|
|
|
to 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 pool
|
|
|
|
to 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 thread
|
|
|
|
is 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 can
|
|
|
|
successfully be allocated and is large enough to accomodate the thread
|
|
|
|
concurrency chosen, thus mapping it to an intensity.
|
|
|
|
- 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 line
|
|
|
|
and autotune parameters with a newly parsed --shaders option.
|
|
|
|
- Fix target testing with scrypt kernel as it would have been missing shares
|
|
|
|
below 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 not
|
|
|
|
needed for thread_concurrency, giving us some headroom for intensity levels.
|
|
|
|
- Use the detected maximum allocable memory on a GPU to determine the optimal
|
|
|
|
scrypt 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 up
|
|
|
|
bufsize 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 store
|
|
|
|
details 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 further
|
|
|
|
calculations.
|
|
|
|
- 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 not
|
|
|
|
being instantiated before pthread_cancel is called from main, leading to a
|
|
|
|
segfault.
|
|
|
|
- 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 option
|
|
|
|
is 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 for
|
|
|
|
scrypt 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 option
|
|
|
|
is 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
|
|
|
|
today sometime.
|
|
|
|
- Show Khash hashrates when scrypt is in use.
|
|
|
|
- Free the scratchbuf memory allocated in scrypt and don't check if CPUs are
|
|
|
|
sick since they can't be. Prepare for khash hash rates in display.
|
|
|
|
- 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 by
|
|
|
|
inducing a forced sleep.
|
|
|
|
- Make dynamic and scrypt opencl calls blocking.
|
|
|
|
- Calculate midstate in separate function and remove likely/unlikely macros
|
|
|
|
since 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 something
|
|
|
|
manageable 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 scrypt
|
|
|
|
with 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 started
|
|
|
|
mining.
|
|
|
|
- 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 between
|
|
|
|
devices instead of a random arrangement.
|
|
|
|
- Spelling typo.
|
|
|
|
- Time opencl work from start of queueing a kernel till it's flushed when
|
|
|
|
calculating 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 hashes
|
|
|
|
otherwise contributed in the count.
|
|
|
|
- Remove disabled: label from mining thread function, using a separate
|
|
|
|
mt_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
|
|
|
|
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 buffer
|
|
|
|
clear in re-init Add kernel type (mini-rig or single)
|
|
|
|
- Make long timeout 10seconds on bitforce for when usleep or nanosleep just
|
|
|
|
can't be accurate...
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.5.0 - July 6, 2012
|
|
|
|
|
|
|
|
- Fix --benchmark not working since the dynamic addition of pools and pool
|
|
|
|
stats.
|
|
|
|
- Make disabling BFL nonce range support a warning since it has to be explicitly
|
|
|
|
enabled on the command line now.
|
|
|
|
- miner.php allow renaming table headers
|
|
|
|
- Make bitforce nonce range support a command line option --bfl-range since
|
|
|
|
enabling it decrease hashrate by 1%.
|
|
|
|
- Add sanity checking to make sure we don't make sleep_ms less than 0 in
|
|
|
|
bitforce.
|
|
|
|
- The fastest minirig devices need a significantly smaller starting sleep time.
|
|
|
|
- Use a much shorter initial sleep time to account for faster devices and nonce
|
|
|
|
range 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 inaccuracy
|
|
|
|
of 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 bitforce
|
|
|
|
devices.
|
|
|
|
- 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 bitforce
|
|
|
|
devices.
|
|
|
|
- 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 the
|
|
|
|
function.
|
|
|
|
- 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 nonce
|
|
|
|
range or not.
|
|
|
|
- Initially enable support for nonce range support on bfl, splitting nonces up
|
|
|
|
into 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
|
|
|
|
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 check
|
|
|
|
results 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 bitforce
|
|
|
|
code.
|
|
|
|
- More improvements to comms. BFL return nothing when throttling, so should not
|
|
|
|
be considered an error. Instead repeat with a longer delay.
|
|
|
|
- Polling every 10ms there's not much point checking the pthread_cond_timedwait
|
|
|
|
as it just adds overhead. Simply check the value of work_restart in the bfl main
|
|
|
|
polling loop.
|
|
|
|
- Use a pthread conditional that is broadcast whenever work restarts are
|
|
|
|
required. Create a generic wait function waiting a specified time on that
|
|
|
|
conditional that returns if the condition is met or a specified time passed to
|
|
|
|
it has elapsed. Use this to do smarter polling in bitforce to abort work, queue
|
|
|
|
more work, and check for results to minimise time spent working needlessly.
|
|
|
|
- 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 and
|
|
|
|
change fan by amounts dependant on the value of tdiff.
|
|
|
|
- Adjust the fanspeed by the magnitude of the temperature difference when in the
|
|
|
|
optimal range.
|
|
|
|
- Revert "Restarting cgminer from within after ADL has been corrupted only leads
|
|
|
|
to 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 for
|
|
|
|
bitcoind 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
|
|
|
|
- Work around pools that advertise very low expire= time inappropriately as this
|
|
|
|
leads to many false positives for stale shares detected.
|
|
|
|
- Only show ztex board count if any exist.
|
|
|
|
- There is no need for work to be a union in struct workio_cmd
|
|
|
|
- fpgautils.c include a debug message for all unknown open errors
|
|
|
|
- Don't keep rolling work right up to the expire= cut off. Use 2/3 of the time
|
|
|
|
between the scantime and the expiry as cutoff for reusing work.
|
|
|
|
- Log a specific error when serial opens fail due to lack of user permissions
|
|
|
|
- Increase GPU timing resolution to microsecond and add sanity check to ensure
|
|
|
|
times are positive.
|
|
|
|
- Opencl code may start executing before the clfinish order is given to it so
|
|
|
|
get the start timing used for dynamic intensity from before the kernel is
|
|
|
|
queued.
|
|
|
|
- fpgautils.c - set BAUD rate according to termio spec
|
|
|
|
- fpgautils.c - linux ordering back to the correct way
|
|
|
|
- miner.php remove unneeded '.'s
|
|
|
|
- miner.php add auto refresh options
|
|
|
|
- miner.php add 'restart' next to 'quit'
|
|
|
|
- miner.php make fontname/size configurable with myminer.php
|
|
|
|
- Make the pools array a dynamically allocated array to allow unlimited pools to
|
|
|
|
be added.
|
|
|
|
- Make the devices array a dynamically allocated array of pointers to allow
|
|
|
|
unlimited devices.
|
|
|
|
- Dynamic intensity for GPUs should be calculated on a per device basis. Clean
|
|
|
|
up the code to only calculate it if required as well.
|
|
|
|
- Use a queueing bool set under control_lock to prevent multiple calls to
|
|
|
|
queue_request racing.
|
|
|
|
- Use the work clone flag to determine if we should subtract it from the total
|
|
|
|
queued variable and provide a subtract queued function to prevent looping over
|
|
|
|
locked code.
|
|
|
|
- Don't decrement staged extras count from longpoll work.
|
|
|
|
- Count longpoll's contribution to the queue.
|
|
|
|
- Increase queued count before pushing message.
|
|
|
|
- Test we have enough work queued for pools with and without rolltime
|
|
|
|
capability.
|
|
|
|
- As work is sorted by age, we can discard the oldest work at regular intervals
|
|
|
|
to keep only 1 of the newest work items per mining thread.
|
|
|
|
- Roll work again after duplicating it to prevent duplicates on return to the
|
|
|
|
clone function.
|
|
|
|
- Abstract out work cloning and clone $mining_threads copies whenever a rollable
|
|
|
|
work item is found and return a clone instead.
|
|
|
|
- api.c display Pool Av in json
|
|
|
|
- Take into account average getwork delay as a marker of pool communications
|
|
|
|
when considering work stale.
|
|
|
|
- Work out a rolling average getwork delay stored in pool_stats.
|
|
|
|
- Getwork delay in stats should include retries for each getwork call.
|
|
|
|
- Walk through the thread list instead of searching for them when disabling
|
|
|
|
threads for dynamic mode.
|
|
|
|
- Extend nrolltime to support the expiry= parameter. Do this by turning the
|
|
|
|
rolltime bool into an integer set to the expiry time. If the pool supports
|
|
|
|
rolltime but not expiry= then set the expiry time to the standard scantime.
|
|
|
|
- When disabling fanspeed monitoring on adl failure, remove any twin GPU
|
|
|
|
association. This could have been leading to hangs on machines with dual GPU
|
|
|
|
cards when ADL failed.
|
|
|
|
- modminer: Don't delay 2nd+ FPGAs during work restart
|
|
|
|
- Disable OpenCL code when not available.
|
|
|
|
- Fix openwrt crashing on regeneratehash() by making check_solve a noop.
|
|
|
|
- FPGA - allow device detect override without an open failure
|
|
|
|
- Fix sign warning.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.4.3 - June 14, 2012
|
|
|
|
|
|
|
|
- can_roll and should_roll should have no bearing on the cycle period within the
|
|
|
|
miner_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 on
|
|
|
|
getwork before considering the pool lagging.
|
|
|
|
- Iterate over each thread belonging to each device in the hashmeter instead of
|
|
|
|
searching for them now that they're a list.
|
|
|
|
- When using rotate pool strategy, ensure we only select from alive enabled
|
|
|
|
pools.
|
|
|
|
- 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 are
|
|
|
|
detected as blocks as mandatory to submit, along with longpoll work from a
|
|
|
|
previously rejecting pool.
|
|
|
|
- Consider the fan optimal if fanspeed is dropping but within the optimal speed
|
|
|
|
window.
|
|
|
|
- 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 and
|
|
|
|
hasn'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 conditional
|
|
|
|
broadcast that each longpoll thread waits on and checks if it's the current pool
|
|
|
|
before
|
|
|
|
- If shares are known stale, don't use them to decide to disable a pool for
|
|
|
|
sequential rejects.
|
|
|
|
- Restarting cgminer from within after ADL has been corrupted only leads to a
|
|
|
|
crash. 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
|
|
|
|
- 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 with
|
|
|
|
the 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 to
|
|
|
|
disabled.
|
|
|
|
- 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 already
|
|
|
|
initialised.
|
|
|
|
- Get rid of unitialised variable warning when it's false.
|
|
|
|
- Move a pool to POOL_REJECTING to be disabled only after 3 minutes of
|
|
|
|
continuous 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 and
|
|
|
|
use the work from each longpoll to help determine when a rejecting pool has
|
|
|
|
started working again. Switch pools based on the multipool strategy once a pool
|
|
|
|
is 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 and
|
|
|
|
disable them, with a parameter to optionally disable this feature.
|
|
|
|
- Bugfix: Use a 64-bit type for hashes_done (miner_thread) since it can overflow
|
|
|
|
32-bit on some FPGAs
|
|
|
|
- Implement an older header fix for a label existing before the pthread_cleanup
|
|
|
|
macro.
|
|
|
|
- Limit the number of curls we recruit on communication failures and with
|
|
|
|
delaynet enabled to 5 by maintaining a per-pool curl count, and using a pthread
|
|
|
|
conditional that wakes up when one is returned to the ring buffer.
|
|
|
|
- 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 needed
|
|
|
|
afterward
|
|
|
|
- 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 be
|
|
|
|
closed, thereby allowing the number of curl handles to always be the minimum
|
|
|
|
necessary to not delay networking.
|
|
|
|
- Use the ringbuffer of curls from the same pool for submit as well as getwork
|
|
|
|
threads. Since the curl handles were already connected to the same pool and are
|
|
|
|
immediately available, share submission will not be delayed by getworks.
|
|
|
|
- Implement a scaleable networking framework designed to cope with any sized
|
|
|
|
network requirements, yet minimise the number of connections being reopened. Do
|
|
|
|
this 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 pool
|
|
|
|
struct.
|
|
|
|
- Do not recruit extra connection threads if there have been connection errors
|
|
|
|
to the pool in question.
|
|
|
|
- We should not retry submitting shares indefinitely or we may end up with a
|
|
|
|
huge backlog during network outages, so discard stale shares if we failed to
|
|
|
|
submit 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 it
|
|
|
|
when set_curblock is hit concurrently.
|
|
|
|
- Change default behaviour to submitting stale, removing the --submit-stale
|
|
|
|
option 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 then
|
|
|
|
switched to.
|
|
|
|
- Faster hardware can easily outstrip the speed we can get work and submit
|
|
|
|
shares when using only one connection per pool.
|
|
|
|
- Test the queued list to see if any get/submits are already queued and if they
|
|
|
|
are, start recruiting extra connections by generating new threads.
|
|
|
|
- This allows us to reuse network connections at low loads but recuit new open
|
|
|
|
connections as they're needed, so that cgminer can scale to hardware of any
|
|
|
|
size.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.3.5 - April 28, 2012
|
|
|
|
|
|
|
|
- Restarting cgminer leads to a socket that can't be bound for 60 seconds, so
|
|
|
|
increase the interval that API binding waits to 30 seconds to minimise the
|
|
|
|
number of times it will retry, spamming the logs.
|
|
|
|
- Give a longpoll message for any longpoll that detects a block change, primary
|
|
|
|
or 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.
|
|
|
|
- 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 the
|
|
|
|
device 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 what
|
|
|
|
pool it belongs to.
|
|
|
|
- Use longpolls from backup pools with failover-only enabled just to check for
|
|
|
|
block 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 for
|
|
|
|
stale 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 that
|
|
|
|
don't have longpoll.
|
|
|
|
- Use the work created from the longpoll return only if we don't have
|
|
|
|
failover-enabled, and only flag the work as a longpoll if it is the current
|
|
|
|
pool.
|
|
|
|
- This will work around the problem of trying to restart the single longpoll
|
|
|
|
thread on pool changes that was leading to race conditions.
|
|
|
|
- It will also have less work restarts from the multiple longpolls received from
|
|
|
|
different pools.
|
|
|
|
- Remove the ability to disable longpoll. It is not a useful feature and will
|
|
|
|
conflict with planned changes to longpoll code.
|
|
|
|
- Remove the invalid entries from the example configuration file.
|
|
|
|
- Add support for latest ATI SDK on windows.
|
|
|
|
- Export missing function from libztex.
|
|
|
|
- miner.php change socktimeoutsec = 10 (it only waits once)
|
|
|
|
- Bugfix: Make initial_args a const char** to satisfy exec argument type warning
|
|
|
|
(on Windows only)
|
|
|
|
- miner.php add a timeout so you don't sit and wait ... forever
|
|
|
|
- Create discrete persistent submit and get work threads per pool, thus allowing
|
|
|
|
all submitworks belonging to the same pool to reuse the same curl handle, and
|
|
|
|
all getworks to reuse their own handle.
|
|
|
|
- Use separate handles for submission to not make getwork potentially delay
|
|
|
|
share submission which is time critical.
|
|
|
|
- This will allow much more reusing of persistent connections instead of opening
|
|
|
|
new ones which can flood routers.
|
|
|
|
- This mandated a rework of the extra longpoll support (for when pools are
|
|
|
|
switched) and this is managed by restarting longpoll cleanly and waiting for a
|
|
|
|
thread join.
|
|
|
|
- miner.php only show the current date header once
|
|
|
|
- miner.php also add current time like single rig page
|
|
|
|
- miner.php display rig 'when' table at top of the multi-rig summary page
|
|
|
|
- README - add some Ztex details
|
|
|
|
- api.c include zTex in the FPGA support list
|
|
|
|
- api.c ensure 'devs' shows PGA's when only PGA code is compiled
|
|
|
|
- cgminer.c sharelog code consistency and compile warning fix
|
|
|
|
- README correct API version number
|
|
|
|
- README spelling error
|
|
|
|
- api.c combine all pairs of sprintfs()
|
|
|
|
- api.c uncomment and use BLANK (and COMMA)
|
|
|
|
- Code style cleanup
|
|
|
|
- Annotating frequency changes with the changed from value
|
|
|
|
- README clarification of 'notify' command
|
|
|
|
- README update for API RPC 'devdetails'
|
|
|
|
- api.c 'devdetails' list static details of devices
|
|
|
|
- Using less heap space as my TP-Link seems to not handle this much
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.3.4 - April 25, 2012
|
|
|
|
|
|
|
|
- Extensively document the cause of GPU device issues and the use of --gpu-map.
|
|
|
|
- Support for share logging
|
|
|
|
- Detect poorly performing combination of SDK and phatk kernel and add verbose
|
|
|
|
warning at startup.
|
|
|
|
- Icarus update to new add_cgpu()
|
|
|
|
- Icarus driver working with Linux and Windows
|
|
|
|
- api.c fix unused variable compile warning
|
|
|
|
- Display all OpenCL devices when -n is called as well to allow debugging of
|
|
|
|
differential mapping of OpenCL to ADL.
|
|
|
|
- Add a --gpu-map option which will allow arbitrarily mapping ADL devices to
|
|
|
|
OpenCL devices for instances where association by enumeration alone fails.
|
|
|
|
- Increase upper limit on number of extra items to queue as some FPGA code can't
|
|
|
|
yet reliably keep many devices busy.
|
|
|
|
- Display configuration file information when -c option is passed and only when
|
|
|
|
file exists on loading default config file.
|
|
|
|
- Display configuration file loaded, if any, and debug output if configuration
|
|
|
|
file parsing failed.
|
|
|
|
- Add missing ztex header to Makefile for distribution.
|
|
|
|
- Document long-form COM port device names on Windows, required to specify
|
|
|
|
serial ports above 9
|
|
|
|
- Include ztex bitstreams firmware in distribution and install if configured in.
|
|
|
|
- Style police on driver-ztex.c
|
|
|
|
- work_restart should only be changed by cgminer.c now
|
|
|
|
- Shut down the api cleanly when the api thread is cancelled. This should allow
|
|
|
|
the api socket to be closed successfully to next be reopened with app_restart.
|
|
|
|
- Make a union for cgpu device handles, and rename "device" to "device_ztex"
|
|
|
|
since it's Ztex-specific
|
|
|
|
- Initialise name variable.
|
|
|
|
- Remove unnecessary check for variable that always has memory allocated.
|
|
|
|
- Bugfix: Missing "break" no-op in default case
|
|
|
|
- Make the status window and log window as large as can fit on startup,
|
|
|
|
rechecking to see if it can be enlarged after the fact. This allows any number
|
|
|
|
of devices to be displayed provided the window is made long enough without
|
|
|
|
corrupting the output.
|
|
|
|
- Style police on libztex.c.
|
|
|
|
- API add removepool like the screen interface
|
|
|
|
- api.c escape required characters in return strings + pools returns the
|
|
|
|
username
|
|
|
|
- Set lp_path to NULL after free for consistency.
|
|
|
|
- Removing dmalloc import left behind by mistake
|
|
|
|
- Fixing leak in resp_hdr_cb
|
|
|
|
- miner.php warning highlight GPU stats if they are zero (e.g. ADL not enabled)
|
|
|
|
- miner.php highlight any device that isn't 'Enabled'
|
|
|
|
- miner.php highlight any Status that isn't 'Alive'
|
|
|
|
- miner.php optionally support multiple rigs
|
|
|
|
- Initial Ztex support 1.15x board.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.3.3 - April 15, 2012
|
|
|
|
|
|
|
|
- Don't even display that cpumining is disabled on ./configure to discourage
|
|
|
|
people from enabling it.
|
|
|
|
- Do a complete cgminer restart if the ATI Display Library fails, as it does on
|
|
|
|
windows after running for some time, when fanspeed reporting fails.
|
|
|
|
- Cache the initial arguments passed to cgminer and implement an attempted
|
|
|
|
restart option from the settings menu.
|
|
|
|
- Disable per-device status lines when there are more than 8 devices since
|
|
|
|
screen output will be corrupted, enumerating them to the log output instead at
|
|
|
|
startup.
|
|
|
|
- Reuse Vals[] array more than W[] till they're re-initialised on the second
|
|
|
|
sha256 cycle in poclbm kernel.
|
|
|
|
- Minor variable alignment in poclbm kernel.
|
|
|
|
- Make sure to disable devices with any status not being DEV_ENABLED to ensure
|
|
|
|
that thermal cutoff code works as it was setting the status to DEV_RECOVER.
|
|
|
|
- Re-initialising ADL simply made the driver fail since it is corruption over
|
|
|
|
time within the windows driver that's responsible. Revert "Attempt to
|
|
|
|
re-initialise ADL should a device that previously reported fanspeed stops
|
|
|
|
reporting it."
|
|
|
|
- Microoptimise poclbm kernel by ordering Val variables according to usage
|
|
|
|
frequency.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.3.2 - March 31, 2012
|
|
|
|
|
|
|
|
- Damping small changes in hashrate so dramatically has the tendency to always
|
|
|
|
make the hashrate underread so go back to gentle damping instead.
|
|
|
|
- Revert the crossover of variables from Vals to W in poclbm kernel now that
|
|
|
|
Vals are the first declared variables so they're used more frequently.
|
|
|
|
- Vals variables appearing first in the array in poclbm is faster.
|
|
|
|
- Change the preferred vector width to 1 for Tahiti only, not all poclbm
|
|
|
|
kernels.
|
|
|
|
- Use a time constant 0.63 for when large changes in hashrate are detected to
|
|
|
|
damp change in case the large change is an aliasing artefact instead of a real
|
|
|
|
chang
|
|
|
|
- Only increment stale counter if the detected stales are discarded.
|
|
|
|
- Attempt to re-initialise ADL should a device that previously reported fanspeed
|
|
|
|
stops reporting it.
|
|
|
|
- Move the ADL setup and clearing to separate functions and provide a reinit_adl
|
|
|
|
function to be used when adl fails while running.
|
|
|
|
- Use slightly more damping on the decay time function in the never-ending quest
|
|
|
|
to smooth off the hashmeter.
|
|
|
|
- Set the starting fanspeed to a safe and fairly neutral 50% when autofan is
|
|
|
|
enabled.
|
|
|
|
- Provide locking around updates of cgpu hashrates as well to prevent multiple
|
|
|
|
threads accessing data fields on the same device.
|
|
|
|
- Display the beginning of the new block in verbose mode in the logs.
|
|
|
|
- Reinstate old diablo kernel variable ordering from 120222, adding only goffset
|
|
|
|
and vector size hint. The massive variable ordering change only helped one SDK
|
|
|
|
on
|
|
|
|
- Change the version number on the correct kernels.
|
|
|
|
- api.c devicecode/osinfo incorrectly swapped for json
|
|
|
|
- Add extensive instructions on how to make a native windows build.
|
|
|
|
- Update version numbers of poclbm and diablo kernels as their APIs have also
|
|
|
|
changed.
|
|
|
|
- Use global offset parameter to diablo and poclbm kernel ONLY for 1 vector
|
|
|
|
kernels.
|
|
|
|
- Use poclbm preferentially on Tahiti now regardless of SDK.
|
|
|
|
- Remove unused constant passed to poclbm.
|
|
|
|
- Clean up use of macros in poclbm and use bitselect everywhere possible.
|
|
|
|
- Add vector type hint to diablo kernel.
|
|
|
|
- Add worksize and vector attribute hints to the poclbm kernel.
|
|
|
|
- Spaces for non-aligned variables in poclbm.
|
|
|
|
- More tidying of poclbm.
|
|
|
|
- Swap Vals and W variables where they can overlap in poclbm.
|
|
|
|
- More tidying of poclbm.
|
|
|
|
- Tidy up first half of poclbm.
|
|
|
|
- Clean up use of any() by diablo and poclbm kernels.
|
|
|
|
- Minor variable symmetry changes in poclbm.
|
|
|
|
- Put additions on separate lines for consistency in poclbm.
|
|
|
|
- Consolidate last use of W11 into Vals4 in poclbm.
|
|
|
|
- Change email due to SPAM
|
|
|
|
- api.c miner.php add a '*' to the front of all notify counters - simplifies
|
|
|
|
future support of new counters
|
|
|
|
- miner.php add display 'notify' command
|
|
|
|
- Small change to help arch's without processor affinity
|
|
|
|
- Fix bitforce compile error
|
|
|
|
- api.c notify should report disabled devices also - of course
|
|
|
|
- API returns the simple device history with the 'notify' command
|
|
|
|
- code changes for supporting a simple device history
|
|
|
|
- api.c Report an OS string in config to help with device issues
|
|
|
|
- api.c fix Log Interval - integer in JSON
|
|
|
|
- api.c config 'Device Code' to show list of compiled devices + README
|
|
|
|
- api.c increase buffer size close to current code allowable limit
|
|
|
|
- removed 8-component vector support from kernel, as this is not supported in
|
|
|
|
CGMINER anyway
|
|
|
|
- forgot to update kernel modification date, fixed ;)
|
|
|
|
- reordered an addition in the kernel, which results in less instructions used
|
|
|
|
in the GPU ISA code for GCN
|
|
|
|
- miner.php: option for readonly or check privileged access
|
|
|
|
- Ignore reduntant-with-build options --disable-gpu, --no-adl, and --no-restart
|
|
|
|
- miner.php: ereg_replace is DEPRECATED so use preg_replace instead
|
|
|
|
- Make curses TUI support optional at compile-time.
|
|
|
|
- Bugfix: AC_ARG_WITH provides withval instead of enableval
|
|
|
|
- miner.php split devs output for different devices
|
|
|
|
- api.c: correct error messages
|
|
|
|
- icarus.c modify (regular) timeout warning to only be debug
|
|
|
|
- icarus.c set the windows TODO timeout
|
|
|
|
- Allow specifying a specific driver for --scan-serial
|
|
|
|
- optimized nonce-check and output code for -v 2 and -v 4
|
|
|
|
- Bugfix: Check for libudev header (not just library) in configure, and document
|
|
|
|
optional dependency
|
|
|
|
- Add API support for Icarus and Bitforce
|
|
|
|
- Next API version is 1.4 (1.3 is current)
|
|
|
|
- README/api.c add "When" the request was processed to STATUS
|
|
|
|
- Bugfix: ZLX to read BitFORCE temp, not ZKX -.-
|
|
|
|
- Use libudev to autodetect BitFORCE GPUs, if available
|
|
|
|
- Use the return value of fan_autotune to set fan_optimal instead of passing it
|
|
|
|
as a pointer.
|
|
|
|
- Pass the lasttemp from the device we're using to adjust fanspeed in twin
|
|
|
|
devices.
|
|
|
|
- fix the name to 3 chars, fix the multi-icarus support
|
|
|
|
- Bugfix: "-S auto" is the default if no -S is specified, and there is no such
|
|
|
|
delay in using it
|
|
|
|
- README add information missing from --scan-serial
|
|
|
|
- Update README RPC API Version comment
|
|
|
|
- Bugfix: Allow enabling CPU even without OpenCL support
|
|
|
|
- Change failed-to-mine number of requested shares messge to avoid segfault on
|
|
|
|
recursive calling of quit().
|
|
|
|
- Get rid of extra char which is just truncated in poclbm kernel.
|
|
|
|
- only small code formating changes
|
|
|
|
- removed vec_step() as this could lead to errors on older SDKs
|
|
|
|
- unified code for generating nonce in kernel and moved addition of base to the
|
|
|
|
end -> faster
|
|
|
|
|
|
|
|
Version 2.3.1 - February 24, 2012
|
|
|
|
|
|
|
|
- Revert input and output code on diakgcn and phatk kernels to old style which
|
|
|
|
worked better for older hardware and SDKs.
|
|
|
|
- Add a vector*worksize parameter passed to those kernels to avoid one op.
|
|
|
|
- Increase the speed of hashrate adaptation.
|
|
|
|
- Only send out extra longpoll requests if we want longpolls.
|
|
|
|
- API implement addpool command
|
|
|
|
- API return the untouched Total MH also (API now version 1.3)
|
|
|
|
- Add enable/disablepool to miner.php example and reduce font size 1pt
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.3.0 - February 23, 2012
|
|
|
|
|
|
|
|
- Consider extra longpoll work items as staged_extra so as to make sure we queue
|
|
|
|
more work if queueing regular work items as longpolls.
|
|
|
|
- Use diablo kernel on all future SDKs for Tahiti and set preferred vector width
|
|
|
|
to 1 on poclbm kernel only.
|
|
|
|
- Explicitly type the constants in diakgcn kernel as uint, to be in line with
|
|
|
|
poclbm kernel.
|
|
|
|
- Reset all hash counters at the same time as resetting start times to get
|
|
|
|
accurate hashrates on exiting which is mandatory for benchmarking.
|
|
|
|
- Report thread out before it starts to avoid being flagged as sick when waiting
|
|
|
|
for the first work item.
|
|
|
|
- Don't disable and re-enable devices as they may recover and in the meantime
|
|
|
|
have their status set to OFF.
|
|
|
|
- API new commands enablepool and disablepool (version already incremented)
|
|
|
|
- Tolerate new-format temperature readings for bitforce
|
|
|
|
- Modify cgminer.c pool control to allow API to call it
|
|
|
|
- Bugfix: Fix BitFORCE driver memory leak in debug logging
|
|
|
|
- Extra byte was being unused in poclbm leading to failure on some platforms.
|
|
|
|
- Explicitly type the constants in poclbm kernel as uint.
|
|
|
|
- Don't save 'include' when saving the configuration
|
|
|
|
- Allow configuration file to include another recursively
|
|
|
|
- Use the SDK and hardware information to choose good performing default
|
|
|
|
kernels.
|
|
|
|
- Move phatk kernel to offset vector based nonce bases as well.
|
|
|
|
- Add a --benchmark feature which works on a fake item indefinitely to compare
|
|
|
|
device performance without any server or networking influence.
|
|
|
|
- Allow writing of multiple worksizes to the configuration file.
|
|
|
|
- Allow writing of multiple vector sizes to the configuration file.
|
|
|
|
- Allow writing of multiple kernels to the configuration file.
|
|
|
|
- Allow multiple different kernels to be chosen per device.
|
|
|
|
- Allow the worksize to be set per-device.
|
|
|
|
- Allow different vectors to be set per device.
|
|
|
|
- If we're well below the target temperature, increase gpu engine speed back to
|
|
|
|
maximum in case we have gotten lost between profiles during an idle period.
|
|
|
|
- We should be setting the value of fan_optimal, not its address.
|
|
|
|
- As all kernels will be new versions it's an opportunity to change the .bin
|
|
|
|
format and make it simpler. Specifying bitalign is redundant and long can be l.
|
|
|
|
- Use any() in kernel output code.
|
|
|
|
- Put the nonce for each vector offset in advance, avoiding one extra addition
|
|
|
|
in the kernel.
|
|
|
|
- Reset times after all mining threads are started to make estimating hashrates
|
|
|
|
easier at startup.
|
|
|
|
- Bugfix: allow no-exec (NX) stack
|
|
|
|
- Fix minor warning.
|
|
|
|
- fix the bitforce.c code style follow 1TBS
|
|
|
|
- fix icarus.c compile warning
|
|
|
|
- small changes to speedup no vec for AMD 898.1 OCL runtime
|
|
|
|
- Update licensing to GPL V3.
|
|
|
|
- Reset the longpoll flag after it's been used once to prevent it restarting
|
|
|
|
work again.
|
|
|
|
- Begin import of DiabloMiner kernel.
|
|
|
|
- Modify API debug messages to say API instead of DBG
|
|
|
|
- When API shuts down cgminer don't kill itself
|
|
|
|
- Don't make rolled work from the longpoll be seen as other longpoll work items.
|
|
|
|
- API add 'privileged' command so can verify access level
|
|
|
|
- Set the lp_sent variable under lock since there will almost always be a race
|
|
|
|
on setting this variable, potentially leading to multiple LPs being sent out.
|
|
|
|
- API restrict access to all non display commands by default
|
|
|
|
- Update API version to 1.2 for new 'Log Interval'
|
|
|
|
- API add --log Interval to 'config' reply
|
|
|
|
- --api-allow special case 0/0 means all
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.2.7 - February 20, 2012
|
|
|
|
|
|
|
|
- Send out extra longpolls when we have switched pools and the longpoll thread
|
|
|
|
is still bound to the old one. This is particularly useful with p2pool where
|
|
|
|
longpolls do not correlate with main bitcoin block change and would have led to
|
|
|
|
high reject rates on failover.
|
|
|
|
- Store whether a work item is the result of a longpoll or not in struct work
|
|
|
|
and use it to help determine block changes directly from the work longpoll bool.
|
|
|
|
- Keep track of when a longpoll has been sent for a pool and if the current pool
|
|
|
|
is requesting work but has not sent a longpoll request, convert one of the work
|
|
|
|
items to a longpoll.
|
|
|
|
- Store the longpoll url in the pool struct and update it from the pool_active
|
|
|
|
test in case it changes. This is to allow further changes to longpoll management
|
|
|
|
on switching pools.
|
|
|
|
- Re-check for a longpoll supporting pool every 30 seconds if none is found
|
|
|
|
initially.
|
|
|
|
- Report threads as busy waiting on getwork on startup to avoid them being
|
|
|
|
flagged sick on startup during slow networking.
|
|
|
|
- Allow devices that are disabled due to overheating to be flagged as recovering
|
|
|
|
instead of disabling them and re-enable them if they're below ideal temperatures
|
|
|
|
- Tahiti prefers worksize 64 with poclbm.
|
|
|
|
- No need to expressly retain the opencl program now that the zero binary issue
|
|
|
|
is fixed. This actually fixes cgminer to work with the latest SDK included with
|
|
|
|
the ATI catalyst driver 12.2.
|
|
|
|
- Show error code on any opencl failure status.
|
|
|
|
- Add detection for version 898.1 SDK as well but only give SDK 2.6 warning once
|
|
|
|
on startup instead of with each device initialisation.
|
|
|
|
- Always use a fresh connection for longpoll as prolonged persistent connections
|
|
|
|
can fail for many reasons.
|
|
|
|
- Keep track of intended engine clock speed and only adjust up if it's higher
|
|
|
|
than the last intended speed. This avoids setting the clock speed to one
|
|
|
|
relative to a lower profile one by mistake.
|
|
|
|
- Use gpu-memdiff on startup if an engine clockspeed is set and a memdiff value
|
|
|
|
is set.
|
|
|
|
- Revert "Adjust engine speed up according to performance level engine setting,
|
|
|
|
not the current engine speed." - ineffectual.
|
|
|
|
- Freeze the queues on all threads that are sent the pause message to prevent
|
|
|
|
them trying to start up again with saved pings in their queues.
|
|
|
|
- Updates to diakgcn kernel/
|
|
|
|
- Consolidate all screen updates to the watchdog thread and touch both windows
|
|
|
|
before refresh.
|
|
|
|
- Curses will be disabled in clean_up so don't do it early in kill_work, and
|
|
|
|
disable_adl so that GPU settings may be restored to normal in case shutting down
|
|
|
|
curses leads to instability on windows.
|
|
|
|
- Stop the mining threads before trying to kill them.
|
|
|
|
- Plain refresh() does not give reliably screen updates so get rid of all uses
|
|
|
|
of it.
|
|
|
|
- First release with working diakgcn kernel.
|
|
|
|
|
|
|
|
Version 2.2.6 - February 16, 2012
|
|
|
|
|
|
|
|
- Provide warning on each startup about sdk 2.6
|
|
|
|
- Fix unused warnings on win32.
|
|
|
|
- bitforce: Simplify BFopen WIN32 ifdef/else
|
|
|
|
- Fix initialization warning with jansson 1.3
|
|
|
|
- bitforce: Cleanup extraneous TODO that isn't needed
|
|
|
|
- Move tcsetattr (and new tcflush) into *nix BFopen to simplify things a bit
|
|
|
|
- Add message explaining 2nd thread disabling for dynamic mode and how to tune
|
|
|
|
it.
|
|
|
|
- Move logwindow down once number of devices is known.
|
|
|
|
- Automatically choose phatk kernel for bitalign non-gcn ATI cards, and then
|
|
|
|
only select poclbm if SDK2.6 is detected.
|
|
|
|
- Allow the refresh interval to be adjusted in dynamic intensity with a
|
|
|
|
--gpu-dyninterval parameter.
|
|
|
|
- Make curses display visible right from the beginning and fix the window sizes
|
|
|
|
so the initial messages don't get lost once the status window is drawn.
|
|
|
|
- The amount of work scanned can fluctuate when intensity changes and since we
|
|
|
|
do this one cycle behind, we increment the work more than enough to prevent
|
|
|
|
repeati
|
|
|
|
- bitforce: Set a 30 second timeout for serial port on Windows, since the
|
|
|
|
default is undefined
|
|
|
|
- Use PreVal4addT1 instead of PreVal4 in poclbm kernel.
|
|
|
|
- Import PreVal4 and PreVal0 into poclbm kernel.
|
|
|
|
- Import more prepared constants into poclbm kernel.
|
|
|
|
- Keep variables in one array but use Vals[] name for consistency with other
|
|
|
|
kernel designs.
|
|
|
|
- Replace constants that are mandatorily added in poclbm kernel with one value.
|
|
|
|
- Remove addition of final constant before testing for result in poclbm kernel.
|
|
|
|
- Hand optimise variable addition order.
|
|
|
|
- Hand optimise first variable declaration order in poclbm kernel.
|
|
|
|
- Radical reordering machine based first pass to change variables as late as
|
|
|
|
possible, bringing their usage close together.
|
|
|
|
- fix strcpy NULL pointer if env HOME unset.
|
|
|
|
- bitforce: Disable automatic scanning when at least one device is specified
|
|
|
|
manually
|
|
|
|
- Unroll all poclbm additions to enable further optimisations.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.2.5 - February 13, 2012
|
|
|
|
|
|
|
|
- Make output buffer write only as per Diapolo's suggestion.
|
|
|
|
- Constify nonce in poclbm.
|
|
|
|
- Use local and group id on poclbm kernel as well.
|
|
|
|
- Microoptimise phatk kernel on return code.
|
|
|
|
- Adjust engine speed up according to performance level engine setting, not the
|
|
|
|
current engine speed.
|
|
|
|
- Try to load a binary if we've defaulted to the poclbm kernel on SDK2.6
|
|
|
|
- Use the poclbm kernel on SDK2.6 with bitalign devices only if there is no
|
|
|
|
binary available.
|
|
|
|
- Further generic microoptimisations to poclbm kernel.
|
|
|
|
- The longstanding generation of a zero sized binary appears to be due to the
|
|
|
|
OpenCL library putting the binary in a RANDOM SLOT amongst 4 possible binary
|
|
|
|
locations. Iterate over each of them after building from source till the real
|
|
|
|
binary is found and use that.
|
|
|
|
- Fix harmless warnings with -Wsign-compare to allow cgminer to build with -W.
|
|
|
|
- Fix missing field initialisers warnings.
|
|
|
|
- Put win32 equivalents of nanosleep and sleep into compat.h fixing sleep() for
|
|
|
|
adl.c.
|
|
|
|
- Restore compatibility with Jansson 1.3 and 2.0 (api.c required 2.1)
|
|
|
|
- Modularized logging, support for priority based logging
|
|
|
|
- Move CPU chipset specific optimization into device-cpu
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.2.4 - February 11, 2012
|
|
|
|
|
|
|
|
- Fix double definition of A0 B0 to zeroA zeroB.
|
|
|
|
- Retain cl program after successfully loading a binary image. May decrease
|
|
|
|
failures to build kernels at startup.
|
|
|
|
- Variable unused after this so remove setting it.
|
|
|
|
- BFI INT patching is not necessarily true on binary loading of files and not
|
|
|
|
true on ATI SDK2.6+. Report bitalign instead.
|
|
|
|
- Various string fixes for reject reason.
|
|
|
|
- Generalize --temp-cutoff and implement support for reading temperature from
|
|
|
|
BitFORCE FPGAs
|
|
|
|
- Change message from recovered to alive since it is used on startup as well as
|
|
|
|
when a pool has recovered.
|
|
|
|
- Start mining as soon as any pool is found active and rely on the watchpool
|
|
|
|
thread to bring up other pools.
|
|
|
|
- Delayed responses from testing pools that are down can hold up the watchdog
|
|
|
|
thread from getting to its device testing code, leading to false detection of
|
|
|
|
the GPU not checking in, and can substantially delay auto gpu/auto fan
|
|
|
|
management leading to overheating. Move pool watching to its own thread.
|
|
|
|
- Bugfix: BitFORCE index needs to be static to count correctly
|
|
|
|
- Space out retrieval of extra work according to the number of mining threads.
|
|
|
|
- Make shutdown more robust. Enable the input thread only after the other
|
|
|
|
threads exist. Don't kill off the workio thread and use it to exit main() only
|
|
|
|
if there is an unexpected problem. Use kill_work() for all anticipated shutdowns
|
|
|
|
where possible. Remove unused thread entry.
|
|
|
|
- Change poclbm version number.
|
|
|
|
- One array is faster than 2 separate arrays so change to that in poclbm kernel.
|
|
|
|
- Microoptimisations to poclbm kernel which increase throughput slightly.
|
|
|
|
- Import diablominer kernel. Currently disabled as not working.
|
|
|
|
- Import diapolo kernel. Currently disabled as not working.
|
|
|
|
- Conflicting entries of cl_kernel may have been causing problems, and
|
|
|
|
automatically chosen kernel type was not being passed on. Rename the enum to
|
|
|
|
cl_kernels and store the chosen kernel in each clState.
|
|
|
|
- Set cl_amd_media_ops with the BITALIGN flag and allow non-bitselect devices to
|
|
|
|
build.
|
|
|
|
- ALlow much longer filenames for kernels to load properly.
|
|
|
|
- Allow different kernels to be used by different devices and fix the logic fail
|
|
|
|
of overcorrecting on last commit with !strstr.
|
|
|
|
- Fix kernel selection process and build error.
|
|
|
|
- queue_phatk_kernel now uses CL_SET_VARG() for base-nonce(s), too
|
|
|
|
- added OpenCL >= 1.1 detection code, in preparation of OpenCL 1.1 global offset
|
|
|
|
parameter support
|
|
|
|
- Use K array explicitly to make it clear what is being added.
|
|
|
|
- Work items have a tendency to expire at exactly the same time and we don't
|
|
|
|
queue extra items when there are plenty in the queue, regardless of age. Allow
|
|
|
|
extra work items to be queued if adequate time has passed since we last
|
|
|
|
requested work even if over the limit.
|
|
|
|
- Discard work when failover-only is enabled and the work has come from a
|
|
|
|
different pool.
|
|
|
|
- Missing include to build on newer mingw32.
|
|
|
|
- Move from the thread safe localtime_r to regular localtime which is the only
|
|
|
|
one supported on newer pthread libraries on mingw32 to make it compile with the
|
|
|
|
newer ming. Thread safety is of no importance where localtime is used in this
|
|
|
|
code.
|
|
|
|
- Define in_addr_t in windows if required
|
|
|
|
- sys/wait.h not required in windows
|
|
|
|
- Allow API to restrict access by IP address
|
|
|
|
- Add pool switching to example miner.php
|
|
|
|
- Display X-Reject-Reason, when provided
|
|
|
|
- Remove the test for whether the device is on the highest profil level before
|
|
|
|
raising the GPU speed as it is ineffectual and may prevent raising the GPU
|
|
|
|
speed.
|
|
|
|
- Remove unnecessary check for opt_debug one every invocation of applog at
|
|
|
|
LOG_DEBUG level and place the check in applog().
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.2.3 - February 6, 2012
|
|
|
|
|
|
|
|
- Revert "Rewrite the convoluted get_work() function to be much simpler and roll
|
|
|
|
work as much as possible with each new work item." This seems to cause a race on
|
|
|
|
work in free_work(). Presumably other threads are still accessing the structure.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.2.2 - February 6, 2012
|
|
|
|
|
|
|
|
- Provide support for the submitold extension on a per-pool basis based on the
|
|
|
|
value being detected in a longpoll.
|
|
|
|
- Don't send a ping to a dynamic device if it's not enabled as that will just
|
|
|
|
enable it for one pass and then disable it again.
|
|
|
|
- Rewrite the convoluted get_work() function to be much simpler and roll work as
|
|
|
|
much as possible with each new work item.
|
|
|
|
- Roll as much work as possible from the work returned from a longpoll.
|
|
|
|
- Rolling work on each loop through the mining thread serves no purpose.
|
|
|
|
- Allow to stage more than necessary work items if we're just rolling work.
|
|
|
|
- Replace divide_work with reuse_work function used twice.
|
|
|
|
- Give rolled work a new ID to make sure there is no confusion in the hashtable
|
|
|
|
lookups.
|
|
|
|
- Remove now-defunct hash_div variables.
|
|
|
|
- Remove unused get_dondata function.
|
|
|
|
- Silence ADL warnings.
|
|
|
|
- Silence unused parameter warnings.
|
|
|
|
- Stagger the restart of every next thread per device to keep devices busy ahead
|
|
|
|
of accessory threads per device.
|
|
|
|
- Deprecate the --donation feature. Needlessly complex, questionable usefulness,
|
|
|
|
depends on author's server and a central pool of some kind, and was not heavily
|
|
|
|
adopted.
|
|
|
|
- It's devices that report back now, not threads, update message.
|
|
|
|
- Continue auto-management of fan and engine speeds even if a device is disabled
|
|
|
|
for safety reasons.
|
|
|
|
- No need to check we're highest performance level when throttling GPU engine
|
|
|
|
speed.
|
|
|
|
- Abstract out tests for whether work has come from a block that has been seen
|
|
|
|
before and whether a string is from a previously seen block.
|
|
|
|
- Probe but don't set the timeout to 15 seconds as some networks take a long
|
|
|
|
time to timeout.
|
|
|
|
- Remove most compiler warnings from api.c
|
|
|
|
- Add last share's pool info in cgpu_info
|
|
|
|
- Allow the OpenCL platform ID to be chosen with --gpu-platform.
|
|
|
|
- Iterate over all platforms displaying their information and number of devices
|
|
|
|
when --ndevs is called.
|
|
|
|
- Deprecate main.c
|
|
|
|
- Some networks can take a long time to resolve so go back to 60 second timeouts
|
|
|
|
instead of 15.
|
|
|
|
- Only enable curses on failure if curses is desired.
|
|
|
|
- Fix warnings in bitforce.c
|
|
|
|
- Bugfix: Need to open BitForce tty for read-write
|
|
|
|
- Fix various build issues.
|
|
|
|
- Modularize code: main.c -> device-cpu + device-gpu
|
|
|
|
- Fix phatk kernel not working on non-bitalign capable devices (Nvidia, older
|
|
|
|
ATI).
|
|
|
|
- Update poclbm kernel for better performance on GCN and new SDKs with bitalign
|
|
|
|
support when not BFI INT patching. Update phatk kernel to work properly for non
|
|
|
|
BFI INT patched kernels, providing support for phatk to run on GCN and non-ATI
|
|
|
|
cards.
|
|
|
|
- Return last accepted share pool/time for devices
|
|
|
|
- Display accepted share pool/time for CPUs
|
|
|
|
- Bug intensity always shows GPU 0
|
|
|
|
- Update example web miner.php to use new API commands
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.2.1 - January 30, 2012
|
|
|
|
|
|
|
|
NOTE - The GPU Device reordering in 2.2.0 by default was considered a bad idea
|
|
|
|
so the original GPU ordering is used by default again unless reordering is
|
|
|
|
explicitly requested.
|
|
|
|
|
|
|
|
- Fix bitforce failing to build into cgminer.
|
|
|
|
- Add missing options to write config function.
|
|
|
|
- Add a --gpu-reorder option to only reorder devices according to PCI Bus ID
|
|
|
|
when requested.
|
|
|
|
- Fix for midstate support being broken on pools that supported no-midstate
|
|
|
|
work by ensuring numbers are 32 bits in sha2.c
|
|
|
|
- Set virtual GPUs to work when ADL is disabled or all mining will occur on GPU
|
|
|
|
0.
|
|
|
|
- Add information about paused threads in the menu status.
|
|
|
|
- Disable all but the first thread on GPUs in dynamic mode for better
|
|
|
|
interactivity.
|
|
|
|
- Set the latest network access time on share submission for --net-delay even if
|
|
|
|
we're not delaying that submission for further network access.
|
|
|
|
- Clear adl on exiting after probing values since it may attempt to overclock.
|
|
|
|
- As share submission is usually staggered, and delays can be costly, submit
|
|
|
|
shares without delay even when --net-delay is enabled.
|
|
|
|
- Display GPU number and device name when ADL is successfully enabled on it.
|
|
|
|
- Display GPU ordering remapping in verbose mode.
|
|
|
|
- Don't fail in the case the number of ADL and OpenCL devices do not match, and
|
|
|
|
do not attempt to reorder devices unless they match. Instead give a warning
|
|
|
|
about
|
|
|
|
- Display error codes should ADL not return ADL_OK in the more critical function
|
|
|
|
calls.
|
|
|
|
- Fix unused warning.
|
|
|
|
- Fix compile warnings in api.c
|
|
|
|
- Add extensive ADL based device info in debug mode.
|
|
|
|
- Make --ndevs display verbose opencl information as well to make debugging
|
|
|
|
version information easier.
|
|
|
|
- Display information about the opencl platform with verbose enabled.
|
|
|
|
- Explicitly check for nvidia in opencl platform strings as well.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.2.0 - January 29, 2012
|
|
|
|
|
|
|
|
NOTE: GPU Device order will change with this release with ATI GPUs as cgminer
|
|
|
|
now can enumerate them according to their Bus ID which means the values should
|
|
|
|
now correlate with their physical position on the motherboard.
|
|
|
|
|
|
|
|
- Default to poclbm kernel on Tahiti (7970) since phatk does not work, even
|
|
|
|
though performance is sub-standard so that at least it will mine successfully by
|
|
|
|
defau
|
|
|
|
- Retain cl program after every possible place we might build the program.
|
|
|
|
- Update ADL SDK URL.
|
|
|
|
- Fix potential overflow.
|
|
|
|
- Map GPU devices to virtual devices in their true physical order based on
|
|
|
|
BusNumber.
|
|
|
|
- Change the warning that comes with failure to init cl on a device to be more
|
|
|
|
generic and accurate.
|
|
|
|
- Advertise longpoll support in X-Mining-Extensions
|
|
|
|
- Detect dual GPU cards by iterating through all GPUs, finding ones without
|
|
|
|
fanspeed and matching twins with fanspeed one bus ID apart.
|
|
|
|
- Do not attempt to build the program that becomes the kernel twice. This could
|
|
|
|
have been leading to failures on initialising cl.
|
|
|
|
- Some opencl compilers have issues with no spaces after -D in the compiler
|
|
|
|
options.
|
|
|
|
- Allow intensity up to 14.
|
|
|
|
- Use calloced stack memory for CompilerOptions to ensure sprintf writes to the
|
|
|
|
beginning of the char.
|
|
|
|
- Whitelist 79x0 cards to prefer no vectors as they perform better without.
|
|
|
|
- Adjust fan speed gently while in the optimal range when temperature is
|
|
|
|
drifting to minimise overshoot in either direction.
|
|
|
|
- Detect dual GPU cards via the indirect information of - 1st card has a fan
|
|
|
|
controller. 2nd card does not have a fan controller, cards share the same device
|
|
|
|
name
|
|
|
|
- Instead of using the BFI_INT patching hack on any device reporting
|
|
|
|
cl_amd_media_ops, create a whitelist of devices that need it. This should enable
|
|
|
|
GCN architec
|
|
|
|
- Fixed API compiling issue on OS X
|
|
|
|
- Add more explanation of JSON format and the 'save' command
|
|
|
|
- Return an error if using ADL API commands when it's not available
|
|
|
|
- Read off lpThermalControllerInfo from each ADL device.
|
|
|
|
- Add ADL_Overdrive5_ThermalDevices_Enum interface.
|
|
|
|
- Add API commands: config, switchpool, gpu settings, save
|
|
|
|
- Implement socks4 proxy support.
|
|
|
|
- Fix send() for JSON strings
|
|
|
|
- Introduce a --net-delay option which guarantees at least 250ms between any
|
|
|
|
networking requests to not overload slow routers.
|
|
|
|
- Generalise locking init code.
|
|
|
|
- Allow invalid values to be in the configuration file, just skipping over them
|
|
|
|
provided the rest of the file is valid JSON. This will allow older configurat
|
|
|
|
- Allow CPU mining explicitly enable only if other mining support is built in.
|
|
|
|
- BitForce FPGA support
|
|
|
|
- Configure out building and support of all CPU mining code unless
|
|
|
|
--enable-cpumining is enabled.
|
|
|
|
- Allow parsed values to be zero which will allow 0 values in the config file to
|
|
|
|
work.
|
|
|
|
- Advertise that we can make our own midstate, so the pool can skip generating
|
|
|
|
it for us
|
|
|
|
- Refactor the CPU scanhash_* functions to use a common API. Fixes bugs.
|
|
|
|
- Don't consider a pool lagging if a request has only just been filed. This
|
|
|
|
should decrease the false positives for "pool not providing work fast enough".
|
|
|
|
- Invalidating work after longpoll made hash_pop return no work giving a false
|
|
|
|
positive for dead pool. Rework hash_pop to retry while finds no staged work u
|
|
|
|
- Remove TCP_NODELAY from curl options as many small packets may be contributing
|
|
|
|
to network overload, when --net-delay is enabled.
|
|
|
|
- Refactor miner_thread to be common code for any kind of device
|
|
|
|
- Simplify submit_nonce loop and avoid potentially missing FOUND - 1 entry.
|
|
|
|
Reported by Luke-Jr.
|
|
|
|
- Micro-optimisation in sha256_sse2 code courtesy of Guido Ascioti
|
|
|
|
guido.ascioti@gmail.com
|
|
|
|
- Refactor to abstract device-specific code
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.1.2 - January 6, 2012
|
|
|
|
|
|
|
|
- If api-description is specified, save it when writing the config file
|
|
|
|
- Adjust utility width to be constant maximum as well.
|
|
|
|
- Add percent signs to reject ratio outputs
|
|
|
|
- Should the donation pool fail, don't make the fallover pool behave as though
|
|
|
|
the primary pool is lagging.
|
|
|
|
- Use an alternative pool should the donation getwork fail.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.1.1 - January 1, 2012
|
|
|
|
|
|
|
|
- Include API examples in distribution tarball.
|
|
|
|
- Don't attempt to pthread_join when cancelling threads as they're already
|
|
|
|
detached and doing so can lead to a segfault.
|
|
|
|
- Give more generic message if slow pool at startup is the donation pool.
|
|
|
|
- Continue to attempt restarting GPU threads if they're flagged dead at 1 min.
|
|
|
|
intervals.
|
|
|
|
- Don't attempt to restart sick flagged GPUs while they're still registering
|
|
|
|
activity.
|
|
|
|
- Make curl use fresh connections whenever there is any communication issue
|
|
|
|
in case there are dead persistent connections preventing further comms from
|
|
|
|
working.
|
|
|
|
- Display pool in summary if only 1 pool.
|
|
|
|
- Adjust column width of A/R/HW to be the maximum of any device and align them.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.1.0 - December 27, 2011
|
|
|
|
|
|
|
|
- Major infrastructure upgrade with RPC interface for controlling via sockets
|
|
|
|
encoded with/without JSON courtesy of Andrew Smith. Added documentation for
|
|
|
|
use of the API and sample code to use with it.
|
|
|
|
- Updated linux-usb-cgminer document.
|
|
|
|
- Rewrite of longpoll mechanism to choose the current pool wherever possible to
|
|
|
|
use for the longpoll, or any pool that supports longpoll if the current one
|
|
|
|
does not.
|
|
|
|
- Display information about longpoll when the chosen server has changed.
|
|
|
|
- Fix the bug where longpoll generated work may have been sent back to the
|
|
|
|
wrong pool, causing rejects.
|
|
|
|
- Fix a few race conditions on closing cgminer which caused some of the crashes
|
|
|
|
on exit.
|
|
|
|
- Only adjust gpu engine speed in autotune mode if the gpu is currently at the
|
|
|
|
performance level of that being adjusted.
|
|
|
|
- Various fixes for parsing/writing of configuration files.
|
|
|
|
- Do not add blank lines for threads of unused CPUs.
|
|
|
|
- Show which pool is unresponsive on startup.
|
|
|
|
- Only show GPU management menu item if GPUs are in use.
|
|
|
|
- Align most device columns in the curses display.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.8 - November 11, 2011
|
|
|
|
|
|
|
|
- Make longpoll do a mandatory flushing of all work even if the block hasn't
|
|
|
|
changed, thus supporting longpoll initiated work change of any sort and merged
|
|
|
|
mining.
|
|
|
|
- Byteswap computed hash in hashtest so it can be correctly checked. This fixes
|
|
|
|
the very rare possibility that a block solve on solo mining was missed.
|
|
|
|
- Add x86_64 w64 mingw32 target
|
|
|
|
- Allow a fixed speed difference between memory and GPU clock speed with
|
|
|
|
--gpu-memdiff that will change memory speed when GPU speed is changed in
|
|
|
|
autotune mode.
|
|
|
|
- Don't load the default config if a config file is specified on the command
|
|
|
|
line.
|
|
|
|
- Don't build VIA on apple since -a auto bombs instead of gracefully ignoring
|
|
|
|
VIA failing.
|
|
|
|
- Build fix for dlopen/dlclose errors in glibc.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.7 - October 17, 2011
|
|
|
|
|
|
|
|
- Support work without midstate or hash1, which are deprecated in bitcoind 0.5+
|
|
|
|
- Go to kernel build should we fail to clCreateProgramWithBinary instead of
|
|
|
|
failing on that device. This should fix the windows problems with devices not
|
|
|
|
initialising.
|
|
|
|
- Support new configuration file format courtesy of Chris Savery which can write
|
|
|
|
the config file from the menu and will load it on startup.
|
|
|
|
- Write unix configuration to .cgminer/cgminer.conf by default and prompt to
|
|
|
|
overwrite if given a filename from the menu that exists.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.6 - October 9, 2011
|
|
|
|
|
|
|
|
- Must initialise the donorpool mutex or it fails on windows.
|
|
|
|
- Don't make donation work interfere with block change detection allowing
|
|
|
|
donation to work regardless of the block chain we're mining on.
|
|
|
|
- Expire shares as stale with a separate timeout from the scantime, defaulting
|
|
|
|
to 120 seconds.
|
|
|
|
- Retry pools after a delay of 15 seconds if none can be contacted on startup
|
|
|
|
unless a key is pressed.
|
|
|
|
- Don't try to build adl features without having adl.
|
|
|
|
- Properly check shares against target difficulty - This will no longer show
|
|
|
|
shares when solo mining at all unless they're considered to be a block solve.
|
|
|
|
- Add altivec 4 way (cpu mining) support courtesy of Gilles Risch.
|
|
|
|
- Try to use SSL if the server supports it.
|
|
|
|
- Display the total solved blocks on exit (LOL if you're lucky).
|
|
|
|
- Use ADL activity report to tell us if a sick GPU is still busy suggesting it
|
|
|
|
is hard hung and do not attempt to restart it.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.5 - September 27, 2011
|
|
|
|
|
|
|
|
- Intensity can now be set to dynamic or static values per-device.
|
|
|
|
- New donation feature --donation sends a proportion of shares to author's
|
|
|
|
account of choice, but is disabled by default!
|
|
|
|
- The hash being displayed and block detection has been fixed.
|
|
|
|
- Devices not being mined on will not attempt to be ADL managed.
|
|
|
|
- Intensity is now displayed per GPU device.
|
|
|
|
- Make longpoll attempt to restart as often as opt_retries specifies.
|
|
|
|
- We weren't rolling work as often as we could.
|
|
|
|
- Correct some memory management issues.
|
|
|
|
- Build fixes.
|
|
|
|
- Don't mess with GPUs if we don't have them.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.4 - September 23, 2011
|
|
|
|
|
|
|
|
- Confused Longpoll messages should be finally fixed with cgminer knowing for
|
|
|
|
sure who found the new block and possibly avoiding a rare crash.
|
|
|
|
- Display now shows the actual hash and will say BLOCK! if a block is deemed
|
|
|
|
solved.
|
|
|
|
- Extra spaces, which would double space lines on small terminals, have been
|
|
|
|
removed.
|
|
|
|
- Fan speed change is now damped if it is already heading in the correct
|
|
|
|
direction to minimise overshoot.
|
|
|
|
- Building without opencl libraries is fixed.
|
|
|
|
- GPUs are autoselected if there is only one when in the GPU management menu.
|
|
|
|
- GPU menu is refreshed instead of returning to status after a GPU change.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.3 - September 17, 2011
|
|
|
|
|
|
|
|
- Various modes of failure to set fanspeeds and adl values have been addressed
|
|
|
|
and auto-fan should work now on most hardware, and possibly other values
|
|
|
|
which previously would not have worked.
|
|
|
|
- Fixed a crash that can occur on switching pools due to longpoll thread races.
|
|
|
|
- Use ATISTREAMSDKROOT if available at build time.
|
|
|
|
- Fanspeed management is returned to the driver default on exit instead of
|
|
|
|
whatever it was when cgminer was started.
|
|
|
|
- Logging of events deemed WARNING or ERR now will display even during
|
|
|
|
periods where menu input is being awaited on.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.2 - September 11, 2011
|
|
|
|
|
|
|
|
- Exit cleanly if we abort before various threads are set up or if they no
|
|
|
|
longer exist.
|
|
|
|
- Fix a rare crash in HASH_DEL due to using different mutexes to protect the
|
|
|
|
data.
|
|
|
|
- Flag devices that have never started and don't allow enabling of devices
|
|
|
|
without restarting them.
|
|
|
|
- Only force the adapter speed to high if we've flagged this device as being
|
|
|
|
managed.
|
|
|
|
- Flag any devices with autofan or autogpu as being managed.
|
|
|
|
- Use a re-entrant value to store what fanspeed we're trying to set in case the
|
|
|
|
card doesn't support small changes. Force it to a multiple of 10% if it
|
|
|
|
fails on trying to speed up the fan.
|
|
|
|
- Do not bother resetting values to old ones if changes to GPU parameters report
|
|
|
|
failure, instead returning a failure code only if the return value from get()
|
|
|
|
differs.
|
|
|
|
- Remove redundant check.
|
|
|
|
- Only display supported values from fanspeed on change settings.
|
|
|
|
- Missing bracket from output.
|
|
|
|
- Display fan percentage on devices that only support reporting percent and not
|
|
|
|
RPM.
|
|
|
|
- Properly substitute DLOPEN flags to build with ADL support when -ldl is needed
|
|
|
|
and not when opencl is not found.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.1 - September 9, 2011
|
|
|
|
|
|
|
|
- Fix building on 32bit glibc with dlopen with -lpthread and -ldl
|
|
|
|
- ByteReverse is not used and the bswap opcode breaks big endian builds. Remove
|
|
|
|
it.
|
|
|
|
- Ignore whether the display is active or not since only display enabled devices
|
|
|
|
work this way, and we skip over repeat entries anwyay.
|
|
|
|
- Only reset values on exiting if we've ever modified them.
|
|
|
|
- Flag adl as active if any card is successfully activated.
|
|
|
|
- Add a thermal cutoff option as well and set it to 95 degrees by default.
|
|
|
|
- Change the fan speed by only 5% if it's over the target temperature but less
|
|
|
|
than the hysteresis value to minimise overshoot down in temperature.
|
|
|
|
- Add a --no-adl option to disable ADL monitoring and GPU settings.
|
|
|
|
- Only show longpoll received delayed message at verbose level.
|
|
|
|
- Allow temperatures greater than 100 degrees.
|
|
|
|
- We should be passing a float for the remainder of the vddc values.
|
|
|
|
- Implement accepting a range of engine speeds as well to allow a lower limit to
|
|
|
|
be specified on the command line.
|
|
|
|
- Allow per-device fan ranges to be set and use them in auto-fan mode.
|
|
|
|
- Display which GPU has overheated in warning message.
|
|
|
|
- Allow temperature targets to be set on a per-card basis on the command line.
|
|
|
|
- Display fan range in autofan status.
|
|
|
|
- Setting the hysteresis is unlikely to be useful on the fly and doesn't belong
|
|
|
|
in the per-gpu submenu.
|
|
|
|
- With many cards, the GPU summaries can be quite long so use a terse output
|
|
|
|
line when showing them all.
|
|
|
|
- Use a terser device status line to show fan RPM as well when available.
|
|
|
|
- Define max gpudevices in one macro.
|
|
|
|
- Allow adapterid 0 cards to enumerate as a device as they will be non-AMD
|
|
|
|
cards, and enable ADL on any AMD card.
|
|
|
|
- Do away with the increasingly confusing and irrelevant total queued and
|
|
|
|
efficiency measures per device.
|
|
|
|
- Only display values in the log if they're supported and standardise device log
|
|
|
|
line printing.
|
|
|
|
|
|
|
|
|
|
|
|
Version 2.0.0 - September 6, 2011
|
|
|
|
|
|
|
|
Major feature upgrade - GPU monitoring, (over)clocking and fan control for ATI
|
|
|
|
GPUs.
|
|
|
|
|
|
|
|
New command line switches:
|
|
|
|
--auto-fan- Automatically adjust all GPU fan speeds to maintain a target
|
|
|
|
temperature
|
|
|
|
--auto-gpu- Automatically adjust all GPU engine clock speeds to maintain
|
|
|
|
a target temperature
|
|
|
|
--gpu-engine <arg> Set the GPU engine (over)clock in Mhz - one value for all or
|
|
|
|
separate by commas for per card.
|
|
|
|
--gpu-fan <arg> Set the GPU fan percentage - one value for all or separate
|
|
|
|
by commas for per card.
|
|
|
|
--gpu-memclock <arg> Set the GPU memory (over)clock in Mhz - one value for all
|
|
|
|
or separate by commas for per card.
|
|
|
|
--gpu-powertune <arg> Set the GPU powertune percentage - one value for all or
|
|
|
|
separate by commas for per card.
|
|
|
|
--gpu-vddc <arg> Set the GPU voltage in Volts - one value for all or separate
|
|
|
|
by commas for per card.
|
|
|
|
--temp-hysteresis <arg> Set how much the temperature can fluctuate outside
|
|
|
|
limits when automanaging speeds (default: 3)
|
|
|
|
--temp-overheat <arg> Set the overheat temperature when automatically managing
|
|
|
|
fan and GPU speeds (default: 85)
|
|
|
|
--temp-target <arg> Set the target temperature when automatically managing fan
|
|
|
|
and GPU speeds (default: 75)
|
|
|
|
|
|
|
|
- Implement ATI ADL support for GPU parameter monitoring now and setting later
|
|
|
|
(temp, fan, clocks etc.).
|
|
|
|
- Check for the presence of the ADL header files in ADL_SDK.
|
|
|
|
- Import adl_functions.h from amd overdrive ctrl.
|
|
|
|
- Implement a setup function that tries to detect GPUs that support the ADL and
|
|
|
|
link in the parameters into the gpus struct.
|
|
|
|
- Put a summary of monitoring information from the GPU menu.
|
|
|
|
- Implement changing memory speed and voltage on the fly.
|
|
|
|
- Implement fan speed setting.
|
|
|
|
- Minor corrections to set fan speed by percentage.
|
|
|
|
- Make sure to read off the value in RPM only.
|
|
|
|
- Implement auto fanspeed adjustment to maintain a target temperature and
|
|
|
|
fanspeed below 85%, with an overheat check that will speed the fan up to 100%.
|
|
|
|
- Add an --auto-fan command line option to allow all GPUs to have autofan
|
|
|
|
enabled from startup.
|
|
|
|
- Add a gpu autotune option which adjusts GPU speed to maintain a target
|
|
|
|
temperature within the bounds of the default GPU speed and any overclocking set.
|
|
|
|
- Avoid a dereference if the longpoll thread doesn't exist.
|
|
|
|
- Clean up by setting performance profiles and fan settings to startup levels on
|
|
|
|
exit.
|
|
|
|
- Add a small amount of hysteresis before lowering clock speed.
|
|
|
|
- Allow target, overheat and hysteresis temperatures to be set from command
|
|
|
|
line.
|
|
|
|
- Combine all stats collating into one function to avoid repeating function
|
|
|
|
calls on each variable.
|
|
|
|
- Add gpu statistics to debugging output via the watchdog thread.
|
|
|
|
- Implement menus to change temperature limits.
|
|
|
|
- Implement setting the GPU engine clock speed of all devices or each device as
|
|
|
|
a comma separated value.
|
|
|
|
- Implement setting the GPU memory clock speed of all devices or each device as
|
|
|
|
a comma separated value.
|
|
|
|
- Implement setting the GPU voltage of all devices or each device as a comma
|
|
|
|
separated value.
|
|
|
|
- Implement setting the GPU fan speed of all devices or each device as a comma
|
|
|
|
separated value.
|
|
|
|
- Add support for monitoring powertune setting.
|
|
|
|
- Implement changing of powertune value from the GPU change settings menu.
|
|
|
|
- Get the value of powertune in get_stats.
|
|
|
|
- Implement setting the GPU powertune value of all devices or each device as a
|
|
|
|
comma separated value.
|
|
|
|
- Remove the safety checks in speed setting since confirmation is done first in
|
|
|
|
the menu, then show the new current values after a short pause.
|
|
|
|
- Force the speed to high on startup and restore it to whatever the setting was
|
|
|
|
on exit.
|
|
|
|
- Add temperature to standard output where possible and use more compact output.
|
|
|
|
- Move and print at the same time in curses to avoid random trampling display
|
|
|
|
errors.
|
|
|
|
- Update the status window only from the watchdog thread, do not rewrite the top
|
|
|
|
status messages and only refresh once all the status window is complete,
|
|
|
|
clearing the window each time to avoid corruption.
|
|
|
|
- Set a safe starting fan speed if we're automanaging the speeds.
|
|
|
|
- Provide locking around all adl calls to prevent races.
|
|
|
|
- Lower profile settings cannot be higher than higher profile ones so link any
|
|
|
|
drops in settings.
|
|
|
|
- Add new needed text files to distribution.
|
|
|
|
- Queue requests ignoring the number of staged clones since they get discarded
|
|
|
|
very easily leading to false positives for pool not providing work fast enough.
|
|
|
|
- Include libgen.h in opt.c to fix win32 compilation warnings.
|
|
|
|
- Fix compilation warning on win32.
|
|
|
|
- Add the directory name from the arguments cgminer was called from as well to
|
|
|
|
allow it running from a relative pathname.
|
|
|
|
- Add a --disable-adl option to configure and only enable it if opencl support
|
|
|
|
exists.
|
|
|
|
- Retry before returning a failure to get upstream work as a failure to avoid
|
|
|
|
false positives for pool dead.
|
|
|
|
- Retry also if the decoding of work fails.
|
|
|
|
- Use the presence of X-Roll-Ntime in the header as a bool for exists unless N
|
|
|
|
is found in the response.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.6.2 - September 2, 2011
|
|
|
|
|
|
|
|
- Add --failover-only option to not leak work to backup pools when the primary
|
|
|
|
pool is lagging.
|
|
|
|
- Change recommendation to intensity 9 for dedicated miners.
|
|
|
|
- Fix the bouncing short term value by allowing it to change dynamically when
|
|
|
|
the latest value is very different from the rolling value, but damp the change
|
|
|
|
when it gets close.
|
|
|
|
- Use the curses_lock to protect the curses_active variable and test it under
|
|
|
|
lock.
|
|
|
|
- Go back to requesting work 2/3 of the way through the current scantime with
|
|
|
|
CPU mining as reports of mining threads running out of work have occurred with
|
|
|
|
only 5 seconds to retrieve work.
|
|
|
|
- Add start and stop time scheduling for regular time of day running or once off
|
|
|
|
start/stop options.
|
|
|
|
- Print summary on quit modes.
|
|
|
|
- Put some sanity checks on the times that can be input.
|
|
|
|
- Give a verbose message when no active pools are found and pause before
|
|
|
|
exiting.
|
|
|
|
- Add verbose message when a GPU fails to initialise, and disable the correct
|
|
|
|
GPU.
|
|
|
|
- Cryptopp asm32 was not correctly updated to the incremental nonce code so the
|
|
|
|
hash counter was bogus.
|
|
|
|
- Get rid of poorly executed curl check.
|
|
|
|
- If curl does not have sockopts, do not try to compile the
|
|
|
|
json_rpc_call_sockopt_cb function, making it possible to build against older
|
|
|
|
curl libraries.
|
|
|
|
- Most people expect /usr/local when an unspecified prefix is used so change to
|
|
|
|
that.
|
|
|
|
- Rename localgen occasions to getwork fail occasions since localgen is
|
|
|
|
unrelated now.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.6.1 - August 29, 2011
|
|
|
|
|
|
|
|
- Copy cgminer path, not cat it.
|
|
|
|
- Switching between redrawing windows does not fix the crash with old
|
|
|
|
libncurses, so redraw both windows, but only when the window size hasn't
|
|
|
|
changed.
|
|
|
|
- Reinstate minimum 1 extra in queue to make it extremely unlikely to ever have
|
|
|
|
0 staged work items and any idle time.
|
|
|
|
- Return -1 if no input is detected from the menu to prevent it being
|
|
|
|
interpreted as a 0.
|
|
|
|
- Make pthread, libcurl and libcurses library checks mandatory or fail.
|
|
|
|
- Add a --disable-opencl configure option to make it possible to override
|
|
|
|
detection of opencl and build without GPU mining support.
|
|
|
|
- Confusion over the variable name for number of devices was passing a bogus
|
|
|
|
value which likely was causing the zero sized binary issue.
|
|
|
|
- cgminer no longer supports default url user and pass so remove them.
|
|
|
|
- Don't show value of intensity since it's dynamic by default.
|
|
|
|
- Add options to explicitly enable CPU mining or disable GPU mining.
|
|
|
|
- Convert the opt queue into a minimum number of work items to have queued
|
|
|
|
instead of an extra number to decrease risk of getting idle devices without
|
|
|
|
increasing risk of higher rejects.
|
|
|
|
- Statify tv_sort.
|
|
|
|
- Check for SSE2 before trying to build 32 bit SSE2 assembly version. Prevents
|
|
|
|
build failure when yasm is installed but -msse2 is not specified.
|
|
|
|
- Add some defines to configure.ac to enable exporting of values and packaging,
|
|
|
|
and clean up output.
|
|
|
|
- Give convenient summary at end of ./configure.
|
|
|
|
- Display version information and add --version command line option, and make
|
|
|
|
sure we flush stdout.
|
|
|
|
- Enable curses after the mining threads are set up so that failure messages
|
|
|
|
won't be lost in the curses interface.
|
|
|
|
- Disable curses after inputting a pool if we requested no curses interface.
|
|
|
|
- Add an option to break out after successfully mining a number of accepted
|
|
|
|
shares.
|
|
|
|
- Exit with a failed return code if we did not reach opt_shares.
|
|
|
|
- The cpu mining work data can get modified before we copy it if we submit it
|
|
|
|
async, and the sync submission is not truly sync anyway, so just submit it sync.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.6.0 - August 26, 2011
|
|
|
|
|
|
|
|
- Make restarting of GPUs optional for systems that hang on any attempt to
|
|
|
|
restart them. Fix DEAD status by comparing it to last live time rather than
|
|
|
|
last attempted restart time since that happens every minute.
|
|
|
|
- Move staged threads to hashes so we can sort them by time.
|
|
|
|
- Create a hash list of all the blocks created and search them to detect when a
|
|
|
|
new block has definitely appeared, using that information to detect stale work
|
|
|
|
and discard it.
|
|
|
|
- Update configure.ac for newer autoconf tools.
|
|
|
|
- Use the new hashes directly for counts instead of the fragile counters
|
|
|
|
currently in use.
|
|
|
|
- Update to latest sse2 code from cpuminer-ng.
|
|
|
|
- Allow LP to reset block detect and block detect lp flags to know who really
|
|
|
|
came first.
|
|
|
|
- Get start times just before mining begins to not have very slow rise in
|
|
|
|
average.
|
|
|
|
- Add message about needing one server.
|
|
|
|
- We can queue all the necessary work without hitting frequent stales now with
|
|
|
|
the time and string stale protection active all the time. This prevents a
|
|
|
|
pool being falsely labelled as not providing work fast enough.
|
|
|
|
- Include uthash.h in distro.
|
|
|
|
- Implement SSE2 32 bit assembly algorithm as well.
|
|
|
|
- Fail gracefully if unable to open the opencl files.
|
|
|
|
- Make cgminer look in the install directory for the .cl files making make
|
|
|
|
install work correctly.
|
|
|
|
- Allow a custom kernel path to be entered on the command line.
|
|
|
|
- Bump threshhold for lag up to maximum queued but no staged work.
|
|
|
|
- Remove fragile source patching for bitalign, vectors et. al and simply pass it
|
|
|
|
with the compiler options.
|
|
|
|
- Actually check the value returned for the x-roll-ntime extension to make sure
|
|
|
|
it isn't saying N.
|
|
|
|
- Prevent segfault on exit for when accessory threads don't exist.
|
|
|
|
- Disable curl debugging with opt protocol since it spews to stderr.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.8 - August 23, 2011
|
|
|
|
|
|
|
|
- Minimise how much more work can be given in cpu mining threads each interval.
|
|
|
|
- Make the fail-pause progressively longer each time it fails until the network
|
|
|
|
recovers.
|
|
|
|
- Only display the lagging message if we've requested the work earlier.
|
|
|
|
- Clean up the pool switching to not be dependent on whether the work can roll
|
|
|
|
or not by setting a lagging flag and then the idle flag.
|
|
|
|
- Only use one thread to determine if a GPU is sick or well, and make sure to
|
|
|
|
reset the sick restart attempt time.
|
|
|
|
- The worksize was unintentionally changed back to 4k by mistake, this caused a
|
|
|
|
slowdown.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.7 - August 22, 2011
|
|
|
|
|
|
|
|
- Fix a crash with --algo auto
|
|
|
|
- Test at appropriate target difficulty now.
|
|
|
|
- Add per-device statics log output with --per-device-stats
|
|
|
|
- Fix breakage that occurs when 1 or 4 vectors are chosen on new phatk.
|
|
|
|
- Make rolltime report debug level only now since we check it every work
|
|
|
|
item.
|
|
|
|
- Add the ability to enable/disable per-device stats on the fly and match
|
|
|
|
logging on/off.
|
|
|
|
- Explicitly tell the compiler to retain the program to minimise the chance of
|
|
|
|
the zero sized binary errors.
|
|
|
|
- Add one more instruction to avoid one branch point in the common path in the
|
|
|
|
cl return code. Although this adds more ALUs overall and more branch points, the
|
|
|
|
common path code has the same number of ALUs and one less jmp, jmps being more
|
|
|
|
expensive.
|
|
|
|
- Explicitly link in ws2_32 on the windows build and update README file on how
|
|
|
|
to compile successfully on windows.
|
|
|
|
- Release cl resources should the gpu mining thread abort.
|
|
|
|
- Attempt to restart a GPU once every minute while it's sick.
|
|
|
|
- Don't kill off the reinit thread if it fails to init a GPU but returns safely.
|
|
|
|
- Only declare a GPU dead if there's been no sign of activity from the reinit
|
|
|
|
thread for 10 mins.
|
|
|
|
- Never automatically disable any pools but just specify them as idle if they're
|
|
|
|
unresponsive at startup.
|
|
|
|
- Use any longpoll available, and don't disable it if switching to a server that
|
|
|
|
doesn't have it. This allows you to mine solo, yet use the longpoll from a pool
|
|
|
|
even if the pool is the backup server.
|
|
|
|
- Display which longpoll failed and don't free the ram for lp_url since it
|
|
|
|
belongs to the pool hdr path.
|
|
|
|
- Make the tcp setsockopts unique to linux in the hope it allows freebsd et. al
|
|
|
|
to compile.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.6 - August 17, 2011
|
|
|
|
|
|
|
|
- New phatk and poclbm kernels. Updated phatk to be in sync with latest 2.2
|
|
|
|
courtesy of phateus. Custom modified to work best with cgminer.
|
|
|
|
- Updated output buffer code to use a smaller buffer with the kernels.
|
|
|
|
- Clean up the longpoll management to ensure the right paths go to the right
|
|
|
|
pool and display whether we're connected to LP or not in the status line.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.5 - August 16, 2011
|
|
|
|
|
|
|
|
- Rework entirely the GPU restart code. Strike a balance between code that
|
|
|
|
re-initialises the GPU entirely so that soft hangs in the code are properly
|
|
|
|
managed, but if a GPU is completely hung, the thread restart code fails
|
|
|
|
gracefully, so that it does not take out any other code or devices. This will
|
|
|
|
allow cgminer to keep restarting GPUs that can be restarted, but continue
|
|
|
|
mining even if one or more GPUs hangs which would normally require a reboot.
|
|
|
|
- Add --submit-stale option which submits all shares, regardless of whether they
|
|
|
|
would normally be considered stale.
|
|
|
|
- Keep options in alphabetical order.
|
|
|
|
- Probe for slightly longer for when network conditions are lagging.
|
|
|
|
- Only display the CPU algo when we're CPU mining.
|
|
|
|
- As we have keepalives now, blaming network flakiness on timeouts appears to
|
|
|
|
have been wrong. Set a timeout for longpoll to 1 hour, and most other
|
|
|
|
network connectivity to 1 minute.
|
|
|
|
- Simplify output code and remove HW errors from CPU stats.
|
|
|
|
- Simplify code and tidy output.
|
|
|
|
- Only show cpu algo in summary if cpu mining.
|
|
|
|
- Log summary at the end as per any other output.
|
|
|
|
- Flush output.
|
|
|
|
- Add a linux-usb-cgminer guide courtesy of Kano.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.4 - August 14, 2011
|
|
|
|
|
|
|
|
- Add new option: --monitor <cmd> Option lets user specify a command <cmd> that
|
|
|
|
will get forked by cgminer on startup. cgminer's stderr output subsequently gets
|
|
|
|
piped directly to this command.
|
|
|
|
- Allocate work from one function to be able to initialise variables added
|
|
|
|
later.
|
|
|
|
- Add missing fflush(stdout) for --ndevs and conclusion summary.
|
|
|
|
- Preinitialise the devices only once on startup.
|
|
|
|
- Move the non cl_ variables into the cgpu info struct to allow creating a new
|
|
|
|
cl state on reinit, preserving known GPU variables.
|
|
|
|
- Create a new context from scratch in initCQ in case something was corrupted to
|
|
|
|
maximise our chance of succesfully creating a new worker thread. Hopefully this
|
|
|
|
makes thread restart on GPU failure more reliable, without hanging everything
|
|
|
|
in the case of a completely wedged GPU.
|
|
|
|
- Display last initialised time in gpu management info, to know if a GPU has
|
|
|
|
been re-initialised.
|
|
|
|
- When pinging a sick cpu, flush finish and then ping it in a separate thread in
|
|
|
|
the hope it recovers without needing a restart, but without blocking code
|
|
|
|
elsewhere.
|
|
|
|
- Only consider a pool lagging if we actually need the work and we have none
|
|
|
|
staged despite queue requests stacking up. This decreases significantly the
|
|
|
|
amount of work that leaks to the backup pools.
|
|
|
|
- The can_roll function fails inappropriately in stale_work.
|
|
|
|
- Only put the message that a pool is down if not pinging it every minute. This
|
|
|
|
prevents cgminer from saying pool down at 1 minute intervals unless in debug
|
|
|
|
mode.
|
|
|
|
- Free all work in one place allowing us to perform actions on it in the future.
|
|
|
|
- Remove the extra shift in the output code which was of dubious benefit. In
|
|
|
|
fact in cgminer's implementation, removing this caused a miniscule speedup.
|
|
|
|
- Test each work item to see if it can be rolled instead of per-pool and roll
|
|
|
|
whenever possible, adhering to the 60 second timeout. This makes the period
|
|
|
|
after a longpoll have smaller dips in throughput, as well as requiring less
|
|
|
|
getworks overall thus increasing efficiency.
|
|
|
|
- Stick to rolling only work from the current pool unless we're in load balance
|
|
|
|
mode or lagging to avoid aggressive rolling imitating load balancing.
|
|
|
|
- If a work item has had any mining done on it, don't consider it discarded
|
|
|
|
work.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.3 - July 30, 2011
|
|
|
|
|
|
|
|
- Significant work went into attempting to make the thread restart code robust
|
|
|
|
to identify sick threads, tag them SICK after 1 minute, then DEAD after 5
|
|
|
|
minutes of inactivity and try to restart them. Instead of re-initialising the
|
|
|
|
GPU completely, only a new cl context is created to avoid hanging the rest of
|
|
|
|
the GPUs should the dead GPU be hung irrevocably.
|
|
|
|
- Use correct application name in syslog.
|
|
|
|
- Get rid of extra line feeds.
|
|
|
|
- Use pkg-config to check for libcurl version
|
|
|
|
- Implement per-thread getwork count with proper accounting to not over-account
|
|
|
|
queued items when local work replaces it.
|
|
|
|
- Create a command queue from the program created from source which allows us
|
|
|
|
to flush the command queue in the hope it will not generate a zero sized binary
|
|
|
|
any more.
|
|
|
|
- Be more willing to get work from the backup pools if the work is simply being
|
|
|
|
queued faster than it is being retrieved.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.2 - July 28, 2011
|
|
|
|
|
|
|
|
- Restarting a hung GPU can hang the rest of the GPUs so just declare it dead
|
|
|
|
and provide the information in the status.
|
|
|
|
- The work length in the miner thread gets smaller but doesn't get bigger if
|
|
|
|
it's under 1 second. This could end up leading to CPU under-utilisation and
|
|
|
|
lower and lower hash rates. Fix it by increasing work length if it drops
|
|
|
|
under 1 second.
|
|
|
|
- Make the "quiet" mode still update the status and display errors, and add a
|
|
|
|
new --real-quiet option which disables all output and can be set once while
|
|
|
|
running.
|
|
|
|
- Update utility and efficiency figures when displaying them.
|
|
|
|
- Some Intel HD graphics support the opencl commands but return errors since
|
|
|
|
they don't support opencl. Don't fail with them, just provide a warning and
|
|
|
|
disable GPU mining.
|
|
|
|
- Add http:// if it's not explicitly set for URL entries.
|
|
|
|
- Log to the output file at any time with warnings and errors, instead of just
|
|
|
|
when verbose mode is on.
|
|
|
|
- Display the correct current hash as per blockexplorer, truncated to 16
|
|
|
|
characters, with just the time.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.1 - July 27, 2011
|
|
|
|
|
|
|
|
- Two redraws in a row cause a crash in old libncurses so just do one redraw
|
|
|
|
using the main window.
|
|
|
|
- Don't adjust hash_div only up for GPUs. Disable hash_div adjustment for GPUs.
|
|
|
|
- Only free the thread structures if the thread still exists.
|
|
|
|
- Update both windows separately, but not at the same time to prevent the double
|
|
|
|
refresh crash that old libncurses has. Do the window resize check only when
|
|
|
|
about to redraw the log window to minimise ncurses cpu usage.
|
|
|
|
- Abstract out the decay time function and use it to make hash_div a rolling
|
|
|
|
average so it doesn't change too abruptly and divide work in chunks large enough
|
|
|
|
to guarantee they won't overlap.
|
|
|
|
- Sanity check to prove locking.
|
|
|
|
- Don't take more than one lock at a time.
|
|
|
|
- Make threads report out when they're queueing a request and report if they've
|
|
|
|
failed.
|
|
|
|
- Make cpu mining work submission asynchronous as well.
|
|
|
|
- Properly detect stale work based on time from staging and discard instead of
|
|
|
|
handing on, but be more lax about how long work can be divided for up to the
|
|
|
|
scantime.
|
|
|
|
- Do away with queueing work separately at the start and let each thread grab
|
|
|
|
its own work as soon as it's ready.
|
|
|
|
- Don't put an extra work item in the queue as each new device thread will do so
|
|
|
|
itself.
|
|
|
|
- Make sure to decrease queued count if we discard the work.
|
|
|
|
- Attribute split work as local work generation.
|
|
|
|
- If work has been cloned it is already at the head of the list and when being
|
|
|
|
reinserted into the queue it should be placed back at the head of the list.
|
|
|
|
- Dividing work is like the work is never removed at all so treat it as such.
|
|
|
|
However the queued bool needs to be reset to ensure we *can* request more work
|
|
|
|
even if we didn't initially.
|
|
|
|
- Make the display options clearer.
|
|
|
|
- Add debugging output to tq_push calls.
|
|
|
|
- Add debugging output to all tq_pop calls.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.5.0 - July 26, 2011
|
|
|
|
|
|
|
|
- Increase efficiency of slow mining threads such as CPU miners dramatically. Do
|
|
|
|
this by detecting which threads cannot complete searching a work item within the
|
|
|
|
scantime and then divide up a work item into multiple smaller work items.
|
|
|
|
Detect the age of the work items and if they've been cloned before to prevent
|
|
|
|
doing the same work over. If the work is too old to be divided, then see if it
|
|
|
|
can be time rolled and do that to generate work. This dramatically decreases the
|
|
|
|
number of queued work items from a pool leading to higher overall efficiency
|
|
|
|
(but the same hashrate and share submission rate).
|
|
|
|
- Don't request work too early for CPUs as CPUs will scan for the full
|
|
|
|
opt_scantime anyway.
|
|
|
|
- Simplify gpu management enable/disable/restart code.
|
|
|
|
- Implement much more accurate rolling statistics per thread and per gpu and
|
|
|
|
improve accuracy of rolling displayed values.
|
|
|
|
- Make the rolling log-second average more accurate.
|
|
|
|
- Add a menu to manage GPUs on the fly allowing you to enable/disable GPUs or
|
|
|
|
try restarting them.
|
|
|
|
- Keep track of which GPUs are alive versus enabled.
|
|
|
|
- Start threads for devices that are even disabled, but don't allow them to
|
|
|
|
start working.
|
|
|
|
- The last pool is when we are low in total_pools, not active_pools.
|
|
|
|
- Make the thread restart do a pthread_join after disabling the device, only
|
|
|
|
re-enabling it if we succeed in restarting the thread. Do this from a separate
|
|
|
|
thread so as to not block any other code.This will allow cgminer to continue
|
|
|
|
even if one GPU hangs.
|
|
|
|
- Try to do every curses manipulation under the curses lock.
|
|
|
|
- Only use the sockoptfunction if the version of curl is recent enough.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.4.1 - July 24, 2011
|
|
|
|
|
|
|
|
- Do away with GET for dealing with longpoll forever. POST is the one that works
|
|
|
|
everywhere, not the other way around.
|
|
|
|
- Detect when the primary pool is lagging and start queueing requests on backup
|
|
|
|
pools if possible before needing to roll work.
|
|
|
|
- Load balancing puts more into the current pool if there are disabled pools.
|
|
|
|
Fix.
|
|
|
|
- Disable a GPU device should the thread fail to init.
|
|
|
|
- Out of order command queue may fail on osx. Try without if it fails.
|
|
|
|
- Fix possible dereference on blank inputs during input_pool.
|
|
|
|
- Defines missing would segfault on --help when no sse mining is built in.
|
|
|
|
- Revert "Free up resources/stale compilers." - didn't help.
|
|
|
|
- Only try to print the status of active devices or it would crash.
|
|
|
|
- Some hardware might benefit from the less OPS so there's no harm in leaving
|
|
|
|
kernel changes that do that apart from readability of the code.
|
|
|
|
|
|
|
|
Version 1.4.0 - July 23, 2011
|
|
|
|
|
|
|
|
- Feature upgrade: Add keyboard input during runtime to allow modification of
|
|
|
|
and viewing of numerous settings such as adding/removing pools, changing
|
|
|
|
multipool management strategy, switching pools, changing intensiy, verbosity,
|
|
|
|
etc. with a simple keypress menu system.
|
|
|
|
- Free up resources/stale compilers.
|
|
|
|
- Kernels are safely flushed in a way that allows out of order execution to
|
|
|
|
work.
|
|
|
|
- Sometimes the cl compiler generates zero sized binaries and only a reboot
|
|
|
|
seems to fix it.
|
|
|
|
- Don't try to stop/cancel threads that don't exist.
|
|
|
|
- Only set option to show devices and exit if built with opencl support.
|
|
|
|
- Enable curses earlier and exit with message in main for messages to not be
|
|
|
|
lost in curses windows.
|
|
|
|
- Make it possible to enter server credentials with curses input if none are
|
|
|
|
specified on the command line.
|
|
|
|
- Abstract out a curses input function and separate input pool function to allow
|
|
|
|
for live adding of pools later.
|
|
|
|
- Remove the nil arguments check to allow starting without parameters.
|
|
|
|
- Disable/enable echo & cbreak modes.
|
|
|
|
- Add a thread that takes keyboard input and allow for quit, silent, debug,
|
|
|
|
verbose, normal, rpc protocol debugging and clear screen options.
|
|
|
|
- Add pool option to input and display current pool status, pending code to
|
|
|
|
allow live changes.
|
|
|
|
- Add a bool for explicit enabling/disabling of pools.
|
|
|
|
- Make input pool capable of bringing up pools while running.
|
|
|
|
- Do one last check of the work before submitting it.
|
|
|
|
- Implement the ability to live add, enable, disable, and switch to pools.
|
|
|
|
- Only internally test for block changes when the work matches the current pool
|
|
|
|
to prevent interleaved block change timing on multipools.
|
|
|
|
- Display current pool management strategy to enable changing it on the fly.
|
|
|
|
- The longpoll blanking of the current_block data may not be happening before
|
|
|
|
the work is converted and appears to be a detected block change. Blank the
|
|
|
|
current block be
|
|
|
|
- Make --no-longpoll work again.
|
|
|
|
- Abstract out active pools count.
|
|
|
|
- Allow the pool strategy to be modified on the fly.
|
|
|
|
- Display pool information on the fly as well.
|
|
|
|
- Add a menu and separate out display options.
|
|
|
|
- Clean up the messy way the staging thread communicates with the longpoll
|
|
|
|
thread to determine who found the block first.
|
|
|
|
- Make the input windows update immediately instead of needing a refresh.
|
|
|
|
- Allow log interval to be set in the menu.
|
|
|
|
- Allow scan settings to be modified at runtime.
|
|
|
|
- Abstract out the longpoll start and explicitly restart it on pool change.
|
|
|
|
- Make it possible to enable/disable longpoll.
|
|
|
|
- Set priority correctly on multipools. Display priority and alive/dead
|
|
|
|
information in display_pools.
|
|
|
|
- Implement pool removal.
|
|
|
|
- Limit rolltime work generation to 10 iterations only.
|
|
|
|
- Decrease testing log to info level.
|
|
|
|
- Extra refresh not required.
|
|
|
|
- With huge variation in GPU performance, allow intensity to go from -10 to +10.
|
|
|
|
- Tell getwork how much of a work item we're likely to complete for future
|
|
|
|
splitting up of work.
|
|
|
|
- Remove the mandatory work requirement at startup by testing for invalid work
|
|
|
|
being passed which allows for work to be queued immediately. This also
|
|
|
|
removes the requirem
|
|
|
|
- Make sure intensity is carried over to thread count and is at least the
|
|
|
|
minimum necessary to work.
|
|
|
|
- Unlocking error on retry. Locking unnecessary anyway so remove it.
|
|
|
|
- Clear log window from consistent place. No need for locking since logging is
|
|
|
|
disabled during input.
|
|
|
|
- Cannot print the status of threads that don't exist so just queue enough work
|
|
|
|
for the number of mining threads to prevent crash with -Q N.
|
|
|
|
- Update phatk kernel to one with new parameters for slightly less overhead
|
|
|
|
again. Make the queue kernel parameters call a function pointer to select
|
|
|
|
phatk or poclbm.
|
|
|
|
- Make it possible to select the choice of kernel on the command line.
|
|
|
|
- Simplify the output part of the kernel. There's no demonstrable advantage from
|
|
|
|
more complexity.
|
|
|
|
- Merge pull request #18 from ycros/cgminer
|
|
|
|
- No need to make leaveok changes win32 only.
|
|
|
|
- Build support in for all SSE if possible and only set the default according to
|
|
|
|
machine capabilities.
|
|
|
|
- Win32 threading and longpoll keepalive fixes.
|
|
|
|
- Win32: Fix for mangled output on the terminal on exit.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.3.1 - July 20, 2011
|
|
|
|
|
|
|
|
- Feature upgrade; Multiple strategies for failover. Choose from default which
|
|
|
|
now falls back to a priority order from 1st to last, round robin which only
|
|
|
|
changes pools when one is idle, rotate which changes pools at user-defined
|
|
|
|
intervals, and load-balance which spreads the work evenly amongst all pools.
|
|
|
|
- Implement pool rotation strategy.
|
|
|
|
- Implement load balancing algorithm by rotating requests to each pool.
|
|
|
|
- Timeout on failed discarding of staged requests.
|
|
|
|
- Implement proper flagging of idle pools, test them with the watchdog thread,
|
|
|
|
and failover correctly.
|
|
|
|
- Move pool active test to own function.
|
|
|
|
- Allow multiple strategies to be set for multipool management.
|
|
|
|
- Track pool number.
|
|
|
|
- Don't waste the work items queued on testing the pools at startup.
|
|
|
|
- Reinstate the mining thread watchdog restart.
|
|
|
|
- Add a getpoll bool into the thread information and don't restart threads stuck
|
|
|
|
waiting on work.
|
|
|
|
- Rename the idlenet bool for the pool for later use.
|
|
|
|
- Allow the user/pass userpass urls to be input in any order.
|
|
|
|
- When json rpc errors occur they occur in spits and starts, so trying to limit
|
|
|
|
them with the comms error bool doesn't stop a flood of them appearing.
|
|
|
|
- Reset the queued count to allow more work to be queued for the new pool on
|
|
|
|
pool switch.
|
|
|
|
|
|
|
|
Version 1.3.0 - July 19, 2011
|
|
|
|
|
|
|
|
- Massive infrastructure update to support pool failover.
|
|
|
|
- Accept multiple parameters for url, user and pass and set up structures of
|
|
|
|
pool data accordingly.
|
|
|
|
- Probe each pool for what it supports.
|
|
|
|
- Implement per pool feature support according to rolltime support as
|
|
|
|
advertised by server.
|
|
|
|
- Do switching automatically based on a 300 second timeout of locally generated
|
|
|
|
work or 60 seconds of no response from a server that doesn't support rolltime.
|
|
|
|
- Implement longpoll server switching.
|
|
|
|
- Keep per-pool data and display accordingly.
|
|
|
|
- Make sure cgminer knows how long the pool has actually been out for before
|
|
|
|
deeming it a prolonged outage.
|
|
|
|
- Fix bug with ever increasing staged work in 1.2.8 that eventually caused
|
|
|
|
infinite rejects.
|
|
|
|
- Make warning about empty http requests not show by default since many
|
|
|
|
servers do this regularly.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.2.8 - July 18, 2011
|
|
|
|
|
|
|
|
- More OSX build fixes.
|
|
|
|
- Add an sse4 algorithm to CPU mining.
|
|
|
|
- Fix CPU mining with other algorithms not working.
|
|
|
|
- Rename the poclbm file to ensure a new binary is built since.
|
|
|
|
- We now are guaranteed to have one fresh work item after a block change and we
|
|
|
|
should only discard staged requests.
|
|
|
|
- Don't waste the work we retrieve from a longpoll.
|
|
|
|
- Provide a control lock around global bools to avoid racing on them.
|
|
|
|
- Iterating over 1026 nonces when confirming data from the GPU is old code
|
|
|
|
and unnecessary and can lead to repeats/stales.
|
|
|
|
- The poclbm kernel needs to be updated to work with the change to 4k sized
|
|
|
|
output buffers.
|
|
|
|
- longpoll seems to work either way with post or get but some servers prefer
|
|
|
|
get so change to httpget.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.2.7 - July 16, 2011
|
|
|
|
|
|
|
|
- Show last 8 characters of share submitted in log.
|
|
|
|
- Display URL connected to and user logged in as in status.
|
|
|
|
- Display current block and when it was started in the status line.
|
|
|
|
- Only pthread_join the mining threads if they exist as determined by
|
|
|
|
pthread_cancel and don't fail on pthread_cancel.
|
|
|
|
- Create a unique work queue for all getworks instead of binding it to thread 0
|
|
|
|
to avoid any conflict over thread 0's queue.
|
|
|
|
- Clean up the code to make it clear it's watchdog thread being messaged to
|
|
|
|
restart the threads.
|
|
|
|
- Check the current block description hasn't been blanked pending the real
|
|
|
|
new current block data.
|
|
|
|
- Re-enable signal handlers once the signal has been received to make it
|
|
|
|
possible to kill cgminer if it fails to shut down.
|
|
|
|
- Disable restarting of CPU mining threads pending further investigation.
|
|
|
|
- Update longpoll messages.
|
|
|
|
- Add new block data to status line.
|
|
|
|
- Fix opencl tests for osx.
|
|
|
|
- Only do local generation of work if the work item is not stale itself.
|
|
|
|
- Check for stale work within the mining threads and grab new work if
|
|
|
|
positive.
|
|
|
|
- Test for idle network conditions and prevent threads from being restarted
|
|
|
|
by the watchdog thread under those circumstances.
|
|
|
|
- Make sure that local work generation does not continue indefinitely by
|
|
|
|
stopping it after 10 minutes.
|
|
|
|
- Tweak the kernel to have a shorter path using a 4k buffer and a mask on the
|
|
|
|
nonce value instead of a compare and loop for a shorter code path.
|
|
|
|
- Allow queue of zero and make that default again now that we can track how
|
|
|
|
work is being queued versus staged. This can decrease reject rates.
|
|
|
|
- Queue precisely the number of mining threads as longpoll_staged after a
|
|
|
|
new block to not generate local work.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.2.6 - July 15, 2011
|
|
|
|
|
|
|
|
- Put a current system status line beneath the total work status line
|
|
|
|
- Fix a counting error that would prevent cgminer from correctly detecting
|
|
|
|
situations where getwork was failing - this would cause stalls sometimes
|
|
|
|
unrecoverably.
|
|
|
|
- Limit the maximum number of requests that can be put into the queue which
|
|
|
|
otherwise could get arbitrarily long during a network outage.
|
|
|
|
- Only count getworks that are real queue requests.
|
|
|
|
|
|
|
|
|
|
|
|
Version 1.2.5 - July 15, 2011
|
|
|
|
|
|
|
|
- Conflicting -n options corrected
|
|
|
|
- Setting an intensity with -I disables dynamic intensity setting
|
|
|
|
- Removed option to manually disable dynamic intensity
|
|
|
|
- Improve display output
|
|
|
|
- Implement signal handler and attempt to clean up properly on exit
|
|
|
|
- Only restart threads that are not stuck waiting on mandatory getworks
|
|
|
|
- Compatibility changes courtesy of Ycros to build on mingw32 and osx
|
|
|
|
- Explicitly grab first work item to prevent false positive hardware errors
|
|
|
|
due to working on uninitialised work structs
|
|
|
|
- Add option for non curses --text-only output
|
|
|
|
- Ensure we connect at least once successfully before continuing to retry to
|
|
|
|
connect in case url/login parameters were wrong
|
|
|
|
- Print an executive summary when cgminer is terminated
|
|
|
|
- Make sure to refresh the status window
|
|
|
|
|
|
|
|
Versions -> 1.2.4
|
|
|
|
|
|
|
|
- Con Kolivas - July 2011. New maintainership of code under cgminer name.
|
|
|
|
- Massive rewrite to incorporate GPU mining.
|
|
|
|
- Incorporate original oclminer c code.
|
|
|
|
- Rewrite gpu mining code to efficient work loops.
|
|
|
|
- Implement per-card detection and settings.
|
|
|
|
- Implement vector code.
|
|
|
|
- Implement bfi int patching.
|
|
|
|
- Import poclbm and phatk ocl kernels and use according to hardware type.
|
|
|
|
- Implement customised optimised versions of opencl kernels.
|
|
|
|
- Implement binary kernel generation and loading.
|
|
|
|
- Implement preemptive asynchronous threaded work gathering and pushing.
|
|
|
|
- Implement variable length extra work queues.
|
|
|
|
- Optimise workloads to be efficient miners instead of getting lots of extra
|
|
|
|
work.
|
|
|
|
- Implement total hash throughput counters, per-card accepted, rejected and
|
|
|
|
hw error count.
|
|
|
|
- Staging and watchdog threads to prevent fallover.
|
|
|
|
- Stale and reject share guarding.
|
|
|
|
- Autodetection of new blocks without longpoll.
|
|
|
|
- Dynamic setting of intensity to maintain desktop interactivity.
|
|
|
|
- Curses interface with generous statistics and information.
|
|
|
|
- Local generation of work (xroll ntime) when detecting poor network
|
|
|
|
connectivity.
|
|
|
|
|
|
|
|
Version 1.0.2
|
|
|
|
|
|
|
|
- Linux x86_64 optimisations - Con Kolivas
|
|
|
|
- Optimise for x86_64 by default by using sse2_64 algo
|
|
|
|
- Detects CPUs and sets number of threads accordingly
|
|
|
|
- Uses CPU affinity for each thread where appropriate
|
|
|
|
- Sets scheduling policy to lowest possible
|
|
|
|
- Minor performance tweaks
|
|
|
|
|
|
|
|
Version 1.0.1 - May 14, 2011
|
|
|
|
|
|
|
|
- OSX support
|
|
|
|
|
|
|
|
Version 1.0 - May 9, 2011
|
|
|
|
|
|
|
|
- jansson 2.0 compatibility
|
|
|
|
- correct off-by-one in date (month) display output
|
|
|
|
- fix platform detection
|
|
|
|
- improve yasm configure bits
|
|
|
|
- support full URL, in X-Long-Polling header
|
|
|
|
|
|
|
|
Version 0.8.1 - March 22, 2011
|
|
|
|
|
|
|
|
- Make --user, --pass actually work
|
|
|
|
|
|
|
|
- Add User-Agent HTTP header to requests, so that server operators may
|
|
|
|
more easily identify the miner client.
|
|
|
|
|
|
|
|
- Fix minor bug in example JSON config file
|
|
|
|
|
|
|
|
Version 0.8 - March 21, 2011
|
|
|
|
|
|
|
|
- Support long polling: http://deepbit.net/longpolling.php
|
|
|
|
|
|
|
|
- Adjust max workload based on scantime (default 5 seconds,
|
|
|
|
or 60 seconds for longpoll)
|
|
|
|
|
|
|
|
- Standardize program output, and support syslog on Unix platforms
|
|
|
|
|
|
|
|
- Suport --user/--pass options (and "user" and "pass" in config file),
|
|
|
|
as an alternative to the current --userpass
|
|
|
|
|
|
|
|
Version 0.7.2 - March 14, 2011
|
|
|
|
|
|
|
|
- Add port of ufasoft's sse2 assembly implementation (Linux only)
|
|
|
|
This is a substantial speed improvement on Intel CPUs.
|
|
|
|
|
|
|
|
- Move all JSON-RPC I/O to separate thread. This reduces the
|
|
|
|
number of HTTP connections from one-per-thread to one, reducing resource
|
|
|
|
usage on upstream bitcoind / pool server.
|
|
|
|
|
|
|
|
Version 0.7.1 - March 2, 2011
|
|
|
|
|
|
|
|
- Add support for JSON-format configuration file. See example
|
|
|
|
file example-cfg.json. Any long argument on the command line
|
|
|
|
may be stored in the config file.
|
|
|
|
- Timestamp each solution found
|
|
|
|
- Improve sha256_4way performance. NOTE: This optimization makes
|
|
|
|
the 'hash' debug-print output for sha256_way incorrect.
|
|
|
|
- Use __builtin_expect() intrinsic as compiler micro-optimization
|
|
|
|
- Build on Intel compiler
|
|
|
|
- HTTP library now follows HTTP redirects
|
|
|
|
|
|
|
|
Version 0.7 - February 12, 2011
|
|
|
|
|
|
|
|
- Re-use CURL object, thereby reuseing DNS cache and HTTP connections
|
|
|
|
- Use bswap_32, if compiler intrinsic is not available
|
|
|
|
- Disable full target validation (as opposed to simply H==0) for now
|
|
|
|
|
|
|
|
Version 0.6.1 - February 4, 2011
|
|
|
|
|
|
|
|
- Fully validate "hash < target", rather than simply stopping our scan
|
|
|
|
if the high 32 bits are 00000000.
|
|
|
|
- Add --retry-pause, to set length of pause time between failure retries
|
|
|
|
- Display proof-of-work hash and target, if -D (debug mode) enabled
|
|
|
|
- Fix max-nonce auto-adjustment to actually work. This means if your
|
|
|
|
scan takes longer than 5 seconds (--scantime), the miner will slowly
|
|
|
|
reduce the number of hashes you work on, before fetching a new work unit.
|
|
|
|
|
|
|
|
Version 0.6 - January 29, 2011
|
|
|
|
|
|
|
|
- Fetch new work unit, if scanhash takes longer than 5 seconds (--scantime)
|
|
|
|
- BeeCee1's sha256 4way optimizations
|
|
|
|
- lfm's byte swap optimization (improves via, cryptopp)
|
|
|
|
- Fix non-working short options -q, -r
|
|
|
|
|
|
|
|
Version 0.5 - December 28, 2010
|
|
|
|
|
|
|
|
- Exit program, when all threads have exited
|
|
|
|
- Improve JSON-RPC failure diagnostics and resilience
|
|
|
|
- Add --quiet option, to disable hashmeter output.
|
|
|
|
|
|
|
|
Version 0.3.3 - December 27, 2010
|
|
|
|
|
|
|
|
- Critical fix for sha256_cryptopp 'cryptopp_asm' algo
|
|
|
|
|
|
|
|
Version 0.3.2 - December 23, 2010
|
|
|
|
|
|
|
|
- Critical fix for sha256_via
|
|
|
|
|
|
|
|
Version 0.3.1 - December 19, 2010
|
|
|
|
|
|
|
|
- Critical fix for sha256_via
|
|
|
|
- Retry JSON-RPC failures (see --retry, under "minerd --help" output)
|
|
|
|
|
|
|
|
Version 0.3 - December 18, 2010
|
|
|
|
|
|
|
|
- Add crypto++ 32bit assembly implementation
|
|
|
|
- show version upon 'minerd --help'
|
|
|
|
- work around gcc 4.5.x bug that killed 4way performance
|
|
|
|
|
|
|
|
Version 0.2.2 - December 6, 2010
|
|
|
|
|
|
|
|
- VIA padlock implementation works now
|
|
|
|
- Minor build and runtime fixes
|
|
|
|
|
|
|
|
Version 0.2.1 - November 29, 2010
|
|
|
|
|
|
|
|
- avoid buffer overflow when submitting solutions
|
|
|
|
- add Crypto++ sha256 implementation (C only, ASM elided for now)
|
|
|
|
- minor internal optimizations and cleanups
|
|
|
|
|
|
|
|
Version 0.2 - November 27, 2010
|
|
|
|
|
|
|
|
- Add script for building a Windows installer
|
|
|
|
- improve hash performance (hashmeter) statistics
|
|
|
|
- add tcatm 4way sha256 implementation
|
|
|
|
- Add experimental VIA Padlock sha256 implementation
|
|
|
|
|
|
|
|
Version 0.1.2 - November 26, 2010
|
|
|
|
|
|
|
|
- many small cleanups and micro-optimizations
|
|
|
|
- build win32 exe using mingw
|
|
|
|
- RPC URL, username/password become command line arguments
|
|
|
|
- remove unused OpenSSL dependency
|
|
|
|
|
|
|
|
Version 0.1.1 - November 24, 2010
|
|
|
|
|
|
|
|
- Do not build sha256_generic module separately from cpuminer.
|
|
|
|
|
|
|
|
Version 0.1 - November 24, 2010
|
|
|
|
|
|
|
|
- Initial release.
|
|
|
|
|