Difference between revisions of "Poclbm"
m (Remove category which too specific. Remove first level heading. See Help:Style.) |
|||
Line 1: | Line 1: | ||
[[Category:Applications]] | [[Category:Applications]] | ||
− | |||
− | |||
− | |||
Poclbm (Python OpenCL Bitcoin miner) is a python program/script made by m0mchil on Github (https://github.com/m0mchil/poclbm), it mines Bitcoins using an OpenCL capable device. Here's how to install and use it as a systemd service. | Poclbm (Python OpenCL Bitcoin miner) is a python program/script made by m0mchil on Github (https://github.com/m0mchil/poclbm), it mines Bitcoins using an OpenCL capable device. Here's how to install and use it as a systemd service. | ||
Revision as of 05:11, 11 June 2013
Poclbm (Python OpenCL Bitcoin miner) is a python program/script made by m0mchil on Github (https://github.com/m0mchil/poclbm), it mines Bitcoins using an OpenCL capable device. Here's how to install and use it as a systemd service.
Contents
Introduction
Mining Bitcoins is a process that uses your computer hardware i.e. GPU/CPU to generate "blocks" which are used to verify transactions in the Bitcoin network. Currently a generated block will give you 50 BTC. However it will drop to 25 BTC by the end of November 2012.
As more blocks get generated difficulty increases, and today (as of November 2012) the estimated time to generate a block on an average gaming computer is over 2 years. Therefore it's not really worth the electricity trying to generate a block. Also note that it's random and sometimes you may get lucky and still (despite the difficulty and stuff) generate a block using your standard gaming computer. However it is very unlikely and not worth the risk of waiting months. you'll probably end up stopping it and paying your enormous electricity bill without having generated anything. But there is a solution to that which is called Pool Mining.
A pool is a network of computers mining together to generate a block, and the total reward is shared between all the people that contributed to generate the block, so when using a pool you'll get smaller but regular incomes and using the appropriate hardware (see below) it may be actually a profitable business.
When mining, the CPU isn't ideal and even a low-end graphics card will beat your high-end CPU so we're only using the GPU for mining, so with a correct configuration the machine used for mining can be used for something else, for example a web server, and if you're only mining then you may want to use a low-end single-core CPU and a low-end motherboard, and RAM isn't used either so 2GB of RAM is more than enough.
Also, there is a bug on some drivers (both ATI and NVIDIA) that makes the miner use 100% CPU on 2 cores (even if mining on the GPU), i'm not sure what causes that but it seems to also affect Windows systems so you'll have to try it yourself.
Required Packages
# An OpenGL capable device with the correct drivers installed (proprietary driver required unfortunately)
# Packages "python2", "python2-pyopencl", "python2-pyserial" and "git" available in the official repositories.
# For the "run as a service part" you'll need a full-systemd installation.
Installation
Login or switch to root:
# su root
Change directory to:
# cd /
# git clone git://github.com/m0mchil/poclbm.git
Testing and running manually
To run it manually, log in as root (or any user having the rights to read/write in /poclbm), cd in /poclbm like so :
# cd /poclbm
Execute the miner
Use the command below to start the miner on all OpenCL devices. If you receive the following error then check you configuration and ensure that all required packages and drivers are present:
# python2 poclbm.py username:password@server:port
The miner has started and will display a hash rate (x MH/s). To exit use the Template:Keypress to exit. If you just want to run the miner manually then that's all you need to do.
{{Box GREEN|Note:|When you want to mine just navigate /poclbm with the user permissions execute the miner start command above.
Running as a Service
Create the service file:
# sudo nano /usr/lib/systemd/system/poclbm.service
Add the following to the file:
[Unit] Description=Python OpenCL Bitcoin miner After=network.target [Service] ExecStart=/poclbm/start.sh Type=simple [Install] WantedBy=multi-user.target
Create the /poclbm/start.sh and adapt the python command using your login/password from your pool, the --verbose parameter is important :
#!/bin/sh cd /poclbm python2 poclbm.py user.password@server:port --verbose
Make the file executable with the commands below:
# chmod +x /poclbm/start.sh
Start the service:
# systemctl start poclbm.service
Stop the service with:
# systemctl stop poclbm.service
Check the status with the following command:
# systemctl status poclbm.service
Register the service to auto-start with the system:
# systemctl enable poclbm.service
Disable autostart with:
# systemctl disable poclbm.service