# TWINS Multiple Masternodes setup on one VPS - 2

This method will make use of the NEO's script located here:[ https://github.com/neo3587/dupmn](https://github.com/neo3587/dupmn)

**Why NEO's script?**

* Adaptable easily to any coin or project
* **I**t can do IPv4 or IPv6
* It makes use of bootstrap to speed up the synching of the MN wallet to the blockchain -> Instant synch
* extremely customisable and development ongoing

This tutorial will show you step by step how to setup multiple TWINS Masternodes on single VPS server by means of the NEO script.

**The concept behind NEO's script**

* Install the TWINS masternode as you usually do. \
  This node will be the Main or the reference node of all other nodes.
* Install the NEO script
  * Create the .dmn profile file specific to TWINS
  * Add the profile based on the .dmn settings
  * Install as many duplicates (masternodes) as you want with the command  "dupmn install twins \<params\_optional>

## Installation Steps

1. **Install the Main TWINS masternode**

I will not spend much time on this part as this has been covered extensively in other docs.\
You can use this one as reference: <https://docs.win.win/twins/english-documentation/twins-masternodes-1/masternode-installation-script>

The only important thing is that you don't need to have the Main MN talk to your local QT wallet. i.e no entry needed in the masternode.conf file, no MN collateral needed, no Txid. You'ill just need to key in a Private key when requested. That's it.

So the status of that Main MN will always be:\
`status : Not capable masternode: Hot node, waiting for remote activation.`

**2. Create duplicates of the Main TWINS Masternode**

**2.1 Download and install the NEO script**

```
curl -sL https://raw.githubusercontent.com/neo3587/dupmn/master/dupmn_install.sh | sudo -E bash -
```

**2.2 Create the twins.dmn file**

In the root folder, type:

**`nano twins.dmn`**,  paste the following in it and save the file with ctrl+x

```
COIN_NAME="TWINS"             # Name of the coin
COIN_PATH="/root/"            # NOT required parameter, location of the daemon and cli (only required if they're not in /usr/local/bin/ or /usr/bin/)
COIN_DAEMON="twinsd"          # Name of the daemon
COIN_CLI="twins-cli"          # Name of the cli
COIN_FOLDER="/root/.twins"    # Folder where the conf file and blockchain are stored
COIN_CONFIG="twins.conf"      # Name of the conf file
RPC_PORT=45454                # NOT required parameter, it's just to force to start looking from a specific rpc port for those coins that doesn't have a rpcport parameter in the .conf file or that the main node rpc port is not between 1024 and 49451 (otherwise it will start looking at 1024).
COIN_SERVICE="twins.service"  # NOT required parameter, if you have a service for the main node, add this parameter for the systemctlall and bootstrap commands.
```

**2.3 add the profile for dupmn to use**

type the command :

**`dupmn profadd twins.dmn twins`**

If your command is successful, ie if your twins.dmn is correct you should get this output:

![](https://3467362499-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYrsxcSLvNaW1dSI5MX%2F-Ll3knHfRLsKZB3cXdrv%2F-Ll3lBQQnuPE4RrJjTNo%2Fimage.png?alt=media\&token=b66290d1-d16d-43e3-91df-46b03592b5e0)

**2.4 Create the Masternode instances/duplicates**

Use the command **`dupmn install twins ,`** it should give you the following output:

![](https://3467362499-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYrsxcSLvNaW1dSI5MX%2F-Ll3knHfRLsKZB3cXdrv%2F-Ll3n0R221iLRUyJAEDV%2Fimage.png?alt=media\&token=7123dd7b-e209-4862-8368-88aef68f913f)

That output already suggests a number of things like "twins-cli-x masternode status", x being your masternode instance, to verify the status of the masternode. It generates itself a Private Key as well. You can use that one to add to your local wallet's masternode.conf file or enforce a privkey with the --privkey param.

You can also enable the utilization of a bootstrap to have a instantly synched new MN as follows, combined with the privkey enforced:

![](https://3467362499-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYrsxcSLvNaW1dSI5MX%2F-Ll3knHfRLsKZB3cXdrv%2F-Ll3qE9pN43BHI1Pgkmc%2Fimage.png?alt=media\&token=a2ce49a2-10f3-4521-b735-0f9a608ed767)

Once your local QT wallet has been properly setup (collateral sent to MN addresses, masternode.conf file populated, Aliases started, etc...)

You can check the status of your MNs with the command **`twins-cli-all masternode status`**

The "all" keyword means a summary of all MNs will be displayed, you can use your MN instance number there to look at a specific MN. As you can see the Main instance is the instance 0 or MN0:

![](https://3467362499-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYrsxcSLvNaW1dSI5MX%2F-Ll3knHfRLsKZB3cXdrv%2F-Ll3qWgxg_5fwzlCeuj0%2Fimage.png?alt=media\&token=d2fff486-f63a-407b-83d7-0807edb505bf)

For details on the other params of dupmn for a better customization, you can have a look at neo's github page (see link above) or simply run the **`dupmn help`** command and a list of available dupmn commands will appear.

![](https://3467362499-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYrsxcSLvNaW1dSI5MX%2F-Lk_vRg9BJJd1NkJwmwb%2F-LkaFBSIxLto6hPviuV_%2Fimage.png?alt=media\&token=235b7155-0e13-46ad-b427-dd7682821096)

That was it. Thanks for reading.

If you should have questions, feel free to ask in the New-Capital discord server <https://discord.gg/CPEuShP>

There's also a video tutorial at my youtube channel for those interested, it is made for FIX but the same applies to TWINS: <https://www.youtube.com/watch?v=knkRv6_ZGO4>
