All Projects → dashevo → dash-network-deploy

dashevo / dash-network-deploy

Licence: MIT license
Tools for Dash networks deployment and testing

Programming Languages

Jinja
831 projects
HCL
1544 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
Dockerfile
14818 projects
PHP
23972 projects - #3 most used programming language

Labels

Projects that are alternatives of or similar to dash-network-deploy

appng
appNG is an open source, horizontally scalable application platform for developing and operating applications efficiently. It can be used to build an Application Platform as a Service (aPaaS).
Stars: ✭ 32 (+88.24%)
Mutual labels:  platform
hurtrade
An Open Source Forex Trading Platform
Stars: ✭ 22 (+29.41%)
Mutual labels:  platform
hermes-protocol
Definition of the Hermes protocol used by the Snips platform
Stars: ✭ 38 (+123.53%)
Mutual labels:  platform
platframe
Structured, scalable and modular frontend development platform.
Stars: ✭ 38 (+123.53%)
Mutual labels:  platform
Server
The whir.io chat server.
Stars: ✭ 15 (-11.76%)
Mutual labels:  platform
skeleton
Project template for starting your new project based on the Sulu content management system
Stars: ✭ 180 (+958.82%)
Mutual labels:  platform
Blankly
🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
Stars: ✭ 1,456 (+8464.71%)
Mutual labels:  platform
openapi-generator-go
An opinionated OpenAPI v3 code generator for Go. Use this to generate API models and router scaffolding.
Stars: ✭ 42 (+147.06%)
Mutual labels:  platform
linkin
Linkin is a customizable self hosted link tree platform.
Stars: ✭ 62 (+264.71%)
Mutual labels:  platform
PetroFDS
ThePetronics Food Delivery System(PetroFDS)
Stars: ✭ 48 (+182.35%)
Mutual labels:  platform
kratix
Kratix is a framework for building Platform-as-a-Product
Stars: ✭ 175 (+929.41%)
Mutual labels:  platform
uclapi
An API for University College London, created for and by students!
Stars: ✭ 41 (+141.18%)
Mutual labels:  platform
OpenIoT
Open source IoT platform for makers
Stars: ✭ 31 (+82.35%)
Mutual labels:  platform
matters-web
Website of Matters.News, built with Next.js.
Stars: ✭ 70 (+311.76%)
Mutual labels:  platform
hex
An ecosystem delivering practices, philosophy and portability. Powered By Deno and JavaScript.
Stars: ✭ 48 (+182.35%)
Mutual labels:  platform
dashcore-node
Full node with extended capabilities using Dashcore and Dash Core (dashd)
Stars: ✭ 30 (+76.47%)
Mutual labels:  platform
hoffnung3000
Platform for decentralized, anonymized, self-curated festivals
Stars: ✭ 27 (+58.82%)
Mutual labels:  platform
porter
Multi-region blue-green Docker deployments and a whole lot more
Stars: ✭ 43 (+152.94%)
Mutual labels:  platform
geokey
Platform for participatory mapping
Stars: ✭ 53 (+211.76%)
Mutual labels:  platform
actlist
📦 Actlist is a utility platform to execute your own action list easily and simply.
Stars: ✭ 85 (+400%)
Mutual labels:  platform

Dash Network Deployment Tool

Latest Release Build Status Release Date standard-readme compliant

Introduction

This tool assists in deploying and managing Dash networks.

There are two regular available networks: testnet and mainnet. After deployment your DashCore instances will join those networks.

regtest and devnet-* networks are for testing purposes. Devnets are like regular Dash networks (mainnet and testnet) but easier to bootstrap and with unique names. This supports having multiple in parallel.

This is work in progress and in its initial state only meant to be used by Dash Core developers to assist in Dash Platform development.

Installation

  1. Install Docker

  2. Download tool:

    Using wget:

    wget -P /usr/local/bin https://raw.github.com/dashpay/dash-network-deploy/master/bin/dash-network && \
    chmod +x /usr/local/bin/dash-network

    Using curl:

    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

Configuration

Networks definition

You can use generate command in order to create configs for your network:

dash-network generate <network_name> <masternode_count>

Terraform configuration is defined in the *.tfvars files. See variables.tf for all available options.

Ansible configuration are in the *.yaml file. group_vars/all file contains the majority of playbook options. The rest are defined in ansible roles.

Configure your credentials in the .env file.

Using git

Please don't forget to include the following in your .gitignore:

.env
*.inventory
*.ovpn

Deployment

To deploy a Dash Network use the deploy command with a particular network name:

dash-network deploy <network_name>

You may pass the --only-infrastructure or --only-provisioning option to avoid to do a particular type of work.

To destroy an available Dash Network use destroy command:

dash-network destroy <network_name>

You may pass the --keep-infrastructure option to remove only the software and configuration while keeping the infrastructure.

List network services

dash-network list <network_name>

Testing

To test the network, run the test command with with particular network name:

dash-network test <network_name>

You may pass the --type option to run only particular tests (smoke, e2e). It is possible to specify several types using comma delimiter.

Debugging

There are two commands that can be useful for debugging:

  • Show service logs: dash-network logs <network_name> <host> [docker logs options] <service_name>
    • See Docker log options for details
    • Example: dash-network logs devnet-example node-1 --since 3h dashd
  • Execute Dash Core RPC command: dash-network dash-cli <network_name> <hostname> <rpc_command>

Deploy Dash Platform

In order to deploy platform services use ansible variable:

```yaml
evo_services: true
```

Connect to private Dash Network services

You can use the OpenVPN config generated during deployment (<network_name>.ovpn) to connect to private services.

Manual installation

  1. Clone git repository:

    git clone https://github.com/dashpay/dash-network-deploy.git
  2. Install Ansible (v2.11.4+) and Terraform (v1.0.5+) per instructions provided on the official websites:

  3. Ensure Python netaddr and jmespath package is installed locally

    pip install -U netaddr jmespath
    • 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).
  4. Install pre-requisite Ansible roles

    ansible-galaxy install -r ansible/requirements.yml
  5. Install AWS Command Line Interface

  6. Install Node.JS and dependencies:

    npm install
  7. Install OpenVPN:

    On Linux:

    apt-get install openvpn

    On Mac:

    brew install openvpn

New AWS account setup

If you are running this tool for the first time in a new AWS account, some initial setup needs to be done one time:

note: Please ensure you have the correct REGION and PROFILE setup in your AWS CLI configuration (aws configure) or use the --region and --profile flags with the AWS commands below.

  1. Create Terraform state S3 bucket manually:
aws s3 mb s3://bucket-name-here
  1. Create Terraform state dynamodb lock table manually
aws dynamodb create-table \
  --attribute-definitions AttributeName=LockID,AttributeType=S \
  --table-name tf-lock-table-test \
  --key-schema AttributeName=LockID,KeyType=HASH \
  --billing-mode PROVISIONED \
  --provisioned-throughput ReadCapacityUnits=2,WriteCapacityUnits=2 \
  --table-class STANDARD
  1. Route53 domain creation / delegation
aws route53 create-hosted-zone --name networks.domain.tld --caller-reference 1234567

Please note the values of these, as they will be needed in the network config files.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].