Dash: A Governance and Privacy Coin That’s Surprisingly Easy To Use

Andreas Brekken
Oct 13, 2017 · 15 min read

Dash is a governance coin previously known as DarkCoin. Its followers include Max Keiser and are so hardcore that many dismiss Dash as a pyramid scheme. But did anyone actually try using Dash? Andreas finds out.

Image for post
Image for post

Today I’m reviewing Dash, a governance/privacy focused coin. Dash forked off from Bitcoin with the name DarkCoin and later re-branded to Dash.

TL;DR: Dash is easy to use and has exciting governance/privacy features.

The Dash (DarkCoin) project launched January 2014 and was mostly ignored until the Bitcoin civil war made investors look to governance coins.

The DASH token has a market cap of $2.2 billion (1 DASH = $300). It processes around 5,000 transactions per day.

I usually write these reviews on the weekend. This one is different. The goals are many and time consuming. It took weeks to complete the review. Enjoy!

Image for post
Image for post
Max Keiser has been a Dash supporter for some time.

You can skip to the end of this 2,100 word review by searching this page for the word conclusion.

EDIT: Some HackerNews readers think gifs are used excessively. To remove them, type this in the browser console: document.querySelectorAll(‘img[src$=”gif”]’).forEach(_ => _.parentNode.parentNode.remove())

Goals for the Review

  1. Compile and install Dash from source-code
  2. Download the Dash blockchain
  3. Buy DASH and send it to my node
  4. Install a mobile Dash wallet
  5. Send DASH to the mobile wallet
  6. Buy a product or service with DASH
  7. BONUS: Become a masternode
  8. BONUS: Vote with the masternode for a proposal
  9. BONUS: Create a proposal using the masternode

The Dash Landing Page

The Dash landing page has stock photos of business people and uses a “business blue” color. 😓

Image for post
Image for post

The Shake debit card looks interesting. It probably has low limits and high fees like all other cryptocurrency debit cards. Maybe I’ll look at it later. Or just go straight for the Misconduct Wine.

Compiling and installing Dash from source-code

I scroll to the bottom and find a link to the Github page.

Image for post
Image for post
That is one of the busiest footers I’ve ever seen. I also see a link to “Masternode”. I’ll look at that later.

The Dash Github Project

Image for post
Image for post

I notice a few things here. There are 13,337 commits. This reads as “elite” in leetspeak. I wonder if it’s a joke or accident.

The last commit to Dash was April 5th. That’s 172 days ago. I’ll see if there are other branches with more recent changes.

Image for post
Image for post

I look at the v0.12.2.x branch.

Image for post
Image for post

The Dash v0.12.2.x branch was changed only 4 hours ago! The Dash project must be actively developed.

Downloading the Dash node source-code

I go back to the master (latest stable) branch on Github and look for instructions.

I don’t see any install instructions in the README. I’ll look in the INSTALL file.

Image for post
Image for post
Image for post
Image for post

The INSTALL file asks me to look in the doc folder.

Image for post
Image for post

I check out build-unix.md.

Image for post
Image for post

Easy enough. I’ll use Amazon AWS to create a cloud computer.

Image for post
Image for post

I pick Ubuntu 16.04 as the operating system.

Image for post
Image for post

I choose a computer with 2 CPU cores and 8 GB ram. This will make compiling Dash from source-code and syncing the Dash blockchain fast.

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

My Linux machine is running. I go back to the Dash GitHub page to find a download link.

Image for post
Image for post

I copy the link and clone the project using git.

I realize I forgot to install the dependencies. I’ll do that now.

The dependencies install without any problems. 👍 Next I’ll build the Dash node binaries.

cd dash
./autogen.sh
./configure
make
make install

Building the Dash node from source-code takes around 20 minutes.

OBJECTIVE 1 SUCCESS!

Compile and install Dash from source-code

Image for post
Image for post

I start the Dash node.

The Dash node is downloading the blockchain. I’ll go have lunch. 🍔

Image for post
Image for post

