- Nodes get updated regularly to improve the overall operation of the network, as well as the broader nodes that help power it.
- Dash has introduced numerous update node versions thus far, and 18.1.0 represents a version release bringing new features, various bugfixes and other improvements.
What is a Dash node?
In the Dash ecosystem, there are blockchain nodes and masternodes. Nodes are the miners creating new coins within the Dash network, while a Dash masternode, or full node, performs specialized transactions. These include InstandSend, and PrivateSend, two key features of the Dash network.
A Dash node needs to receive an update to ensure proper network operation and to receive rewards. As such, these Dash nodes play an essential role in the operation, security and overall maintenance of the blockchain, so keeping them updated is essential, and 18.1.0 is an update that contributes numerous changes to the network.
There are numerous changes that were introduced within the DashCore v18.1 update, and we will go over them now.
Dash Core 18.1.0 is a minor version of the Dash Core 18.x.x series bringing new features, various bugfixes and other improvements.
1. BIP70 Support Removed
Support for the BIP70 Payment Protocol has been dropped from Dash Qt. Interacting with BIP70-formatted URIs will return an error message informing them of support removal. The
rootcertificates launch arguments are no longer valid.
The systemd init file (
contrib/init/dashd.service) has been changed to use
/var/lib/dashd as the data directory instead of
~dash/.dash. This change makes Dash Core more consistent with other services, and makes the systemd init config more consistent with existing Upstart and OpenRC configs.
The configuration, PID, and data directories are now completely managed by systemd, which will take care of their creation, permissions, etc.
When using the provided init files under
contrib/init, overriding the
datadir option in
/etc/dash/dash.conf will have no effect. This is because the command line arguments specified in the init files take precedence over the options specified in
The “account” API was deprecated in v18.0 and has been fully removed in v18.1.
4. Build system changes
Peers that misbehave (e.g. send us invalid blocks) are now referred to as discouraged nodes in log output, as they’re not (and weren’t) strictly banned: incoming connections are still allowed from them, but they’re preferred for eviction.
Furthermore, a few additional changes are introduced to how discouraged addresses are treated:
- Discouraging an address does not time out automatically after 24 hours (or the
-bantimesetting). Depending on traffic from other peers, discouragement may time out at an indeterminate time.
- Discouragement is not persisted over restarts.
- There is no method to list discouraged addresses. They are not returned by the
listbannedRPC. That RPC also no longer reports the
"manually added"is the only remaining option.
- Discouragement cannot be removed with the
setban removeRPC command. If you need to remove a discouragement, you can remove all discouragements by stop-starting your node.
- A new
setwalletflagRPC sets/unsets flags for an existing wallet.
sporkRPC call will no longer offer both get (labelled as “basic mode”) and set (labelled as “advanced mode”) functionality.
sporkwill now only offer “basic” functionality. “Advanced” functionality is now exposed through the
generateblockRPC call will mine an array of ordered transactions, defined by hex array
transactionsthat can contain either transaction IDs or a hex-encoded serialized raw transaction and set the coinbase destination defined by the
mockscheduleris a debug RPC call that allows forwarding the scheduler by
delta_time. This RPC call is hidden and will only be functional on mockable chains (i.e. primarily regtest).
delta_timemust be between 0 – 3600.
dumptxoutsetsee bitcoin#16899 and the help text. This RPC is used for UTXO snapshot creation which is a part of the assume utxo project
generatetodescriptorMine blocks immediately to a specified descriptor. See bitcoin#16943
- The wallet’s
generateRPC method has been removed.
generateis only used for testing. The RPC call reaches across multiple subsystems (wallet and mining), so is deprecated to simplify the wallet-node interface. Projects that are using
generatefor testing purposes should transition to using the
generatetoaddresscall, which does not require or use the wallet component. Calling
generatetoaddresswith an address returned by
getnewaddressgives the same functionality as the old
gettxoutsetinfoRPC call now accept one optional argument (
hash_type) that defines the algorithm used for calcluating the UTXO set hash, it will default to
hash_serialized_2unless explicitly specified otherwise.
hash_typewill influence the key that is used to refer to the UTXO set hash.
generatedescriptorRPC call has been introduced to allow mining a set number of blocks, defined by argument
num_blocks, with the coinbase destination set to a descriptor, defined by the
descriptorargument. The optional
maxtriesargument can be used to limit iterations.
- Descriptors with key origin information imported through
importmultiwill have their key origin information stored in the wallet for use with creating PSBTs.
walletcreatefundedpsbtis set to true but the key metadata for a public key has not been updated yet, then that key will have a derivation path as if it were just an independent key (i.e. no derivation path and its master fingerprint is itself)
getblockstatsRPC is faster for fee calculation by using BlockUndo data. Also,
-txindexis no longer required and
getblockstatsworks for all non-pruned blocks.
unloadwalletRPC is now synchronous, meaning that it blocks until the wallet is fully unloaded.
- RPCs which have an
includeWatchingoption now default to
truefor watch-only wallets. Affected RPCs are:
createwalletnow returns a warning if an empty string is used as an encryption password, and does not encrypt the wallet, instead of raising an error. This makes it easier to disable encryption but also specify other options when using the
- The RPC
joinpsbtswill shuffle the order of the inputs and outputs of the resulting joined psbt. Previously inputs and outputs were added in the order that the PSBTs were provided which makes correlating inputs to outputs extremely easy.
importprivkey: new label behavior. Previously,
importprivkeyautomatically added the default empty label (“”) to all addresses associated with the imported private key. Now it defaults to using any existing label for those addresses.
unloadwalletRPCs now accept
load_on_startupoptions to modify the settings list.
- Several RPCs have been updated to include an “avoid_reuse” flag, used to control whether already used addresses should be left out or included in the operation. These include:
sendtoaddress has been changed to enable
avoid_reuse is enabled. The
listunspent RPC has also been updated to now include a “reused” bool, for nodes with “avoid_reuse” enabled.
- In rpc
rescanwas added which allows users to skip or force blockchain rescan. This params defaults to
mnemonicparameter is empty and
Most changes here were introduced through Bitcoin backports.
New cmd-line options:
- RPC Whitelist system. It can give certain RPC users permissions to only some RPC calls. It can be set with two command line arguments (
Removed cmd-line options:
-zapwallettxesstartup option has been removed and its functionality removed from the wallet. This option was originally intended to allow for the fee bumping of transactions that did not signal RBF. This functionality has been superseded with the abandon transaction feature.
Changes in existing cmd-line options:
dash-cli -getinfohas been renamed to
chainand now returns the current network name as defined in BIP70 (main, test, regtest).
- Importing blocks upon startup via the
bootstrap.datfile no longer occurs by default. The file must now be specified with
How to connect to Dash node?
If you are curious how to update a node, you can do so manually, or use a service that does this for you.
NOWNodes enables a connection to a blockchain node, where you will be able to get data of the network’s hashrate, the block difficulty, block height, access to data surrounding wallet addresses, transaction data, balance history tickers list, and other data.
To connect, you will need to navigate to the official NOWNodes website, after which you can enter your email address and click on “GET FREE API KEY.” Afterward, you can visit the official documentation, where you will be greeted by a list of codes and commands to access the network.
If you are curious about the other nodes available, you can find a full node list here, where you will never worry about node update.GET ACCESS TO DASH