What is cryptocurrency ‘mining’?
Simply put, mining is the verification of a transaction on the blockchain. Typically, the ‘miner’ that is the first to solve a complex cryptographic equation which includes the incoming transaction data will be ‘rewarded’ with a small amount of cryptocurrency i.e. Nimiq. This action is also known as Proof of Work (PoW).
Consensus algorithm: Argon2(D)
Initially selected by the Nimiq team as a PoW algorithim that was designed and optimized to ensure that GPUs or similar processors wouldn’t have significant ‘hashing’ advantages over regular CPU processors, Argon2 binds mining speed to memory and cache latency instead of processing power.
Detailed information on Argon2 can be found on the official Github repository.
Solo & Pool Mining
A miner can choose to mine independently (Solo mining), or pool processing power (Pool mining) with others to solve the complex cryptographic equations presented by a blockchain to validate a transaction. If mining with a pool, rewards for the validation of a block is typically shared proportionally with the amount of processing power dedicated from each individual miner in the pool (minus any fee imposed by the pool).
More information on pool mining can be found here.
‘Nano’ Mining vs ‘Smart’ Mining
There are two primary configurations a miner can set their client whilst mining:
’Nano’ mode: the mining client pulls all necessary information (including transactions) to validate blocks from the mining pool it is connected to.
’Smart’ mode: the mining client pulls all necessary information to validate blocks directly from the blockchain.
There are three ways to mine Nimiq currently:
- Browser mining (available on devices with a browser including mobiles)
- CPU mining (available on desktops & laptops)
- GPU mining (available on desktops).
In terms of mining efficiency, browser mining yields the least efficient means to mine Nimiq whilst GPU mining yields the most efficient. There are currently no known ASICs & FPGAs available.
Official Nimiq CPU miner
Community created CPU miners
|NIM Pools Hub Miner||Albermonte/Sushipool||Windows/Linux/Mac multipool client (GUI)|
Community created GPU miners
|NIM Pools Hub Miner||Albermonte/Tomkha||AMD/NVIDIA multipool client (GUI)|
|Sushipool GPU OpenCL||Sushipool||OpenCL miner|
|Sushipool GPU CUDA||Sushipool||Nvidia miner|
|NoncerPro Nvidia||Ehssand||CUDA miner|
|NoncerPro AMD||Ehssand||OpenCL miner|
Hardware statistics for CPU & GPU mining can be found here.
How to start mining with the official client
Download the client for your OS from here. Nimiq supports Linux and Windows.
Install the client.
Open the conf file.
For windows, go to the Windows Start Menu and in the Nimiq folder select “Edit Config”.
For linux, open
/etc/nimiq/nimiq.conf with a text editor.
Edit the conf file
The most basic mining can be achieve by commenting some parameters and configuring others.
By adding // at the beginning of a line you disable it. This is called commenting a line
Comment the following lines:
- cert: “./my.domain.cer”, -> //cert: “./my.domain.cer”,
- key: “./my.domain.key” -> //key: "./my.domain.key"
Configure this line (note that you also need to uncomment it) :
- //protocol: “wss”, -> protocol: “dumb”,
In the miner section, configure the miner to be enabled (you only have to uncomment it):
- //enabled: “yes”, -> enabled: “yes”,
This is enough for solo-mining. If you want to mine in a pool configure the following.
In the pool mining section, enable pool mining by uncommenting the line:
- //enabled: “yes”, -> enabled: “yes”,
Configure the pool you mine to min with. Remember to uncomment the line too. You can choose a pool from the list above. For more information about pool see the pool section:
- //host: “pool.domain”, -> host: “eu.nimpool.io:8444”,
Nimpool is a non-profit pool. I use nimpool to give a real example while remaining unbiased. Search the pool section or ask around the community to find your favorite pool