{ "info": { "author": "Justin T. Arthur", "author_email": "justinarthur@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: Public Domain" ], "description": "# apoclypsebm - The ApoCLypse Bitcoin Miner\n## Background\nThis hobby project maintained by\n[Justin T. Arthur](https://github.com/JustinTArthur) undertakes the quixotic\ntask of maintaining a modern Bitcoin miner for programmable compute devices like\nGPUs. It was forked from the PyOpenCL Bitcoin Miner (poclbm), a project authored\nby [m0mchil](https://github.com/m0mchil) and contributors.\n\nIt features an OpenCL Kernel that has incorporated ideas or code from:\n* [diapolo](https://github.com/diapolo)\n* [m0mchil](https://github.com/m0mchil)\n* [neurobox](https://bitcointalk.org/index.php?action=profile;u=106397)\n* [phataeus](https://sourceforge.net/u/phateus/)\n* [rethaw](https://bitcointalk.org/index.php?action=profile;u=18618)\n\nIf your work is represented herein and I didn't give you credit, please let me\nknow. At the moment, I reserve no rights to the mining driver or the OpenCL\nkernel. They were derived from public domain works.\n\n## Economy\nAt the time of writing, on-chip implementations of the Bitcoin mining algorithm\nwill outperform this software in both time and joules expended. Under most\nconditions, mining blocks on a Bitcoin chain where on-chip implementations are\ncompeting would be at a tremendous waste of expended resources.\n\n## New in Version 1.1.3\nBug fix release. Installation from PyPI (e.g. with pip) had some\nglaring issues. Additionally, PyOpenCL removed deprecated APIs we were using.\nI've pinned us to PyOpenCL releases prior to their pybind11 integration so that\nthis project remains installable from pip (see\n[inducer/pyopencl#278](https://github.com/inducer/pyopencl/issues/278)).\n\n## New in Version 1.1.0\nThis release focused on supporting the `getblocktemplate` call proposed in\nBIP 22 and BIP 23 and implemented by Bitcoin Core and btcd. This finally allows\nmining without a pool if you supply an address to mine coins to at the command\nline.\n\nHTTP work sources now default to using `getblocktemplate` instead of `getwork`.\nThis feature is new and might have bugs that could lead to loss of potential\nmining rewards.\n\nIt looks like the work sourcing threads run into i/o issues occasionally due to\nusing the not-thread-safe Python http lib. I don't aim to address this as most\nof the threaded communication ought to be completely replaced by an event runner\nlike asyncio or trio at some point.\n\nThanks to @momchil for the original `getwork` code, @luke-jr @sipa and @vsergeev\nfor helping me understand getblocktemplate. \n\n## Installation\nIn an environment with Python 3.5+:\n\n pip3 install apoclypsebm\n\n## Usage\n apoclypse [OPTION]... SERVER[#tag]...\n\n`SERVER` is one or more [http[s]|stratum://]user:pass@host:port (required) \n[#tag] is an optional per server user-friendly name displayed in stats.\n\n### Options\n```\n --version show program's version number and exit\n -h, --help show this help message and exit\n --verbose verbose output, suitable for redirection to log file\n -q, --quiet suppress all output except hash rate display\n --proxy=PROXY specify as\n [[socks4|socks5|http://]user:pass@]host:port (default\n proto is socks5)\n --no-ocl don't use OpenCL\n --no-bfl don't use Butterfly Labs\n --stratum-proxies search for and use stratum proxies in subnet\n -d DEVICE, --device=DEVICE\n comma separated device IDs, by default will use all\n (for OpenCL - only GPU devices)\n -a ADDRESS, --address=ADDRESS\n Bitcoin address to spend the block reward to if\n allowed. Required for solo mining, ignored with\n stratum or getwork sources.\n --coinbase-msg=COINBASE_MSG\n Custom text to include in the coinbase of the\n generation tx if allowed, encoded as UTF-8.\n default=ApoCLypse\n\n\n Miner Options:\n -r RATE, --rate=RATE\n hash rate display interval in seconds, default=1 (60\n with --verbose)\n -e ESTIMATE, --estimate=ESTIMATE\n estimated rate time window in seconds, default 900 (15\n minutes)\n -t TOLERANCE, --tolerance=TOLERANCE\n use fallback pool only after N consecutive connection\n errors, default 2\n -b FAILBACK, --failback=FAILBACK\n attempt to fail back to the primary pool after N\n seconds, default 60\n --cutoff-temp=CUTOFF_TEMP\n AMD GPUs, BFL only. For GPUs requires\n github.com/mjmvisser/adl3. Comma separated\n temperatures at which to skip kernel execution, in C,\n default=95\n --cutoff-interval=CUTOFF_INTERVAL\n how long to not execute calculations if CUTOFF_TEMP is\n reached, in seconds, default=0.01\n --no-server-failbacks\n disable using failback hosts provided by server\n\n OpenCL Options:\n Every option except '-p' and '-v' can be specified as a\n comma separated list. If there aren't enough entries specified, the\n last available is used. Use --vv to specify per-device vectors usage.\n\n -p PLATFORM, --platform=PLATFORM\n use platform by id\n -w WORKSIZE, --worksize=WORKSIZE\n work group size, default is maximum returned by OpenCL\n -f FRAMES, --frames=FRAMES\n will try to bring single kernel execution to 1/frames\n seconds, default=30, increase this for less desktop\n lag\n -s FRAMESLEEP, --sleep=FRAMESLEEP\n sleep per frame in seconds, default 0\n --vv=VECTORS Specifies size of SIMD vectors per selected device.\n Only size 0 (no vectors) and 2 supported for now.\n Comma separated for each device. e.g. 0,2,2\n -v, --vectors Use 2-item vectors for all devices.\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/JustinTArthur/apoclypsebm/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "apoclypsebm", "package_url": "https://pypi.org/project/apoclypsebm/", "platform": "", "project_url": "https://pypi.org/project/apoclypsebm/", "project_urls": { "Homepage": "https://github.com/JustinTArthur/apoclypsebm/" }, "release_url": "https://pypi.org/project/apoclypsebm/1.1.3/", "requires_dist": [ "pyopencl (<=2018.1,>=2017.2)", "pyserial (>=2.6)", "PySocks (>=1.6.0)" ], "requires_python": ">=3.6", "summary": "The ApoCLypse Bitcoin Miner", "version": "1.1.3" }, "last_serial": 4882319, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "98c4ac9da04d8a55f46d90bcd1fdd737", "sha256": "487294669cf909c062c64019f354b4d0d390a6321f674975705e3e1a0ebc9d05" }, "downloads": -1, "filename": "apoclypsebm-1.1.0-py3-none-any.whl", "has_sig": true, "md5_digest": "98c4ac9da04d8a55f46d90bcd1fdd737", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 43855, "upload_time": "2019-01-10T08:10:27", "url": "https://files.pythonhosted.org/packages/1a/40/d661cd7d3b8a1e9ff19b19e20a20b85201831ec2ccfee4fee41cc840f082/apoclypsebm-1.1.0-py3-none-any.whl" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "b5f030d31d9507735ae1af3e9eb48107", "sha256": "4cad0b57f03e178618700db48647f8717338e31f56259c1f82ae01770b4d518a" }, "downloads": -1, "filename": "apoclypsebm-1.1.2-py3-none-any.whl", "has_sig": true, "md5_digest": "b5f030d31d9507735ae1af3e9eb48107", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40750, "upload_time": "2019-01-10T08:25:24", "url": "https://files.pythonhosted.org/packages/a3/d5/f1138cdae47e2bbebf9cd87b6f8d3037b64f62160c89c0a3a76920c11f23/apoclypsebm-1.1.2-py3-none-any.whl" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "8130bdec6984bed4a876e2b9596b3ead", "sha256": "1853946908128181c7012ac4c841d41e4075441ca9a196b8cedbec75a119052c" }, "downloads": -1, "filename": "apoclypsebm-1.1.3-py3-none-any.whl", "has_sig": true, "md5_digest": "8130bdec6984bed4a876e2b9596b3ead", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 40743, "upload_time": "2019-03-01T05:03:38", "url": "https://files.pythonhosted.org/packages/4a/ed/f1f85bc3c0af76f5970efc7c9cbe81c699e73f2699a5615d314a317e4835/apoclypsebm-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8735f4645660b28850b6bca5ce0ce2b2", "sha256": "b936bcc7cca52ef53f8507ae85b974fe69f578c63692a16a3a4e62dc3b054ea3" }, "downloads": -1, "filename": "apoclypsebm-1.1.3.tar.gz", "has_sig": true, "md5_digest": "8735f4645660b28850b6bca5ce0ce2b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 33265, "upload_time": "2019-03-01T05:03:42", "url": "https://files.pythonhosted.org/packages/ec/85/4c91d2bbcbdb851142e897f2c3251006c5fc3fe6d5b7ab0571aee4b9d234/apoclypsebm-1.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8130bdec6984bed4a876e2b9596b3ead", "sha256": "1853946908128181c7012ac4c841d41e4075441ca9a196b8cedbec75a119052c" }, "downloads": -1, "filename": "apoclypsebm-1.1.3-py3-none-any.whl", "has_sig": true, "md5_digest": "8130bdec6984bed4a876e2b9596b3ead", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 40743, "upload_time": "2019-03-01T05:03:38", "url": "https://files.pythonhosted.org/packages/4a/ed/f1f85bc3c0af76f5970efc7c9cbe81c699e73f2699a5615d314a317e4835/apoclypsebm-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8735f4645660b28850b6bca5ce0ce2b2", "sha256": "b936bcc7cca52ef53f8507ae85b974fe69f578c63692a16a3a4e62dc3b054ea3" }, "downloads": -1, "filename": "apoclypsebm-1.1.3.tar.gz", "has_sig": true, "md5_digest": "8735f4645660b28850b6bca5ce0ce2b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 33265, "upload_time": "2019-03-01T05:03:42", "url": "https://files.pythonhosted.org/packages/ec/85/4c91d2bbcbdb851142e897f2c3251006c5fc3fe6d5b7ab0571aee4b9d234/apoclypsebm-1.1.3.tar.gz" } ] }