Tutorial: How to Solo Mine Decred's Upcoming Blake3 Algorithm

A step-by-step tutorial on CPU mining the new Blake3 algorithm.

For issues and problem solving, view the comment section below

Welcome to this step-by-step tutorial on CPU mining the new Blake3 algorithm set to be activated at block 794,368 (Late August / September 2023). With no available pools or GPU mining software at the moment, solo mining presents an opportunity to potentially mine a few blocks and earn Decred. While the PoW reward has undergone significant reduction, the initial phase of the new hashing algorithm offers a chance for some fortunate miners to earn Decred with dedication and persistence.

Step 1: Download and Install the Decred Software

  1. Obtain the latest version of DCRINSTALL suitable for your platform from the official GitHub repository:

    Ensure that you download at least version 1.8.0 of DCRINSTALL to support the new algorithm.
  2. For your security, verify that your download hash matches the hash in the Decred releases manifest. For detailed instructions, read about Verifying Binaries.
  3. Execute DCRINSTALL, which will automatically install the necessary software components for Decred. In Windows you can either double click it or run it from the Command Prompt. If you are on Linux or macOS and don't know how to execute the file, take a look into our CLI Installation documentation.

Setting Wallet Passwords

  1. During installation, a new wallet will be created, and you will be prompted to enter a password. This password will be essential for accessing your funds and conducting transactions.
  2. Optionally, you can opt to set a second password for public data security, preventing unauthorized access to your wallet content. In this tutorial, we'll choose to omit this step.

Note: While typing the password, characters like asterisks won't be visible for security reasons.

New Wallet or Recreate from Seed?

  1. You will be presented with a choice to either restore an existing wallet with a seed or create a new wallet. In this tutorial, we'll create a new wallet by selecting [no].
Important: Afterward, your wallet seed will be displayed. Make sure to write down the seed and store it securely. Once you've documented your wallet seed, type: OK.

Running Binaries and Generating a Receiving Address

  1. After all binaries are installed, the installer will indicate the installation location. Go to that location and execute the command to run dcrd
  2. dcrd is the primary Decred daemon responsible for downloading and validating the blockchain. Allow it sufficient time to complete its tasks before proceeding.
  3. While dcrd is active in your terminal, open another terminal and initiate dcrwallet. You'll need to input your passphrase for initial synchronization and detection of used accounts and of your wallet's existing funds. Once the blockchain scan is finished, open another terminal and generate your receiving address for mining rewards using the following command:
dcrctl --wallet getnewaddress

Take note of the provided address, which will start with Ds ...

Step 2: Launch dcrd with Enabled CPU Mining

  1. As the new mining algorithm becomes active at block height 794,368, it's advisable to monitor the dcrdata.decred.org block explorer to start mining at exactly this block and increase your chances of finding a block through solo CPU mining as early miner.
  2. Before proceeding, ensure the previous dcrd instance is stopped if it's currently still running. Then, start dcrd with the necessary mining address parameter to prepare dcrd for CPU mining.
dcrd --miningaddr=[yourMiningAddressHere]

Replace [yourMiningAddressHere] with the address generated in Step 1. Afterwards you need to issue the setgenerate rpc to start CPU mining in a separate terminal window.

dcrctl setgenerate true

The moment you issue the setgenerate RPC the CPU rate of your dcrd process should jump to 100%. You can check if you are mining and how many hashes you are generating per second with the following command:

dcrctl getmininginfo

Note the output should look like the following, where generate: true and hashespersec: > 0

dcrctl getmininginfo
  "blocks": 789713,
  "currentblocksize": 29006,
  "currentblocktx": 39,
  "difficulty": 3132289666.7448616,
  "stakedifficulty": 23898311433,
  "errors": "",
  "generate": true,
  "genproclimit": 1,
  "hashespersec": 648796,
  "networkhashps": 39285830859642476,
  "pooledtx": 8,
  "testnet": false

You can stop CPU mining by setting setgenerate back to false:

dcrctl setgenerate false

Best of Luck!

Congratulations! You're now operating a local instance of dcrd with CPU mining enabled. The block explorer provides hash rate and PoW difficulty charts, offering insights into participation trends during the initial days. It's also recommended to utilize various available devices, such as laptops, PCs, Raspberry Pi, or VPS servers, to enhance your mining capabilities. Happy mining!