Commit graph

121 commits

Author SHA1 Message Date
ckolivas
8a832eeab5 Linux + x86_64 optimisations.
Add likely() macro.
Optimise a few obvious code paths with likely/unlikely.
Change algo to sse2_amd64 by default.
Move priority change to worker threads only.
Detect number of CPUs and set default number of threads == CPUs.
Add scheduling policy change to worker threads to SCHED_IDLE first and fallback to SCHED_BATCH on linux.
Don't error when failing to set priority.
Add CPU affinity and bind worker threads to CPUs when number of threads is a multiple of number of CPUs.
Update NEWS with changes.
2011-06-09 11:45:06 +10:00
Jeff Garzik
69529c3859 Support full URL, in X-Long-Polling header 2011-03-24 14:09:49 -04:00
Jeff Garzik
46819af36f --user/--pass fixes
Also, some newline fixes (applog callers do not need newlines in strings)
2011-03-21 20:50:59 -04:00
Jeff Garzik
81352ca48f Support --user and --pass, as alternative to --userpass 2011-03-21 04:27:02 -04:00
Jeff Garzik
2fd9d54443 Convert remaining [f]print to applog().
Also, remove a few superfluous printouts.
2011-03-21 04:02:13 -04:00
Jeff Garzik
144cf62d7c Avoid potential for div-by-zero, when calculating max-nonce 2011-03-21 03:45:26 -04:00
Jeff Garzik
d49d639269 cpu-miner.c: Remove newline from applog() call 2011-03-21 03:42:57 -04:00
Jeff Garzik
24afd61775 Introduce more standardized logging (incl. optional syslog).
Also, improve portability of alloca.
2011-03-18 17:24:16 -04:00
Jeff Garzik
7a87bee999 Add long polling support 2011-03-18 02:53:13 -04:00
Jeff Garzik
6818c6928a Improve max nonce auto-adjustment with some basic algebra. 2011-03-17 23:22:10 -04:00
Jeff Garzik
2d49a9a5d7 Introduce ability to interrupt hash scanners in the middle of scanning. 2011-03-17 22:02:28 -04:00
Jeff Garzik
0258fae450 Fix Windows build, that broke with yasm integration 2011-03-14 23:36:28 -04:00
Jeff Garzik
4f7a51e9ed Move all RPC I/O to separate thread. 2011-03-14 23:17:34 -04:00
Mark Crichton
96d2287c72 X86_64 SSE2 support for Linux 2011-03-06 23:49:00 -05:00
Jeff Garzik
4a7f3f70b5 Show date/time when proof-of-work is found. 2011-02-17 01:58:53 -05:00
Jeff Garzik
fa7e80b8e5 Extract get-work logic into separate function. 2011-02-17 01:21:16 -05:00
Jeff Garzik
6d2882937f Add support for JSON-format configuration file 2011-02-13 03:04:02 -05:00
Jeff Garzik
c0935a9489 Re-use CURL object, thereby caching DNS and HTTP connections where possible. 2011-02-10 00:41:44 -05:00
Jeff Garzik
e47076caac Fix max-nonce auto-adjustment logic to actually work 2011-02-04 11:54:31 -05:00
Jeff Garzik
e8ee4cb002 Add --retry-pause, to set length of pause time between failure retries 2011-02-03 00:54:03 -05:00
Jeff Garzik
714c0fd7c9 Continue scanhash, even if high 32 bits are zero.
Previously, we would stop the scan if the high 32 bits of the hash were zero,
as a quick shortcut for testing the full hash.  If this quick test succeeded,
we would pass the work to the server for full validation.

