# How to run a private bitcoin network with low difficulty?

I want to test and develop an open source mining pool. I don't have access to an ASIC miner or GPU, so I have to use my CPU to simulate mining and see how the pool really works.

The problem is the bitcoin testnet difficulty is so high and the CPU can't mine, produce blocks and get reward. I need a low difficulty private bitcoin in order to test the mining process. How can I achieve that?

• Does the “regtest” help you? – MCCCS Feb 17 at 13:13

Use regtest

Chain selection options:

-regtest
Enter regression test mode, which uses a special chain in which blocks
can be solved instantly. This is intended for regression testing
tools and app development.

-testnet
Use the test chain


Using this mode, you can manually mine blocks by issuing the following command, where nBlocks is the number of blocks to mine. You will need atleast 101 blocks before your first mining reward becomes available.

bitcoin-cli generate nBlock

• Thank you. But when I generate new blocks manually, where does the block reward go? Is there any block reward at all? What does the miner do? – saman.shahmohamadi Mar 6 at 18:28
• This is automatically assigned to your default account configured within bitcoind. Be aware that the regression test move also has a maturity period where the coins generated by a block can only be moved after there are another 100 blocks on top, so you only have access to the mining reward after 100 blocks. There is also a more recent way in which you can specify this address using the generatetoaddress RPC call which mines to an address of your choice instead of a new internal newly generated address. gr0kchain@bitcoindev \$ bitcoin-cli help generatetoaddress – Gr0kchain Mar 7 at 8:46