|
|
|
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.
|
|
|
|
|