Change this logic to perform full validation inside minerd, so that work may
be resumed more quickly if hash > target.
2011-02-03 00:46:55 -05:00
Jeff Garzik
453101d9e9 Remove "PROOF OF WORK FOUND?" debug output; redundant. 2011-01-29 23:55:11 -05:00
Jeff Garzik
f889476bbd Dynamically adjust time spent hashing current work unit, to meet target 2011-01-29 01:14:12 -05:00
Jeff Garzik
0b67740707 Pass max-nonce as arg to each sha256 algo.
Should be an equivalent transformation, with no behavior changes.
2011-01-29 00:56:24 -05:00
Jeff Garzik
f570ffcf75 Code movement: move second hash time sampling to main miner loop 2011-01-29 00:47:48 -05:00
Jeff Garzik
e41171424a Fix non-working short options -q and -r N, by listing them in optstring. 2011-01-29 00:28:19 -05:00
Jeff Garzik
fc4ed179e8 Release version 0.5. 2010-12-28 22:38:57 -05:00
Jeff Garzik
16006f9037 Rather than sleep-loop, main thread waits for all threads to exit. 2010-12-28 21:10:41 -05:00
Jeff Garzik
872211caad Add --quiet option, to disable hashmeter output. 2010-12-27 02:13:15 -05:00
Jeff Garzik
d88648dd39 sha256_via: ensure that found nonce is copied back into output data buffer
Also, some minor cleanups, removing unused args.
2010-12-23 20:21:00 -05:00
Jeff Garzik
d363a1d68d sha256_via: ensure proper data area is fully checksummed 2010-12-19 21:37:30 -05:00
Jeff Garzik
ee592d0a60 Handle temporary JSON failures (due to server reboot, etc.) 2010-12-18 22:22:06 -05:00
Jeff Garzik
857ba8f6cc Release version 0.3. 2010-12-18 16:31:28 -05:00
Jeff Garzik
ce1c9a8aca Display version on minerd --help usage output. 2010-12-06 20:21:22 -05:00
Jeff Garzik
f1fcd76ba7 sha256_cryptopp: Add crypto++ 32-bit assembly implementation 2010-12-06 20:14:58 -05:00
Jeff Garzik
1a1a018627 Release version 0.2.2.
Remove 'experimental' marker from VIA padlock implementation.
2010-12-06 02:30:57 -05:00
Jeff Garzik
276dcdbcec Avoid null deref in command line arg processing.
Reported by lfm.
2010-12-05 23:18:18 -05:00
Jeff Garzik
145e5fe141 submit_work: increase string buffer, to avoid overflow 2010-11-29 12:21:03 -05:00
Jeff Garzik
74bb196296 Add Crypto++ sha256 implementation (C only, ASM elided for now) 2010-11-28 20:16:22 -05:00
Jeff Garzik
339ddf4d75 Move sha256_generic into its own .o build output. Const-ify midstate param. 2010-11-27 04:31:32 -05:00
Jeff Garzik
4c47553c85 Clean up multi-algorithm selection and display 2010-11-27 03:50:52 -05:00
Jeff Garzik
e2eeaaf75b Add experimental (read: probably broken) VIA padlock support. 2010-11-27 01:29:56 -05:00
Jeff Garzik
86eb37d631 Improve and modularize compile-time CPU detection.
Ideally, we should move this to autoconf.
2010-11-27 00:46:59 -05:00
Jeff Garzik
500759cea1 s/__SSE__/__SSE2__/ 2010-11-27 00:12:28 -05:00
Jeff Garzik
2f2bf745c4 Note that 4way is experimental 2010-11-26 23:16:38 -05:00
Jeff Garzik
35ea649d97 Improve hash performance statistics. 2010-11-26 23:12:24 -05:00
Jeff Garzik
a50201eb21 Improve --help output. Mention --help in README. 2010-11-26 20:15:07 -05:00
Jeff Garzik
1f5074381f Correct -a command line help. 2010-11-26 19:12:22 -05:00
Jeff Garzik
c639149977 Add tcatm's 4way SSE2 sha256 implementation. 2010-11-26 19:04:48 -05:00
Jeff Garzik
0a333110f7 Build on Windows using mingw32. 2010-11-26 16:28:12 -05:00
Jeff Garzik
352bab2109 Introduce compat.h, for Win32 builds 2010-11-26 15:50:36 -05:00
Jeff Garzik
b7cc9b68ad Replace argp with getopt_long 2010-11-26 15:46:11 -05:00
Jeff Garzik
59f1fb2ec8 Link with pthreads lib, if present. Remove GNU-specific asprintf usage. 2010-11-26 15:20:54 -05:00
Jeff Garzik
5d1a45294b code movement: move submit_work() above hot path 2010-11-25 04:04:30 -05:00
Jeff Garzik
945be82ea1 Move utility routines to util.c. 2010-11-25 04:03:59 -05:00
Jeff Garzik
e4c4b3fe5f scanhash micro-optimizations
* don't bother returning nonce, we only need success/fail boolean
* don't needlessly read nonce pointer data, for each loop
2010-11-25 01:27:19 -05:00
Jeff Garzik
1032fec15b Allocate work struct once, on stack, rather than alloc+free for each getwork. 2010-11-25 01:16:34 -05:00
Jeff Garzik
a614823fa7 Remove unused OpenSSL dependency.
Also, turn a few strings into #define'd constants.
2010-11-25 01:02:53 -05:00
Jeff Garzik
23cd22a5a5 RPC URL, username and password become arguments,
rather than compile-time constants.
2010-11-25 00:49:39 -05:00
Jeff Garzik
67d3c91317 Small cleanups and comment additions. Don't sleep after proof of work found. 2010-11-25 00:36:40 -05:00
Jeff Garzik
ea6c1126ec Add GPLv2 header. 2010-11-24 19:50:46 -05:00
Jeff Garzik
702e2ac811 Convert over to autotools. Release version 0.1. 2010-11-24 19:31:12 -05:00
Jeff Garzik
19b51e3600 Clean up protocol debugging output, and other cleanups. 2010-11-24 18:25:06 -05:00
Jeff Garzik
5b0ab3cf79 Remove byte reversing in submit_work() 2010-11-24 15:39:37 -05:00
Jeff Garzik
89a05600ba Code movement. Update stats counter more frequently. 2010-11-24 05:55:56 -05:00
Jeff Garzik
5b6e9a92f1 Add command line parsing, and multiple threads. 2010-11-24 03:36:53 -05:00
Jeff Garzik
45a29ac997 Add timing info. Remove BIGNUM PoW checks. 2010-11-24 02:11:59 -05:00
Jeff Garzik
666af32046 Clean up proof-of-work checking,
attempting to address find-solution-too-fast problem.
2010-11-24 01:19:47 -05:00
Jeff Garzik
16b535e2dd Add some code comments. 2010-11-23 23:54:37 -05:00
Jeff Garzik
9bc3649e91 Add README and license info. 2010-11-23 23:43:45 -05:00
Jeff Garzik
9599867d8b Initial revision of CPU miner.
NOTE: non-functional (incorrectly thinks it finds solution, too quickly)
2010-11-23 23:33:20 -05:00