btcd, and presumably other bitcoin node implementations, seem to have 4 network options:

  1. mainnet
  2. testnet
  3. regtest
  4. simnet.

I get that mainnet and testnet both are "public" in that your node will communicate with other nodes and that both have an existing blockchain and genesis block.

However, from what I can tell, both simenet and regtest both create a local only blockchain, and both will create a new genesis block. I this case, what is the difference, and which is better (easier) for developing bitcoin applications?

This is what the documentation has to say:

--regtest             Use the regression test network
--simnet              Use the simulation test network

Simnet is only available for btcd (bitcoin node) and lnd (lightning node) afaik, while regtest is also available for bitcoind (bitcoin node), lnd and eclair (lightning nodes). The two modes are similar, according to documenation of LND:

Simnet is similar to regtest in that you'll be able to instantly mine blocks as needed to test lnd locally

Both also are similar in the fact that the payment addresses are unique, to prevent confusion with the main network.

Where they differ, I think, is that simnet goes a bit further and also applies some network changes to disable things like peer discovery.

But I couldn't find conclusive evidence for this. Since I do a lot of tests with multiple Lightning clients, I tend to use regtest, since that's more broadly supported.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.