HowTo run PoW CPU Miner

From Veriblock Wiki
Jump to: navigation, search

See: HowTo_run_PoW_Miner


The PoW Miner helps get the next block added to the VeriBlock blockchain. It will connect to a local instance of NodeCore, using UCP on port 8501.

You can run the PoW Miner as an individual, or connect to a pool (See: HowTo_run_and_connect_to_PoW_Miner_pool)

This page explains how to run the PoW Miner as an individual.

Note that PoW Mining is separate from Proof-of-Proof (PoP) Mining. Both reward VBK tokens, but are different operations. (See: HowTo_run_PoP_Miner, PoW_vs_PoP_Mining)


Note: If you are having trouble running nodecore-reference-pow on linux, you may need to make nodecore-reference-pow executable: chmod a+x nodecore-reference-pow

  1. Ensure that nodecore is running (see: HowTo_run_NodeCore)
  2. In the NodeCore CLI, run the "startpool" command. This will start the UCP NodeCore protocol on port 8501, which the miner needs.
  3. Unzip
  4. In the bin folder, if Windows then run nodecore-reference-pow.bat, if linux then run nodecore-reference-pow
  5. Enter the input arguments
    1. How many threads would you like to mine on? --> such as 2 or 8.
    2. What host:port would you like to connect to for mining? -->
    3. What address would you like to mine to? --> the default address for your local instance of nodecore, such as "V6RRxmzJAhLkeWTzcFzQkQEgP2hC1e". Run getinfo in the commandline to see the default address.

The Startup console output will prompt for input:

If running a local NodeCore instance, then use the NodeCore CLI to run the command: startpool
How many threads would you like to mine on?
What host:port would you like to connect to for mining? (Use the port for UPC. Default
What address would you like to mine to?

And then dump output like:

Note: server capabilities are 10011111111
Authentication successful!
Mining subscription successful!
Initial job: {"command":"MINING_JOB","request_id":{"type":"REQUEST_ID","data":1312098332},"job_id":{"type":"JOB_ID","data":0},"block_version":{"type":"BLOCK_VERSION","data":1},"previous_block_hash":{"type":"BLOCK_HASH","data":"000000011BA344746B3E0C3C86943BB4B453AAC0305854F2"},"pool_address":{"type":"ADDRESS","data":"V64wSk4Ag6a3dnGAU3M3CNdqLAnDsa"},"merkle_root":{"type":"TOP_LEVEL_MERKLE_ROOT","data":"211C2A34FD8FCB383D9597C71DBE05E27EF35B28377590AC"},"timestamp":{"type":"TIMESTAMP","data":1525038678},"difficulty":{"type":"DIFFICULTY","data":72017977},"mining_target":{"type":"TARGET","data":"000000ffffffffffffffffffffffffffffffffffffffffff"},"ledger_hash":{"type":"LEDGER_HASH","data":"F08396AB15DE7A70DD5C4CA590409B6908AA34BBB7790702"},"coinbase_txid":{"type":"TRANSACTION_ID","data":"0F257194F1598EE5A1C112CCE792E5A5B68746E1CC0B483D22BDA8DA18090444"},"pop_datastore_hash":{"type":"POP_DATASTORE_HASH","data":"F5A5FD42D16A20302798EF6ED309979B43003D2320D9F0E8EA9831A92759FB4B"},"miner_comment":{"type":"MINER_COMMENT","data":"Default NodeCore Pool Software"},"pop_transaction_merkle_root":{"type":"INTERMEDIATE_LEVEL_MERKLE_ROOT","data":"0000000000000000000000000000000000000000000000000000000000000000"},"normal_transaction_merkle_root":{"type":"INTERMEDIATE_LEVEL_MERKLE_ROOT","data":"38853B3A9E1C2062067C4395F5AB511999DC3323CB37488DDE3FDA91658F9C63"},"extra_nonce_start":{"type":"EXTRA_NONCE","data":2000000},"extra_nonce_end":{"type":"EXTRA_NONCE","data":2999999}}
Starting thread 0...
Starting thread 1...
Current Hashrate: 0.000 MH/s        VALID: 0        INVALID: 0
Current Hashrate: 0.690 MH/s        VALID: 0        INVALID: 0

Upon submitting a share, the console will output something like below. Note this is not a guarantee of a reward.

Current Hashrate: 0.673 MH/s        VALID: 0        INVALID: 0
Share on thread 1 on block 000000011BA344746B3E0C3C86943BB4B453AAC0305854F2
*** Miner submitted share (partial block) to pool ***
        Nonce: 4559309
        Timestamp: 1525038685
        Job Id: 0
        Block Hash: 000000CD8C333FB41F490B38DAA1A8695AF6B85502E38EDD
        Previous Block Hash: 000000011BA344746B3E0C3C86943BB4B453AAC0305854F2
Update: {"command":"MINING_SUBMIT_SUCCESS","request_id":{"type":"REQUEST_ID","data":700641749}}
Share successfully submitted!
Current Hashrate: 0.644 MH/s        VALID: 1        INVALID: 0
Current Hashrate: 0.588 MH/s        VALID: 1        INVALID: 0
Current Hashrate: 0.610 MH/s        VALID: 1        INVALID: 0


What is the reward for PoW Mining

35 VBK per block. If pool mining, then that reward will be split among the pool.

Will there be a GPU miner?


Can I pass in arguments from the command line?


Add config file next to nodecore-pow.bat:, and it will automatically pick up values and run:

#PoW Miner Configuration


The PoW Miner instantly crashes

Try running the PoW Miner from a command line (instead of just clicking "nodecore-pow.bat") such that you'll see an error output even if the original window exits.

The most likely cause of the window instantly shutting down is that the pool has not been started. If you're running an individual miner, then go to the NC_CLI and run "startpool". (See: NodeCore_CommandLine#startpool)