Massively updated git tree (new minor version coming soon):
Display what support is built in.
BitForce FPGA support
cgminer will scan for and mine BitForce FPGAs on USB ports by providing the
new --scan-serial <device> option, or autodetect them by searching
/dev/serial/by-id for *BitFORCE_SHA256*
Update copyright dates.
Update README.
Configure out building and support of all CPU mining code unless --enable-cpumining is enabled.
Add configuration option for CPU mining which will default to off.
Update example conf with 1% donation.
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.
- Before, some returned bool, and others returned int (which was then turned
into a bool with a comparison); now, everything returns a bool
- Before, some set hashes_done to nonce - 1 when a share was found and others
set it to nonce + 1 or 2. This caused some algorithms to scan/submit shares
twice with the new cpu_scanhash function. Now, it has all been replaced with
last_nonce, which is set to the final nonce checked by the scanhash_* func.
- VIA needs the full data, and cannot use midstate. All the others were
expecting midstate and data+64 for their parameters. Now, we pass midstate
and the full data pointer, and let the scanhash_* function choose which to
use.
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 until the abstime timeout really expires.
Remove TCP_NODELAY from curl options as many small packets may be contributing to network overload.
Refactor miner_thread to be common code for any kind of device
This expands on the device API, by taking the actual main thread out of the
device's code, and calling the API only for specific tasks. This brings
various changes that were made to the GPU thread code into the CPU miner.
It also fixes a bug where shares found on old GPU work were discarded when
it switched to a new work.
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 Typo in readme.
Refactor to abstract device-specific code