When mining any cryptocurrency, 2 mining modes are available: solo and pool.
When mining solo, the mining program directly interacts with the node, asking it for tasks for mining (more precisely, block templates), and — in case of a successful solution of the crypto puzzle — giving back the finished block to the node. In the templates returned by the node the crypto puzzle complexity threshold is set to the value dictated by the network, so that immediately after finding the block can be built into the DAG and reported to all other nodes of the Kaspa network.
When mining on a pool, the pool server interacts with the node, and the miners connect to this server. The server requests block templates from the node, and distributes these templates to miners, but replacing the difficulty threshold in them with a lower one: so that it is easier for miners to find solutions. The solutions found by the miners are taken back by the pool. In accordance with the theory of probability, sometimes the result of the next solution found by one of the miners exceeds his personal difficulty threshold so much that at the same time it exceeds the difficulty threshold set by the node. Such a block is published to the node on behalf of the server, and the reward for it is divided among all the miners who were looking for solutions at that time, in accordance with the rules of the server (PPS, PPLNS etc.).
In general, it is always more profitable to mine solo, since pools at least take a certain percentage of the block reward for their services (and sometimes some of them deceive people). However, finding solutions to the crypto puzzle is a random process, so when mining solo on equipment that is weak in the sense of the network total hashrate share it provides, there is a chance to mine for a very long time without finding a single block if your luck fails. In this case, it is more rational to mine on the pool, receiving a slightly smaller reward, but stable.
You can estimate the number of coins that you will receive per day when mining solo and the average time between discovered block with this calculator. Please note that this is merely the average time that will be obtained over a large observation period (when the result will be evaluated upon finding several dozen of blocks). The time of finding each next block can be both much less and much more than that average.
Please note that the "native" protocol for communicating with the Kaspa node differs from the widespread Stratum one, and only two mining programs out of all those on the market are able to work with the node using its native protocol: the Community miner and the BzMiner. In order to provide solo mining ability for other mining software, special Kaspa-Stratum adapters have been written, and you need to additionally run them. For more on this topic, see Node: Make Your Node Stratum Compatible.
Note also some pools provide solo mining on them as well. Yet this solo differs from a true solo mining: you're still the only one looking for blocks and getting rewards for it at a full difficulty, but the pool publishes these blocks on your behalf, takes the reward and accounts you with almost all of that reward except the pool fee.
There are 6 GPU miners in use:
Here are some of the available pools:
No | Pools | Payout System | Payout Threshold | Mining Guide |
---|---|---|---|---|
1 | Kaspa-pool.org | PPLNS + SOLO | 50 KAS | Read here |
2 | Acc-Pool | PPLNS + SOLO | 100 KAS | Read here |
3 | ViaBTC | PPLNS + SOLO | 50 KAS | Read here |
4 | WoolyPooly | PPLNS | 100 KAS | Read here |
5 | Hashpool.com | PPLNS | 100 KAS | Read here |
6 | Humpool.com | PPLNS | 100 KAS | Read here |
7 | K1POOL | PPLNS + SOLO | 100 KAS | Read here |
8 | 2Miners | PPLNS | 100 KAS | Read here |
9 | Kryptex | PPS+ | 10 KAS | Read here |
10 | F2Pool | PPLNS | 100 KAS | Read here |
11 | Poolin | PPLNS | 100 KAS | Read here |
12 | herominers.com | PROP + SOLO | 10 KAS | Read here |
13 | Antpool.com | PPLNS | 100 KAS | Read here |
14 | Hiveon | PPS+ | 50 KAS | Read here |
A full list of working mining pools is available here.
The GPU miner contains precompiled PTX files for different architectures under a different CUDA Toolkits. As a result, devices will need different minimum driver, depending on the PTX they use. The following table lists the minimum requirement for each device in the official releases. If you need to use older drivers with newer GPU, consider compiling the miner along with the PTX.
Compute Version | Compiled With | Driver Linux | Driver Windows | Devices (Examples) |
---|---|---|---|---|
8.6 | CUDA 11.5 | >=495.29.05 | >=496.13 | 30xx, V100 |
7.5 | CUDA 11.5 | >=495.29.05 | >=496.13 | 16xx, 20xx |
6.1 | CUDA 11.2 | >=460.32.03 | >=461.33 | 10xx |
3.0 | CUDA 9.2 | >=396.37 | >=398.26 | |
2.0 | CUDA 8.0 | >=375.26 | >=376.51 |
To update drivers for Windows/MacOS you should act as usual: go to NVidia's site, find a driver there, download it and install. For a HiveOS updating process see the appropriate article.
The following is the easiest possible way to test Kaspa GPU-mining.
There are currently two (known) GPU miner implementations - the open-source community miner and BzMiner.
According to some the community miner is faster on AMD GPUs and BzMiner on nVidia - so be sure to try out both.
It is recommended to tune core and mem clock (high core, low mem) for better hashrate and lower power use.
- As well as making sure the miner is restarted when freezing or crashing (at minimum a "while true" in the .bat-file).
See here for clock settings.
https://wallet.kaspanet.io/ (write down the recovery phrase and keep it in a safe location).
Download and unpack Kaspa Miner for Windows (https://github.com/tmrlvi/kaspa-miner/releases)
Right-click and edit mine.bat, add your wallet address on line 6 (replacing kaspa:......).
Double-click mine.bat.
Download and unpack BzMiner for Windows (https://github.com/bzminer/bzminer/releases)
Right-click and edit kaspa.bat, add your wallet address on line 7 (replacing kaspa:0000).
Double-click kaspa.bat.
Download and unpack Kaspa Miner for Linux (https://github.com/tmrlvi/kaspa-miner/releases)
Create empty file mine.sh in miner directory with the following content:
while true; do ./kaspa-miner* -a kaspa:<your_wallet_address> -s n.seeder1.kaspad.net; done
Run mine.sh (sh ./mine.sh).
Download and unpack BzMiner for Linux (https://github.com/bzminer/bzminer/releases)
Edit kaspa.sh, add your wallet address on line 7 (replacing kaspa:0000).
Run kaspa.sh (./kaspa.sh).
Download and unpack GMiner for Windows (https://github.com/develsoftware/GMinerRelease/releases)
Right-click and edit mine_kaspa.bat, and add your wallet address (replacing kaspa:0000).
Example bat file:
miner.exe --algo kheavyhash --server stratum+tcp://kaspa-pool.org:4444 --user kaspa:0000 --dag_mode 0 --p2state 1 --watchdog 1 --watchdog_mode 0 --api 4003 --pec 1 --nvml 1
Double-click mine_kaspa.bat.
For a full list of Gminers options and possible configurations see the readme (https://github.com/develsoftware/GMinerRelease)
Download and unpack GMiner for Linux (https://github.com/develsoftware/GMinerRelease/releases)
Edit mine_kaspa.sh, and add your wallet address on line 3 (replacing kaspa:0000).
Run mine_kaspa.sh (./mine_kaspa.sh).
Download and unpack LOLMiner for windows (https://github.com/Lolliedieb/lolMiner-releases/releases/tag/1.63)
Right-click and edit mine_kas.bat, and add your wallet address (replacing kaspa:0000)
Edit the Pool to the stratum you are going to mine at.
For best efficiency lock your core and memory clock by editing the EXTRAPARAMETERS. Right after --apiport 8020 add
mclk 810 --cclk 1470
Double-click mine_kas.bat.
Download and unpack LOLMiner for windows (https://github.com/Lolliedieb/lolMiner-releases/releases/tag/1.63)
Right-click and edit mine_kas.sh, and add your wallet address (replacing kaspa:0000)
Edit the Pool to the stratum you are going to mine at.
Run mine_kas.sh (./mine_kas.sh).
1. Create a wallet for holding your KAS :
2. Create a flight sheet with your wallet and "custom" miner:
3. On the miner configuration:
- copy the url form the miner's repository (https://github.com/tmrlvi/kaspa-miner/releases ) as "installation URL". The miner name should be updated automatically.
Then Add the following parameters
- Algorithm : Heavyhash
- Wallet : %WAL%
- Pool URL : IP of your kaspad server
- Extra config arguments : Any additional parameters you want to send to the miner
For a BZminer check your config page, make sure these are turned off: TLS is basically SSL, not TCP.
Notes :
- For mining under HiveOS with the latest GPU miner you may need the latest Nvidia drivers from feature branch, not the latest stable. Check How to update HiveOS Nvidia drivers to the latest one.
- Even if stats are reported, they are only global and not per GPU. You can use it to set a watchdog and restart the miner / reboot rigs but it may have side effects depending on the health of your kaspad server (eg if the server is down or if out of sync for a period of time all your rigs might keep rebooting... which is not healthy... It is advised to use it to send alerts / monitor)
Experimental one-liner to replace the newest installed bzminer version in HiveOS (replace bzminer_url with the version you want installed):
bzminer_url=https://github.com/bzminer/bzminer/releases/download/v9.1.4/bzminer_v9.1.4_linux.tar.gz && bzminer_path=$(ls -d /hive/miners/bzminer/* | sort --version-sort --field-separator=. | tail -n 1) && miner stop && cp -p "$bzminer_path/bzminer" "$bzminer_path/bzminer.bak" && wget -O- "$bzminer_url" | tar xvz --strip-components 1 --no-anchored -C "$bzminer_path" bzminer && miner start
CPU mining is no longer justified. Better mine Monero, sell it and buy Kaspa for that money, this way you'll get much more Kaspa in the same time period.
In case you still want to try, start a kaspa-miner (https://github.com/tmrlvi/kaspa-miner) with the -t N
parameter of the command line, where N
is the number of threads you want to mine with. This value is usually set equal to the number of your CPU's physical cores, utilizing hyperthreading cores worsens the result.
The rough estimation of a hashrate is 2-5 MH/s per CPU physical core, see also CPUs hashrate tables.