NEWS 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. Version 1.4.1 - July 24, 2011
  2. - Do away with GET for dealing with longpoll forever. POST is the one that works
  3. everywhere, not the other way around.
  4. - Detect when the primary pool is lagging and start queueing requests on backup
  5. pools if possible before needing to roll work.
  6. - Load balancing puts more into the current pool if there are disabled pools.
  7. Fix.
  8. - Disable a GPU device should the thread fail to init.
  9. - Out of order command queue may fail on osx. Try without if it fails.
  10. - Fix possible dereference on blank inputs during input_pool.
  11. - Defines missing would segfault on --help when no sse mining is built in.
  12. - Revert "Free up resources/stale compilers." - didn't help.
  13. - Only try to print the status of active devices or it would crash.
  14. - Some hardware might benefit from the less OPS so there's no harm in leaving
  15. kernel changes that do that apart from readability of the code.
  16. Version 1.4.0 - July 23, 2011
  17. - Feature upgrade: Add keyboard input during runtime to allow modification of
  18. and viewing of numerous settings such as adding/removing pools, changing
  19. multipool management strategy, switching pools, changing intensiy, verbosity,
  20. etc. with a simple keypress menu system.
  21. - Free up resources/stale compilers.
  22. - Kernels are safely flushed in a way that allows out of order execution to
  23. work.
  24. - Sometimes the cl compiler generates zero sized binaries and only a reboot
  25. seems to fix it.
  26. - Don't try to stop/cancel threads that don't exist.
  27. - Only set option to show devices and exit if built with opencl support.
  28. - Enable curses earlier and exit with message in main for messages to not be
  29. lost in curses windows.
  30. - Make it possible to enter server credentials with curses input if none are
  31. specified on the command line.
  32. - Abstract out a curses input function and separate input pool function to allow
  33. for live adding of pools later.
  34. - Remove the nil arguments check to allow starting without parameters.
  35. - Disable/enable echo & cbreak modes.
  36. - Add a thread that takes keyboard input and allow for quit, silent, debug,
  37. verbose, normal, rpc protocol debugging and clear screen options.
  38. - Add pool option to input and display current pool status, pending code to
  39. allow live changes.
  40. - Add a bool for explicit enabling/disabling of pools.
  41. - Make input pool capable of bringing up pools while running.
  42. - Do one last check of the work before submitting it.
  43. - Implement the ability to live add, enable, disable, and switch to pools.
  44. - Only internally test for block changes when the work matches the current pool
  45. to prevent interleaved block change timing on multipools.
  46. - Display current pool management strategy to enable changing it on the fly.
  47. - The longpoll blanking of the current_block data may not be happening before
  48. the work is converted and appears to be a detected block change. Blank the
  49. current block be
  50. - Make --no-longpoll work again.
  51. - Abstract out active pools count.
  52. - Allow the pool strategy to be modified on the fly.
  53. - Display pool information on the fly as well.
  54. - Add a menu and separate out display options.
  55. - Clean up the messy way the staging thread communicates with the longpoll
  56. thread to determine who found the block first.
  57. - Make the input windows update immediately instead of needing a refresh.
  58. - Allow log interval to be set in the menu.
  59. - Allow scan settings to be modified at runtime.
  60. - Abstract out the longpoll start and explicitly restart it on pool change.
  61. - Make it possible to enable/disable longpoll.
  62. - Set priority correctly on multipools. Display priority and alive/dead
  63. information in display_pools.
  64. - Implement pool removal.
  65. - Limit rolltime work generation to 10 iterations only.
  66. - Decrease testing log to info level.
  67. - Extra refresh not required.
  68. - With huge variation in GPU performance, allow intensity to go from -10 to +10.
  69. - Tell getwork how much of a work item we're likely to complete for future
  70. splitting up of work.
  71. - Remove the mandatory work requirement at startup by testing for invalid work
  72. being passed which allows for work to be queued immediately. This also
  73. removes the requirem
  74. - Make sure intensity is carried over to thread count and is at least the
  75. minimum necessary to work.
  76. - Unlocking error on retry. Locking unnecessary anyway so remove it.
  77. - Clear log window from consistent place. No need for locking since logging is
  78. disabled during input.
  79. - Cannot print the status of threads that don't exist so just queue enough work
  80. for the number of mining threads to prevent crash with -Q N.
  81. - Update phatk kernel to one with new parameters for slightly less overhead
  82. again. Make the queue kernel parameters call a function pointer to select
  83. phatk or poclbm.
  84. - Make it possible to select the choice of kernel on the command line.
  85. - Simplify the output part of the kernel. There's no demonstrable advantage from
  86. more complexity.
  87. - Merge pull request #18 from ycros/cgminer
  88. - No need to make leaveok changes win32 only.
  89. - Build support in for all SSE if possible and only set the default according to
  90. machine capabilities.
  91. - Win32 threading and longpoll keepalive fixes.
  92. - Win32: Fix for mangled output on the terminal on exit.
  93. Version 1.3.1 - July 20, 2011
  94. - Feature upgrade; Multiple strategies for failover. Choose from default which
  95. now falls back to a priority order from 1st to last, round robin which only
  96. changes pools when one is idle, rotate which changes pools at user-defined
  97. intervals, and load-balance which spreads the work evenly amongst all pools.
  98. - Implement pool rotation strategy.
  99. - Implement load balancing algorithm by rotating requests to each pool.
  100. - Timeout on failed discarding of staged requests.
  101. - Implement proper flagging of idle pools, test them with the watchdog thread,
  102. and failover correctly.
  103. - Move pool active test to own function.
  104. - Allow multiple strategies to be set for multipool management.
  105. - Track pool number.
  106. - Don't waste the work items queued on testing the pools at startup.
  107. - Reinstate the mining thread watchdog restart.
  108. - Add a getpoll bool into the thread information and don't restart threads stuck
  109. waiting on work.
  110. - Rename the idlenet bool for the pool for later use.
  111. - Allow the user/pass userpass urls to be input in any order.
  112. - When json rpc errors occur they occur in spits and starts, so trying to limit
  113. them with the comms error bool doesn't stop a flood of them appearing.
  114. - Reset the queued count to allow more work to be queued for the new pool on
  115. pool switch.
  116. Version 1.3.0 - July 19, 2011
  117. - Massive infrastructure update to support pool failover.
  118. - Accept multiple parameters for url, user and pass and set up structures of
  119. pool data accordingly.
  120. - Probe each pool for what it supports.
  121. - Implement per pool feature support according to rolltime support as
  122. advertised by server.
  123. - Do switching automatically based on a 300 second timeout of locally generated
  124. work or 60 seconds of no response from a server that doesn't support rolltime.
  125. - Implement longpoll server switching.
  126. - Keep per-pool data and display accordingly.
  127. - Make sure cgminer knows how long the pool has actually been out for before
  128. deeming it a prolonged outage.
  129. - Fix bug with ever increasing staged work in 1.2.8 that eventually caused
  130. infinite rejects.
  131. - Make warning about empty http requests not show by default since many
  132. servers do this regularly.
  133. Version 1.2.8 - July 18, 2011
  134. - More OSX build fixes.
  135. - Add an sse4 algorithm to CPU mining.
  136. - Fix CPU mining with other algorithms not working.
  137. - Rename the poclbm file to ensure a new binary is built since.
  138. - We now are guaranteed to have one fresh work item after a block change and we
  139. should only discard staged requests.
  140. - Don't waste the work we retrieve from a longpoll.
  141. - Provide a control lock around global bools to avoid racing on them.
  142. - Iterating over 1026 nonces when confirming data from the GPU is old code
  143. and unnecessary and can lead to repeats/stales.
  144. - The poclbm kernel needs to be updated to work with the change to 4k sized
  145. output buffers.
  146. - longpoll seems to work either way with post or get but some servers prefer
  147. get so change to httpget.
  148. Version 1.2.7 - July 16, 2011
  149. - Show last 8 characters of share submitted in log.
  150. - Display URL connected to and user logged in as in status.
  151. - Display current block and when it was started in the status line.
  152. - Only pthread_join the mining threads if they exist as determined by
  153. pthread_cancel and don't fail on pthread_cancel.
  154. - Create a unique work queue for all getworks instead of binding it to thread 0
  155. to avoid any conflict over thread 0's queue.
  156. - Clean up the code to make it clear it's watchdog thread being messaged to
  157. restart the threads.
  158. - Check the current block description hasn't been blanked pending the real
  159. new current block data.
  160. - Re-enable signal handlers once the signal has been received to make it
  161. possible to kill cgminer if it fails to shut down.
  162. - Disable restarting of CPU mining threads pending further investigation.
  163. - Update longpoll messages.
  164. - Add new block data to status line.
  165. - Fix opencl tests for osx.
  166. - Only do local generation of work if the work item is not stale itself.
  167. - Check for stale work within the mining threads and grab new work if
  168. positive.
  169. - Test for idle network conditions and prevent threads from being restarted
  170. by the watchdog thread under those circumstances.
  171. - Make sure that local work generation does not continue indefinitely by
  172. stopping it after 10 minutes.
  173. - Tweak the kernel to have a shorter path using a 4k buffer and a mask on the
  174. nonce value instead of a compare and loop for a shorter code path.
  175. - Allow queue of zero and make that default again now that we can track how
  176. work is being queued versus staged. This can decrease reject rates.
  177. - Queue precisely the number of mining threads as longpoll_staged after a
  178. new block to not generate local work.
  179. Version 1.2.6 - July 15, 2011
  180. - Put a current system status line beneath the total work status line
  181. - Fix a counting error that would prevent cgminer from correctly detecting
  182. situations where getwork was failing - this would cause stalls sometimes
  183. unrecoverably.
  184. - Limit the maximum number of requests that can be put into the queue which
  185. otherwise could get arbitrarily long during a network outage.
  186. - Only count getworks that are real queue requests.
  187. Version 1.2.5 - July 15, 2011
  188. - Conflicting -n options corrected
  189. - Setting an intensity with -I disables dynamic intensity setting
  190. - Removed option to manually disable dynamic intensity
  191. - Improve display output
  192. - Implement signal handler and attempt to clean up properly on exit
  193. - Only restart threads that are not stuck waiting on mandatory getworks
  194. - Compatibility changes courtesy of Ycros to build on mingw32 and osx
  195. - Explicitly grab first work item to prevent false positive hardware errors
  196. due to working on uninitialised work structs
  197. - Add option for non curses --text-only output
  198. - Ensure we connect at least once successfully before continuing to retry to
  199. connect in case url/login parameters were wrong
  200. - Print an executive summary when cgminer is terminated
  201. - Make sure to refresh the status window
  202. Versions -> 1.2.4
  203. - Con Kolivas - July 2011. New maintainership of code under cgminer name.
  204. - Massive rewrite to incorporate GPU mining.
  205. - Incorporate original oclminer c code.
  206. - Rewrite gpu mining code to efficient work loops.
  207. - Implement per-card detection and settings.
  208. - Implement vector code.
  209. - Implement bfi int patching.
  210. - Import poclbm and phatk ocl kernels and use according to hardware type.
  211. - Implement customised optimised versions of opencl kernels.
  212. - Implement binary kernel generation and loading.
  213. - Implement preemptive asynchronous threaded work gathering and pushing.
  214. - Implement variable length extra work queues.
  215. - Optimise workloads to be efficient miners instead of getting lots of extra
  216. work.
  217. - Implement total hash throughput counters, per-card accepted, rejected and
  218. hw error count.
  219. - Staging and watchdog threads to prevent fallover.
  220. - Stale and reject share guarding.
  221. - Autodetection of new blocks without longpoll.
  222. - Dynamic setting of intensity to maintain desktop interactivity.
  223. - Curses interface with generous statistics and information.
  224. - Local generation of work (xroll ntime) when detecting poor network
  225. connectivity.
  226. Version 1.0.2
  227. - Linux x86_64 optimisations - Con Kolivas
  228. - Optimise for x86_64 by default by using sse2_64 algo
  229. - Detects CPUs and sets number of threads accordingly
  230. - Uses CPU affinity for each thread where appropriate
  231. - Sets scheduling policy to lowest possible
  232. - Minor performance tweaks
  233. Version 1.0.1 - May 14, 2011
  234. - OSX support
  235. Version 1.0 - May 9, 2011
  236. - jansson 2.0 compatibility
  237. - correct off-by-one in date (month) display output
  238. - fix platform detection
  239. - improve yasm configure bits
  240. - support full URL, in X-Long-Polling header
  241. Version 0.8.1 - March 22, 2011
  242. - Make --user, --pass actually work
  243. - Add User-Agent HTTP header to requests, so that server operators may
  244. more easily identify the miner client.
  245. - Fix minor bug in example JSON config file
  246. Version 0.8 - March 21, 2011
  247. - Support long polling: http://deepbit.net/longpolling.php
  248. - Adjust max workload based on scantime (default 5 seconds,
  249. or 60 seconds for longpoll)
  250. - Standardize program output, and support syslog on Unix platforms
  251. - Suport --user/--pass options (and "user" and "pass" in config file),
  252. as an alternative to the current --userpass
  253. Version 0.7.2 - March 14, 2011
  254. - Add port of ufasoft's sse2 assembly implementation (Linux only)
  255. This is a substantial speed improvement on Intel CPUs.
  256. - Move all JSON-RPC I/O to separate thread. This reduces the
  257. number of HTTP connections from one-per-thread to one, reducing resource
  258. usage on upstream bitcoind / pool server.
  259. Version 0.7.1 - March 2, 2011
  260. - Add support for JSON-format configuration file. See example
  261. file example-cfg.json. Any long argument on the command line
  262. may be stored in the config file.
  263. - Timestamp each solution found
  264. - Improve sha256_4way performance. NOTE: This optimization makes
  265. the 'hash' debug-print output for sha256_way incorrect.
  266. - Use __builtin_expect() intrinsic as compiler micro-optimization
  267. - Build on Intel compiler
  268. - HTTP library now follows HTTP redirects
  269. Version 0.7 - February 12, 2011
  270. - Re-use CURL object, thereby reuseing DNS cache and HTTP connections
  271. - Use bswap_32, if compiler intrinsic is not available
  272. - Disable full target validation (as opposed to simply H==0) for now
  273. Version 0.6.1 - February 4, 2011
  274. - Fully validate "hash < target", rather than simply stopping our scan
  275. if the high 32 bits are 00000000.
  276. - Add --retry-pause, to set length of pause time between failure retries
  277. - Display proof-of-work hash and target, if -D (debug mode) enabled
  278. - Fix max-nonce auto-adjustment to actually work. This means if your
  279. scan takes longer than 5 seconds (--scantime), the miner will slowly
  280. reduce the number of hashes you work on, before fetching a new work unit.
  281. Version 0.6 - January 29, 2011
  282. - Fetch new work unit, if scanhash takes longer than 5 seconds (--scantime)
  283. - BeeCee1's sha256 4way optimizations
  284. - lfm's byte swap optimization (improves via, cryptopp)
  285. - Fix non-working short options -q, -r
  286. Version 0.5 - December 28, 2010
  287. - Exit program, when all threads have exited
  288. - Improve JSON-RPC failure diagnostics and resilience
  289. - Add --quiet option, to disable hashmeter output.
  290. Version 0.3.3 - December 27, 2010
  291. - Critical fix for sha256_cryptopp 'cryptopp_asm' algo
  292. Version 0.3.2 - December 23, 2010
  293. - Critical fix for sha256_via
  294. Version 0.3.1 - December 19, 2010
  295. - Critical fix for sha256_via
  296. - Retry JSON-RPC failures (see --retry, under "minerd --help" output)
  297. Version 0.3 - December 18, 2010
  298. - Add crypto++ 32bit assembly implementation
  299. - show version upon 'minerd --help'
  300. - work around gcc 4.5.x bug that killed 4way performance
  301. Version 0.2.2 - December 6, 2010
  302. - VIA padlock implementation works now
  303. - Minor build and runtime fixes
  304. Version 0.2.1 - November 29, 2010
  305. - avoid buffer overflow when submitting solutions
  306. - add Crypto++ sha256 implementation (C only, ASM elided for now)
  307. - minor internal optimizations and cleanups
  308. Version 0.2 - November 27, 2010
  309. - Add script for building a Windows installer
  310. - improve hash performance (hashmeter) statistics
  311. - add tcatm 4way sha256 implementation
  312. - Add experimental VIA Padlock sha256 implementation
  313. Version 0.1.2 - November 26, 2010
  314. - many small cleanups and micro-optimizations
  315. - build win32 exe using mingw
  316. - RPC URL, username/password become command line arguments
  317. - remove unused OpenSSL dependency
  318. Version 0.1.1 - November 24, 2010
  319. - Do not build sha256_generic module separately from cpuminer.
  320. Version 0.1 - November 24, 2010
  321. - Initial release.