dashd is the Full Node service for Digital Cash (DASH)
https://github.com/dashpay/dash| Installer Source| Releases (json) (tab)
dashd is the Full Node service for Digital Cash (DASH)
https://github.com/dashpay/dash| Installer Source| Releases (json) (tab)
To update or switch versions, run webi dashd@stable
(or @v0.19
, @beta
,
etc).
These are the files / directories that are created and/or modified with this install:
~/.config/envman/PATH.env
~/.dashcore/dash.conf
~/.dashcore/wallets/
~/.local/bin/dashd-hd-service-install
~/.local/opt/dashcore/
/mnt/<BLK_VOL>/dashcore/
dashcore-utils
will also be installed if not present.
A DASH Full Node syncs and indexes the DASH blockchain and can be used to broadcast transactions (sending money) and retrieve information about transactions, balances, etc. This "Dash Core" implementation is maintained by DCG.
To install as a system service with reasonable defaults,
you can use these convenience scripts provided by Webi:
# USAGE
# dashd-hd-service-install [storage-volume] [testnet]
#
# EXAMPLE
dashd-hd-service-install
sudo mkdir -p /mnt/100gb-vol/
sudo mount /dev/vda1 /mnt/100gb-vol/
dashcore
directorysudo mkdir -p /mnt/100g-vol/dashcore/
sudo chown -R "$(id -u -n):$(id -g -n)" /mnt/100gb-vol/dashcore/
dashd
with the system launcherdashd-hd-service-install
dash-cli getaddresstxids '{
"addresses": ["XchrTJFPGFiror4zjXQRR7XTSN25YtLYhC"],
"start": 0,
"end":1000000000
}'
After it completes the initial sync (about 4 hours),
you can query address information:
# Balances
dash-cli getaddressbalance '{"addresses": ["XchrTJFPGFiror4zjXQRR7XTSN25YtLYhC"]}'
# UTXOs
dash-cli getaddressutxos '{"addresses": ["XpLVjhDd6vNJamtcJXcrpQYA1sE6fmxVDa"]}'
# TXes
dash-cli getaddresstxids '{
"addresses": ["XchrTJFPGFiror4zjXQRR7XTSN25YtLYhC"],
"start": 0,
"end":1000000000
}'
# Broadcast TX
dash-cli -testnet sendrawtransaction 01000000...0c0226b428a488ac00000000
To run in the foreground:
(add -testnet
to run on testnet)
dashd \
-usehd \
-conf="$HOME/.dashcore/dash.conf" \
-settings="$HOME/.dashcore/settings.json" \
-walletdir="$HOME/.dashcore/wallets/" \
-datadir="/mnt/100gb/dashcore/_data/" \
-blocksdir="/mnt/100gb/dashcore/_caches/" \
-addressindex=1 \
-timestampindex=1 \
-txindex=1 \
-spentindex=1
Warning: killing the process with ctrl+c before the first full sync may corrupt the data and require starting over (see below)
150MB for Applications on OS Storage
For mainnet:
For testnet:
dash.conf
You can set options for main
, test
, and regtest
.
If you intend to use the various RPCs you must enable indexes.
txindex=1
addressindex=1
timestampindex=1
spentindex=1
[main]
rpcuser=alice
rpcpassword=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bind=127.0.0.1:9999
rpcbind=127.0.0.1:9998
rpcconnect=127.0.0.1:9998
rpcallowip=127.0.0.1/16
zmqpubrawtx=tcp://127.0.0.1:28332
zmqpubrawtxlock=tcp://127.0.0.1:28332
zmqpubrawchainlock=tcp://127.0.0.1:28332
zmqpubhashchainlock=tcp://127.0.0.1:28332
[test]
rpcuser=alice-test
rpcpassword=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
bind=127.0.0.1:19999
rpcbind=127.0.0.1:19998
rpcconnect=127.0.0.1:19998
rpcallowip=127.0.0.1/16
zmqpubrawtx=tcp://127.0.0.1:18009
zmqpubrawtxlock=tcp://127.0.0.1:18009
zmqpubrawchainlock=tcp://127.0.0.1:18009
zmqpubhashchainlock=tcp://127.0.0.1:18009
See also:
You can make your data much safer by separating it from the caches you may need to delete by setting:
-walletdir=
your money!!-settings=
desktop app settings!-conf=
server settings-datadir=
generic cachesdashd \
-usehd \
-conf="$HOME/.config/dashcore/dash.conf" \
-walletdir="$HOME/.config/dashcore/wallets/" \
-datadir="/mnt/dashcore/dashcore/"
You can use serviceman
:
Linux
serviceman add --name 'dashd' -- \
dashd \
-usehd \
-conf="$HOME/.dashcore/dash.conf" \
-settings="$HOME/.dashcore/settings.json" \
-walletdir="$HOME/.dashcore/wallets/" \
-datadir="/mnt/100gb/dashcore/_data/" \
-blocksdir="/mnt/100gb/dashcore/_caches/"
Mac
serviceman add --name 'dashd' -- \
dashd \
-usehd \
-conf="$HOME/.dashcore/dash.conf" \
-settings="$HOME/.dashcore/settings.json" \
-walletdir="$HOME/.dashcore/wallets/" \
-datadir="/Volumes/100gb/dashcore/_data/" \
-blocksdir="/Volumes/100gb/dashcore/_caches/"
Windows
(be sure modify variables appropriately for cmd.exe
or powershell
)
& serviceman add \
--name dashd \
--force \
-- \
dashd \
-usehd \
-conf="$Env:UserProfile/.dashcore/dash.conf" \
-settings="$Env:UserProfile/.dashcore/settings.json" \
-walletdir="$Env:UserProfile/.dashcore/wallets/" \
-datadir="D:/100gb/dashcore/_data/" \
-blocksdir="D:/100gb/dashcore/_caches/"
If the service crashes during the initial syncing and indexing (such as when using less than 4GB RAM + 4GB Swap) it will not resume (typically).
Instead it will create duplicate new data, and not clean up the old data.
You may need to delete /mnt/
Generally I wouldn't recommend storing money on a Full Node -since it's
primarily used for creating APIs for transactions and validations - but if you
do, please always make sure to use -usehd
and print out your Wallet Phrase as
a failsafe.
In particular, you may find these useful:
dashphrase
for generating
secure Wallet Phrasesdashsight
for inspecting
balances, transactions, etc via API (without downloading the indexes)All of the command line flags and options for the Dash Core Desktop Wallet are documented between these two pages:
The config files dash.conf
(mainly for Full Nodes) and settings.json
(mainly for Desktop Wallets) are documented at: