Releases: JustinTArthur/apoclypsebm
Version 1.1.4: OpenCL Refresh
- Added
-k
/--kernel
option for specifying which of available kernels to
use. Onlyapoclypse-0
andapoclypse-loopy
are available at the moment. - New "apoclypse-loopy" kernel is an alternative implementation of the
poclbm/phoenix/phatk kernel that uses for-loops. On some older platforms, this
provides better performance. On modern AMD and nVidia software+hardware
stacks, the basic apoclypse-0 kernel is fine. - The
-w
/--worksize
option now uses kernel code to configure the work
group size when the OpenCL stack tries to enforce a smaller maximum size. This
allows for up to 1024-sized work groups on recent AMD and nVidia
drivers+devices. - Fix for discrete cards doing wasted work because output buffer wasn't being
copied back to host correctly. - Fix for when stratum servers supply a floating point difficulty number
(#7). In this case, we floor the result of any
arithmetic performed against it. - Use monotonic timers for rate calculations so that system time changes
don't impact them. - Upgrade to latest PyOpenCL now that pybind11 is fixing the header
situation.
Version 1.1.0: getblocktemplate Support
This release focused on supporting the getblocktemplate
call proposed in
BIP 22 and BIP 23 and implemented by Bitcoin Core and btcd. This finally allows
mining without a pool if you supply an address to mine coins to at the command
line.
HTTP work sources now default to using getblocktemplate
instead of getwork
.
This feature is new and might have bugs that could lead to loss of potential
mining rewards.
It looks like the work sourcing threads run into i/o issues occasionally due to
using the not-thread-safe Python http lib. I don't aim to address this as most
of the threaded communication ought to be completely replaced by an event runner
like asyncio or trio at some point.
Thanks to @momchil for the original getwork
code, @luke-jr @sipa and @vsergeev
for helping me understand getblocktemplate.
Version 1.0.0 - First release as ApoCLypseBM
- First release following the fork from m0mchil/poclbm.
- Migrated code to Python 3. Requires Python 3.5+
- Fix kernel compilation error in clang-based OpenCL compilers like macOS OpenCL and AMD ROCm.
- Fix for not submitting shares to stratum servers reporting pdifficulty when server-side pdifficulty is below. By @luke-jr.
- Minor performance improvements