{"id":70788,"date":"2018-07-16T16:58:31","date_gmt":"2018-07-16T16:58:31","guid":{"rendered":"https:\/\/www.dash.org\/uncategorized\/dash-devnets\/"},"modified":"2021-09-23T15:02:32","modified_gmt":"2021-09-23T15:02:32","slug":"dash-devnets","status":"publish","type":"post","link":"https:\/\/www.dash.org\/blog\/dash-devnets\/","title":{"rendered":"Dash Devnets"},"content":{"rendered":"

Dash developer networks explained<\/p>\n

What are devnets?<\/h2>\n

With the release of Dash Core 12.3, Dash added support for a great new feature \u2014 named devnets. Devnets are developer networks that combine some aspects of testnet<\/a> (the global and public testing network) and some aspects of regtest<\/a> (the local-only regression testing mode that provides controlled block generation). Unlike testnet, multiple independent devnets can be created and coexist without interference. Each one is identified by a name which is hardened into a \u201cdevnet genesis\u201d block that is automatically positioned at height 1. Validation rules ensure that a node from devnet=test1 cannot accept blocks from devnet=test2. This is done by checking the expected devnet genesis block. Additionally, the devnet name is put into the sub-version of the version message so a node connecting to the wrong network will immediately be disconnected.<\/p>\n

Eventually, there will be many public and\/or private devnets that all vary in size and function. Providing the correct devnet name and the seed node of the network will be all that is required to join. An old devnet can be easily dropped and a new one started just by destroying all nodes and recreating them with a new devnet name.<\/p>\n

Why are devnets useful?<\/h2>\n

As you can guess from the description, devnets are primarily useful as a development tool. They provide significantly more flexibility than testnet since they can be created for specific purposes and operated in controlled settings. We expect that devnets will be used in situations that require the ability to do things like test code base \/ protocol changes that are incompatible with mainnet\/testnet, fully control block generation on a live network, and restrict network access to specific parties.<\/p>\n

Examples for this include:<\/p>\n