Dash Network Deployment Tool
This tool allows deploy and manage Dash networks.
There are two regular available networks:
After deployment your DashCore instances will join to those networks.
devnet-* are networks for testing purposes.
Devnet are like regular Dash networks (
but easier to bootstrap and has own name. That's why it easier to have multiple in parallel.
Work in progress and in its initial state only meant to be used by Dash Core developers to assist in Dash Evolution development.
wget -P /usr/local/bin https://raw.github.com/dashpay/dash-network-deploy/master/bin/dash-network && \ chmod +x /usr/local/bin/dash-network
curl -fsSL -o /usr/local/bin/dash-network https://raw.github.com/dashpay/dash-network-deploy/master/bin/dash-network && \ chmod +x /usr/local/bin/dash-network
Configure your credentials in
Use .env.example as example.
Please find examples of network configurations in examples directory.
Name of files are equal to Dash network names.
Terraform configuration defined in
All available options you will find
in variables.tf file.
Please don't forget to include in your
.env *.inventory *.ovpn
To deploy Dash Network use
deploy command with particular network name:
dash-network deploy <network_name>
You may pass
--only-provisioning option to avoid to do a particular type of work.
To destroy available Dash Network use
dash-network destroy <network_name>
You may pass
--keep-infrastructure option to remove software and configuration and keep infrastructure.
List network services
dash-network list <network_name>
To test network run
test command with with particular network name:
dash-network test <network_name>
You may pass
--type option to run particular type of tests (
It possible to specify several types using comma delimiter.
Deploy Dash Evolution
Deploy your network with additional ansible variables:
evo_services: true insight_image: "<docker-image>" drive_image: "<docker-image>" dapi_image: "<docker-image>" dashd_image: "<docker-image>" # uncomment if docker images stored in AWS ECR # aws_ecr_login: true
Get current block height:
docker run -ti --rm \ -v "$PWD:/networks" \ -v "$HOME/.aws:/root/.aws" \ -v "<your-public-key-path>:<your-public-key-path>" \ -v "<your-private-key-path>:<your-private-key-path>" \ -w "/usr/src/app/ansible" \ dashpay/dash-network-deploy ansible dashd-wallet-2 \ -i ../networks/<network_name>.inventory \ --private-key=<your-private-key-path> \ -b -m command -a "dash-cli getblockcount"
Enable Masternode List after ten new blocks:
docker run -ti --rm \ -v "$PWD:/networks" \ -v "$HOME/.aws:/root/.aws" \ -v "<your-public-key-path>:<your-public-key-path>" \ -v "<your-private-key-path>:<your-private-key-path>" \ -w "/usr/src/app/ansible" \ dashpay/dash-network-deploy ansible dashd-wallet-2 \ -i ../networks/<network_name>.inventory \ --private-key=<your-private-key-path> \ -b -m command -a "dash-cli spork SPORK_15_DETERMINISTIC_MNS_ENABLED <current_block_height+10>"
Upgrade your MNs to ProTX when DIP3 is enabled (see getBlockChainInfo):
dash-network deploy -p --ansible-playbook=upgrade-to-protx <network_name>
Connect to private Dash Network services
You can use generated during deployment OpenVPN config
<network_name>.ovpn to connect to private services.
Clone git repository:
git clone https://github.com/dashpay/dash-network-deploy.git
Install Ansible and Terraform per instructions provided on official websites:
Ensure Python netaddr package installed locally
pip install -U netaddr
- Note: You may need to run the above command with "pip2" instead of "pip" if your default Python installation is version 3 (e.g. OSX + Homebrew).
Install pre-requisite Ansible roles
ansible-galaxy install -r ansible/requirements.yml
Install AWS Command Line Interface
Install Node.JS and dependencies:
apt-get install openvpn
brew install openvpn