Building a private internal DSN and connecting to the DSN network through a public DSN

Most of the time, we can connect to the default bootstrap through the internet, but if I have three or four computers, they will create a considerable number of connections for my router. Is it possible to use a specially set up bootstrap-node to open a dedicated network, where all computers only connect to my private bootstrap-node and all data is forwarded through this bootstrap-node? This would not reduce the contribution in the P2P network, as the connections would be mutual.

There is theoretically a way to proxy connections through other nodes, which I we even used in Gemini 2a, but that will not decrease number of connections you have to maintain and will add additional overhead for proxying. And it is not supported by Gemini 3g nodes, so you can’t just enable it on your end.

Subspace is meant to be a global network, there is no way to build a private DSN, it will actually stop being DSN if you just run a few machines locally.

With latest releases number of connections should be reasonable and if you have more machines you will have to have more connections open, there is no way around it.

Can you tell me how to correctly start the bootstrap-node? I used generate-keypair and protocol-version /subspace/2//. When my node connects to the bootstrap-node, it cannot connect to other L2 networks. Please provide some help.

Your bootstrap node also has an argument for bootstrap nodes, you need to use those to connect to the rest of the network. BTW any node or farmer can also act as bootstrap node, you probably don’t need a bootstrap node as a separate application, it is only for cases when you want to run a bootstrap node and nothing else.

And FYI you don’t need to specify bootstrap nodes for a node because farmer will automatically inherit parameters of the node, so just customize it there.

I directly used the --bootstrap-nodes parameter and added bootstrap-0.devnet /dns to it, but it still doesn’t work. Why might this be the case?

Devnet and Gemini 3g are completely differnet networks though, I don’t think devnet is currently live. You need to use Gemini 3g bootstrap nodes, you can find them in the chain spec (note there are both Substrate networking bootstrap nodes and Subspace networking/DSN bootstrap nodes, you want DSN).

When I switch to b-0.gemini-3g as the --bootstrap-node, do I need to modify or use other parameters? For example, my protocol-version and keypair. it was Cannot acquire piece from DSN L1 and L2 , Still unable to find L1 and L2.

protocol version must match genesis has (without initial 0x) of Gemini 3g chain (can be seen in URL of the telemetry page or logs of node/farmer). Keypair is whatever you want it to be.

Can I add my own L2 Node to my bootstrap-nodes? For example, from another farm.
Should I use the --external-addresses parameter? If other nodes are on a private network, can I use --enable-private-ips and then use a DNS like /192.168.1.x?

Not sure what you mean by L2 Node. Both node and farmer can act as bootstrap nodes, I already mentioned this above.

If you can/want to - sure.

Yes.