The Dash blockchain is downloaded.

OBJECTIVE 2 SUCCESS!

Download the Dash blockchain

Image for post
Image for post

Buying DASH Tokens

To buy DASH tokens I need a wallet address. I’ll find one with terminal.

I forgot to set the RPC username and password in the Dash config.

Much better. I can now see my Dash address.

I use ShapeShift to buy a small amount of DASH like in my Monero review.

Image for post
Image for post
Image for post
Image for post

I check if the DASH has arrived…

OBJECTIVE 3 SUCCESS!

Buy DASH and send it to my node

Image for post
Image for post

Installing a mobile Dash wallet

The Dash website lists a few different Android wallets.

Image for post
Image for post

Dash Wallet by Hash Engineering has the most features listed. Jaxx is more generic and used mostly for Ethereum tokens.

Image for post
Image for post
Image for post
Image for post
The product id of the Dash Wallet in the Google Play Store still references the previous name, darkcoin.

I’ll have a look at the Dash Wallet’s GitHub while waiting for it to install on my phone.

Image for post
Image for post

Dash Wallet is written in a combination of Java, C, and C++. I’m not familiar with Android development. Perhaps this combination is normal.

The Dash Wallet source-code was last updated two weeks ago. I won’t look further at the code in this review.

Image for post
Image for post
Image for post
Image for post

After a few seconds the Dash Wallet is synced. This is normal for SPV wallets.

OBJECTIVE 4 SUCCESS!

Install a mobile Dash wallet

Image for post
Image for post

Next I’ll send DASH from my node to the mobile wallet. I open the address book to find my Dash receiving address.

Image for post
Image for post
Image for post
Image for post

Back in my Dash node I look through the dash-cli help command list and notice a command called instantsendtoaddress.

Instant Send uses masternodes to prevent double spending. I haven’t read too far into the details.
Image for post
Image for post
Image for post
Image for post

OBJECTIVE 5 SUCCESS!

Send DASH to the mobile wallet

Image for post
Image for post

Buying something with DASH

Image for post
Image for post
Image for post
Image for post

I only have $30 left in my mobile Dash wallet. Stickers it is!

Image for post
Image for post

I find a Dash sticker, add it to the shopping cart, and check out.

Image for post
Image for post
Image for post
Image for post
The checkout is done using a service called CoinPayments which offers payment with a number of alt-coins.

I scan the QR code with my mobile Dash wallet.

Image for post
Image for post
Image for post
Image for post
The amount was not filled from scanning the QR code. I enter it manually.

The DASH is sent. I check back on the website.

Image for post
Image for post

OBJECTIVE 6 SUCCESS!

Buy a product or service with DASH

Image for post
Image for post
I’ve started watching the new Star Trek: Discovery recently. You should check it out!

Becoming a Dash Masternode

Dash has a different incentive system than Bitcoin. Block rewards are split:

  • 45% to miners (proof-of-work)
  • 45% to masternodes (proof-of-stake-ish)
  • 10% to Dash budget proposals

Running a Dash masternode requires having 1,000 DASH and keeping them in one address. Masternodes are used for instant/private transactions and governance. I haven’t read much about instant/private send.

To buy the 1,000 DASH I wrote a program called kraken-minimal-trader. The trader program has a very basic recipe:

  1. Place an order to buy DASH with BTC at 0.25% less than the current best bid price
  2. Wait 3 seconds
  3. Cancel the order
  4. Go to step 1.
kraken-minimal-trader is written in Node.js and weighs in at 96 lines of code

After around a week the program has bought enough DASH to become a masternode.

I don’t want to store the DASH in my Dash node. I look around in the Dash wiki and find a way to use my Trezor.

Image for post
Image for post

The first step is to have exactly 1,000 DASH in a separate account on my Trezor.

Image for post
Image for post
An issue with the kraken-minimal-trader is that it doesn’t have a feature to stop buying when the balance of DASH has reached a set amount. Because of this I ended up with more Dash than I needed.
Image for post
Image for post

