{"id":70652,"date":"2021-06-08T16:41:18","date_gmt":"2021-06-08T16:41:18","guid":{"rendered":"https:\/\/www.dash.org\/uncategorized\/introducing-dashmate-the-masternode-setup-tool-for-dash-platform\/"},"modified":"2021-09-29T10:21:29","modified_gmt":"2021-09-29T10:21:29","slug":"introducing-dashmate-the-masternode-setup-tool-for-dash-platform","status":"publish","type":"post","link":"https:\/\/www.dash.org\/blog\/introducing-dashmate-the-masternode-setup-tool-for-dash-platform\/","title":{"rendered":"Introducing Dashmate: the masternode setup tool for Dash Platform"},"content":{"rendered":"

Dash has a long history of innovation<\/a>, and was the first to introduce the concept of incentivized service nodes, or masternodes, to the cryptocurrency space in mid-2014. A number of innovations have since been built on masternodes, including the world\u2019s first DAO, non-custodial CoinJoin, and the deterministic masternode list. This in turn enables the revolutionary BLS signing mechanism that powers both modern InstantSend and ChainLocks, features which are so popular with users that they have been adopted by a number of other projects. With the upcoming release of Dash Platform on mainnet, masternodes will be required to offer a number of additional services to the network, and expose these over DAPI, the world\u2019s first decentralized API. This blog post describes the service architecture, and introduces a new tool to set up Dash masternodes in a containerized environment, taking initial steps towards horizontal scalability.<\/p>\n

Let\u2019s start with a brief history lesson. Dash masternodes have traditionally run on low-cost Linux instances, hosted either on a VPS in a data center or on commodity hardware such as the Raspberry Pi 3 at home. The only requirements are sufficient CPU power, disk space and RAM and a static IP address. As such, early masternodes were installed by manually downloading, installing and configuring Dash Core on Linux through the dash.conf<\/code> file. Soon, installation guides by community members such as Tao of Satoshi popped up, followed by tools such as dashman by moocowmoo or Dash Masternode Zeus by xkcd. These tools typically also offer features to install, monitor and update masternodes.<\/p>\n

While in the past a Dash masternode only needed to run Dash Core and Sentinel, the new Dash masternode stack looks something like this:<\/p>\n

\"\"
Containers, services and ports, oh my!<\/figcaption><\/figure>\n

This is where automation comes in to play. During the development of Dash Platform, DCG platform developers created a tool known as mn-bootstrap as a quick and easy way to set up masternodes on internal development networks. For the past year, we have been working to adapt this tool for testnet and mainnet by adding a CLI to expose the functionality of the tool in a user-friendly way. This blog post announces the tool for public testing, as well as the decision to rename mn-bootstrap<\/code> to dashmate<\/code>. Dashmate is designed around Docker containers, and features automated configuration and startup through a user-friendly command line interface (CLI) written in Node.js. It aims to completely replace the familiar but aging dashman tool, and includes the following noteworthy features:<\/p>\n