<p>Regtest should really suffice for your basic testing. If you really want to modify chainparams, you would first start with the DNS seed data in the file; these are hard coded.</p>

CC BY-SA 3.0
2017-04-19T10:33:18.340Z
I know that regtest is cool for testing, but I don't want to just test it I want to make something deployable. so this DNS seed is for peer discovery- what if at first it's just me on the network- and so- does that mean I need to manually add all new peers on the network? can't it just discover peers that are near?
smatthewenglish
CC BY-SA 3.0
2017-04-19T10:38:22.810Z
It would still need to know one peer before it can start discovering more peers on the network. Hence the hard coded list.
Bobo
CC BY-SA 3.0
2017-04-19T10:39:50.103Z
what if the peers are docker containers on my own machine, that will also work right?
smatthewenglish
CC BY-SA 3.0
2017-04-19T10:44:21.037Z
I have not used docker so can't confirm , but honestly i see no difference as long as they are listening to different ports. I'd still go with Pieter Wuille's suggestion with starting in regtest, adding nodes manually.
Bobo
CC BY-SA 3.0
2017-04-19T10:58:33.010Z
what does that mean- start in regtest and add nodes manually- this is just for practice? to understand how to add nodes? so- for adding them it still means hard coding them into that file? but anyway- yeah sure I mean_ practice is also cool- but when I want to deploy for real I can't use regtest- like- I can't transition from reg test to real world deploy- isn't it?
smatthewenglish
CC BY-SA 3.0
2017-04-19T12:12:03.937Z
You can pass a `-connect=IP` command to `bitcoind` to make it connect only to ip address IP. That way you can create your own private network. You can even run multiple `bitcoind` on the same machine.
Pieter Wuille
CC BY-SA 3.0
2017-04-19T10:29:48.780Z
2017-04-19T10:29:48.780Z
Bobo
<p>I'd like to make a fork of Bitcoin, since it's the new trend ;)</p>

<p>The first thing I did was to create a docker image of ubuntu with all the dependencies, then I wanted to run the core software- but the first thing it did after I built it and booted it up was start trying to connect itself to the real-world bitcoin network- <em>not what I want!</em></p>

<p>What I'd like to do is define my own network, that I can just run on some machines that are under my own personal control- pass around coins- all the typical stuff- check out the wallet- <strong>really basic</strong></p>

<p>but I'm at a loss for how to do that. </p>

<p>I've been <a href="https://bitcoin.stackexchange.com/questions/52832/interacting-with-bitcoin-over-docker">told</a> that I need to modify <code>chainparams.cpp</code>, is it so? If yes, then what do I need to do to it? </p>

<p>Is that the only thing I need to change? if there are other things what are they? </p>

CC BY-SA 3.0
2017-04-18T16:23:26.777Z
I've also told you to start with regtest first, as that will do everything you're asking for without needing any code changes. Once you want to have some sort of public network with whatever changes you want, you can add a definition to chainparams.
Pieter Wuille
<network><altcoin-development>
creating a fork of bitcoin, how to modify core to create my own network
smatthewenglish
# creating a fork of bitcoin, how to modify core to create my own network

(Asked by: username_0 on 2017-04-18)

I'd like to make a fork of Bitcoin, since it's the new trend ;)

The first thing I did was to create a docker image of ubuntu with all the dependencies, then I wanted to run the core software- but the first thing it did after I built it and booted it up was start trying to connect itself to the real-world bitcoin network- *not what I want!*

What I'd like to do is define my own network, that I can just run on some machines that are under my own personal control- pass around coins- all the typical stuff- check out the wallet- **really basic**

but I'm at a loss for how to do that.

I've been [told](https://bitcoin.stackexchange.com/questions/52832/interacting-with-bitcoin-over-docker) that I need to modify `chainparams.cpp`, is it so? If yes, then what do I need to do to it?

Is that the only thing I need to change? if there are other things what are they?

**Tags:** network, altcoin-development

> **Comments:**
> **username_1**: I've also told you to start with regtest first, as that will do everything you're asking for without needing any code changes. Once you want to have some sort of public network with whatever changes you want, you can add a definition to chainparams.  

---

## 1 answers

### Answer by username_2 on 2017-04-19. Score: 1 | Accepted answer

Regtest should really suffice for your basic testing. If you really want to modify chainparams, you would first start with the DNS seed data in the file; these are hard coded.

> **Comments:**
> **username_0**: I know that regtest is cool for testing, but I don't want to just test it I want to make something deployable. so this DNS seed is for peer discovery- what if at first it's just me on the network- and so- does that mean I need to manually add all new peers on the network? can't it just discover peers that are near?  
> **username_2**: It would still need to know one peer before it can start discovering more peers on the network. Hence the hard coded list.  
> **username_0**: what if the peers are docker containers on my own machine, that will also work right?  
> **username_2**: I have not used docker so can't confirm , but honestly i see no difference as long as they are listening to different ports. I'd still go with username_1 username_1's suggestion with starting in regtest, adding nodes manually.  
> **username_0**: what does that mean- start in regtest and add nodes manually- this is just for practice? to understand how to add nodes? so- for adding them it still means hard coding them into that file? but anyway- yeah sure I mean_ practice is also cool- but when I want to deploy for real I can't use regtest- like- I can't transition from reg test to real world deploy- isn't it?  
> **username_1**: You can pass a `-connect=IP` command to `bitcoind` to make it connect only to ip address IP. That way you can create your own private network. You can even run multiple `bitcoind` on the same machine.  

---