Most of the Trezor guide relates to setting up a Dash node with cloud hosting. I already did this for the previous part of the review and skip ahead.

Next I need thedash-masternode-tool (DMT). I’ll run this on my laptop. The tool is written in Python.

Image for post
Image for post

I copy the .app file to my Applications folder and run it.

Image for post
Image for post
Dash MasterNode Tool (DMT), not to be confused with “N,N-Dimethyltryptamine”, one of the most powerful hallucinogens known to man

I test the RPC connection to my Dash node.

Image for post
Image for post

Next I see if DMT can reach my Trezor.

Image for post
Image for post

I copy in the address where the 1,000 DASH collateral is stored.

Image for post
Image for post

I click the the ➡️ and then the Lookup button. DMT finds the transaction hash and output index without me having to look it up.

I click the button to generate a new masternode private key. I guess this allows me to send instructions to my Dash node from my laptop.

I edit dash.conf on my Dash node to add two lines.

Image for post
Image for post

I restart my Dash node. I monitor the status using dashman.

Image for post
Image for post

Maybe I need to wait a little bit.

Image for post
Image for post

I check again after a few minutes.

Image for post
Image for post

The status has changed to MASTERNODE_SYNC_MNW. I don’t know what that means. I press the Start Masternode button.

Image for post
Image for post
I like these ironically large buttons. They make it feel like you’re doing something important when you press.

I confirm that I want to sign a message on my Trezor. Dash Masternode Tool show a message saying a message has been broadcast.

Image for post
Image for post

I wait a few minutes.

Image for post
Image for post

I press the Get Status button in the Dash Masternode Tool.

Image for post
Image for post

I don’t know what WATCHDOG_EXPIRED means. I read that the masternode must remain online to qualify for rewards. Perhaps my node is struggling to sync? I check the resource usage of my Dash node.

Image for post
Image for post

The Dash node is using a lot of CPU resources on the server. Perhaps my node is still syncing. I’ll check back later.

Image for post
Image for post
Image for post
Image for post

The status of my Dash node is now NEW_START_REQUIRED. I restart the node.

Image for post
Image for post

I restart the Dash node and wait a few minutes. dashman status reports everything in green.

Image for post
Image for post

OBJECTIVE 7 SUCCESS!

BONUS: Become a masternode

Making a Dash Budget Proposal

What can I do with a masternode? I read on dashmasternode.org for a few minutes.

Image for post
Image for post

Vote on and create budget proposal is what I want.

Image for post
Image for post

I click the Join DashCentral Now! button.

Image for post
Image for post

Registration seems straight forward.

Image for post
Image for post

I click on Add new masternode and fill in the funding address.

Image for post
Image for post
Image for post
Image for post

I’m stuck. Normally I would end the review at this point. I will make an exception for Dash and ask on a Slack.

Image for post
Image for post

I wait for the Slack invitation to show up in my Gmail inbox.

Image for post
Image for post
Yes, of course I checked my Spam folder.

After 10 minutes the Slack invite email has not arrived.

Image for post
Image for post

I have an idea. Maybe NEW_START_REQUIRED means I have to connect my Trezor and click the giant button again. I try that.

Image for post
Image for post

The new status in Dash Masternode Tool is PRE_ENABLED. I don’t know what that means.

Image for post
Image for post

I wait for another 20 minutes.

Image for post
Image for post

And try again.

Image for post
Image for post

I check to see if it worked.

Image for post
Image for post

Yes! I click set privkeys and fill in my Masternode private key and a passphrase that’s used to encrypt my private key on their server.

I click unverified to verify the ownership of my Dash masternode.

Image for post
Image for post

I can’t follow these exact steps because I use a Trezor. I’ll sign with my Trezor.

Image for post
Image for post

I enter the signature on Dashcentral.

Image for post
Image for post

I click Verify ownership.

Image for post
Image for post

I click My Masternodes.

Image for post
Image for post

I don’t know what disabled means under Block. I click it.

Image for post
Image for post

I follow the instructions to install DashCentral push script on the same server as my Dash node. It’s a crontab job that runs a perl script. I’ve excluded these pretty boring steps.

Back at My Masternodes the status has changed:

Image for post
Image for post

Looks good. I click on Budget” in the menu.

Image for post
Image for post

I don’t really have an opinion on most of these proposals. I scroll down.

Image for post
Image for post

I’ll try to vote “Yes” on boosting the Dash Masternode Tool.

Image for post
Image for post

I click Vote YES and enter my passphrase.

Image for post
Image for post
Image for post
Image for post

My vote is showing as registered.

Image for post
Image for post

OBJECTIVE 8 SUCCESS!

BONUS: Vote with the masternode for a proposal

Image for post
Image for post

Creating a Dash budget proposal

I go to Budget on Dash Central.

Image for post
Image for post

And click Create proposal.

Image for post
Image for post

They recommend making a forum post first. I do that.

Image for post
Image for post

After a few days there’s not much feedback. I don’t know if that’s good or bad. I decide to post my proposal.

I complete the form and click Create Proposal.

Image for post
Image for post

A wallet command is shown.

Image for post
Image for post

I connect to my Dash node and paste in the command:

The output looks like a transaction hash, afe3...889a.

I paste the transaction hash in the form and the screen changes before I can take a screenshot:

Image for post
Image for post

I wait for the fee transaction to confirm.

Image for post
Image for post

I paste the new command:

I click Submit proposal:

Image for post
Image for post

Nothing happens. Perhaps I’m done already?

Image for post
Image for post

I’ll see if my proposal shows up after an hour.

Image for post
Image for post

I check Dash Central’s list of proposals.

Image for post
Image for post

My proposal is there! I click the link.

Image for post
Image for post

And click Claim Proposal Ownership.

Image for post
Image for post

I’ll sign using the address I used to pay the fee so I won’t have to plug in my Trezor again.

I paste in the signature and press Claim.

Image for post
Image for post
Image for post
Image for post

Back in the proposal I’m able to edit the title and body.

Image for post
Image for post

I copy-paste the pre-proposal with some small modifications.

Image for post
Image for post

And press Save.

Image for post
Image for post

The proposal was changed.

Image for post
Image for post

OBJECTIVE 9 SUCCESS!

BONUS: Create a proposal using the masternode

Image for post
Image for post
Image for post
Image for post
You’ll end up here if you searched the page for the “conclusion”

Dash is very different from the other blockchain products I’ve reviewed. Installing and using the Dash software was easy.

The Dash masternode and budget proposal system is interesting. I’d be worried about the Spork centralization, where developers can seemingly change the coin rules, but that’s the case in every other coin anyway.

I’m surprised more people aren’t using Dash. My experiment is over, but I’ll keep my masternode running in the background and see how this thing develops.

Image for post
Image for post
This is the first time I end a review without destroying the machine I was running the node on!

I probably won’t become an active member of the Dash community just yet. I’ll be sure to check in on proposals every now and then.

I’ll keep the masternode running. And the Dash wallet installed on my phone too.

Good night, blockchainers.

About The Author

Andreas Brekken is the CTO/co-founder of Helix Capital and has been obsessed with cryptocurrency since 2011. He was the CTO/co-founder of Justcoin.com and later worked as an engineer with Kraken.com.

Follow me on Medium and Twitter for more reviews.

Are you making a blockchain product and want me to advise or review? I can be bought. Send me a paid message at https://21.co/berken/

Shitcoin.com

There’s a lot of “blockchain” projects out there, but do…

Thanks to lawson baker

Andreas Brekken

Written by

Shitcoin.com

There’s a lot of “blockchain” projects out there, but do they actually work? Andreas tries to install and use them. Also home of the Shitcoin.com newsletter.

Andreas Brekken

Written by

Shitcoin.com

There’s a lot of “blockchain” projects out there, but do they actually work? Andreas tries to install and use them. Also home of the Shitcoin.com newsletter.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store