diff --git a/.travis.yml b/.travis.yml index 1630c1d02..6cc24facf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ matrix: include: - compiler: ": ARM" env: HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat" - - compiler: ": bitcoind" + - compiler: ": dashd" env: HOST=x86_64-unknown-linux-gnu PACKAGES="bc" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat CPPFLAGS=-DDEBUG_LOCKORDER" - compiler: ": No wallet" env: HOST=x86_64-unknown-linux-gnu DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat" @@ -55,8 +55,8 @@ script: - if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then export CCACHE_READONLY=1; fi - test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh - ./configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) - - make distdir PACKAGE=bitcoin VERSION=$HOST - - cd bitcoin-$HOST + - make distdir PACKAGE=dash VERSION=$HOST + - cd dash-$HOST - ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) - make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false ) - export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib diff --git a/contrib/dash-qt.pro b/contrib/dash-qt.pro index c82e274cb..2cbd48208 100644 --- a/contrib/dash-qt.pro +++ b/contrib/dash-qt.pro @@ -356,7 +356,6 @@ SOURCES += src/activemasternode.cpp \ src/allocators.cpp \ src/amount.cpp \ src/base58.cpp \ - src/bitcoin-tx.cpp \ src/bloom.cpp \ src/chain.cpp \ src/chainparams.cpp \ diff --git a/contrib/bitcoind.bash-completion b/contrib/dashd.bash-completion similarity index 81% rename from contrib/bitcoind.bash-completion rename to contrib/dashd.bash-completion index 37ece2589..11a4dc9e7 100644 --- a/contrib/bitcoind.bash-completion +++ b/contrib/dashd.bash-completion @@ -1,12 +1,12 @@ -# bash programmable completion for bitcoind(1) and bitcoin-cli(1) +# bash programmable completion for dashd(1) and dash-cli(1) # Copyright (c) 2012,2014 Christian von Roques # Distributed under the MIT/X11 software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -have bitcoind && { +have dashd && { -# call $bitcoind for RPC -_bitcoin_rpc() { +# call $dashd for RPC +_dash_rpc() { # determine already specified args necessary for RPC local rpcargs=() for i in ${COMP_LINE}; do @@ -16,23 +16,23 @@ _bitcoin_rpc() { ;; esac done - $bitcoind "${rpcargs[@]}" "$@" + $dashd "${rpcargs[@]}" "$@" } -# Add bitcoin accounts to COMPREPLY -_bitcoin_accounts() { +# Add dash accounts to COMPREPLY +_dash_accounts() { local accounts - accounts=$(_bitcoin_rpc listaccounts | awk '/".*"/ { a=$1; gsub(/"/, "", a); print a}') + accounts=$(_dash_rpc listaccounts | awk '/".*"/ { a=$1; gsub(/"/, "", a); print a}') COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$accounts" -- "$cur" ) ) } -_bitcoind() { +_dashd() { local cur prev words=() cword - local bitcoind + local dashd - # save and use original argument to invoke bitcoind - # bitcoind might not be in $PATH - bitcoind="$1" + # save and use original argument to invoke dashd + # dashd might not be in $PATH + dashd="$1" COMPREPLY=() _get_comp_words_by_ref -n = cur prev words cword @@ -53,7 +53,7 @@ _bitcoind() { if ((cword > 3)); then case ${words[cword-3]} in addmultisigaddress) - _bitcoin_accounts + _dash_accounts return 0 ;; getbalance|gettxout|importaddress|importprivkey|listreceivedbyaccount|listreceivedbyaddress|listsinceblock) @@ -74,7 +74,7 @@ _bitcoind() { return 0 ;; move|setaccount) - _bitcoin_accounts + _dash_accounts return 0 ;; esac @@ -90,7 +90,7 @@ _bitcoind() { return 0 ;; getaccountaddress|getaddressesbyaccount|getbalance|getnewaddress|getreceivedbyaccount|listtransactions|move|sendfrom|sendmany) - _bitcoin_accounts + _dash_accounts return 0 ;; esac @@ -114,12 +114,12 @@ _bitcoind() { # only parse --help if senseful if [[ -z "$cur" || "$cur" =~ ^- ]]; then - helpopts=$($bitcoind --help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) + helpopts=$($dashd --help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) fi # only parse help if senseful if [[ -z "$cur" || "$cur" =~ ^[a-z] ]]; then - commands=$(_bitcoin_rpc help 2>/dev/null | awk '$1 ~ /^[a-z]/ { print $1; }') + commands=$(_dash_rpc help 2>/dev/null | awk '$1 ~ /^[a-z]/ { print $1; }') fi COMPREPLY=( $( compgen -W "$helpopts $commands" -- "$cur" ) ) @@ -133,7 +133,7 @@ _bitcoind() { esac } -complete -F _bitcoind bitcoind bitcoin-cli +complete -F _dashd dashd dash-cli } # Local variables: diff --git a/contrib/debian/manpages/dash-qt.1 b/contrib/debian/manpages/dash-qt.1 index 18f38c95b..dc9381f8a 100644 --- a/contrib/debian/manpages/dash-qt.1 +++ b/contrib/debian/manpages/dash-qt.1 @@ -1,10 +1,10 @@ -.TH BITCOIN-QT "1" "April 2013" "bitcoin-qt 1" +.TH DASH-QT "1" "March 2015" "dash-qt 1" .SH NAME -bitcoin-qt \- peer-to-peer network based digital currency +dash-qt \- peer-to-peer network based digital currency .SH DESCRIPTION .SS "Usage:" .IP -bitcoin\-qt [command\-line options] +dash\-qt [command\-line options] .SH OPTIONS .TP \-? @@ -14,7 +14,7 @@ This help message Specify configuration file (default: dash.conf) .TP \fB\-pid=\fR -Specify pid file (default: bitcoind.pid) +Specify pid file (default: dashd.pid) .TP \fB\-gen\fR Generate coins diff --git a/contrib/debian/manpages/dashd.1 b/contrib/debian/manpages/dashd.1 index 781c18818..b31f82873 100644 --- a/contrib/debian/manpages/dashd.1 +++ b/contrib/debian/manpages/dashd.1 @@ -1,14 +1,14 @@ -.TH BITCOIND "1" "January 2011" "bitcoind 3.19" +.TH DASHD "1" "January 2011" "dashd 3.19" .SH NAME -bitcoind \- peer-to-peer network based digital currency +Dash \- peer-to-peer network based digital currency .SH SYNOPSIS -bitcoin [options] [params] +dashd [options] [params] .TP -bitcoin [options] help \- Get help for a command +dashd [options] help \- Get help for a command .SH DESCRIPTION -This manual page documents the bitcoind program. Bitcoin is a peer-to-peer digital currency. Peer-to-peer (P2P) means that there is no central authority to issue new money or keep track of transactions. Instead, these tasks are managed collectively by the nodes of the network. Advantages: +This manual page documents the dashd program. Dash is a peer-to-peer digital currency. Peer-to-peer (P2P) means that there is no central authority to issue new money or keep track of transactions. Instead, these tasks are managed collectively by the nodes of the network. Advantages: -Bitcoins can be sent easily through the Internet, without having to trust middlemen. Transactions are designed to be irreversible. Be safe from instability caused by fractional reserve banking and central banks. The limited inflation of the Bitcoin system’s money supply is distributed evenly (by CPU power) throughout the network, not monopolized by banks. +Dash can be sent easily through the Internet, without having to trust middlemen. Transactions are designed to be irreversible. Be safe from instability caused by fractional reserve banking and central banks. The limited inflation of the Dash system’s money supply is distributed evenly (by CPU power) throughout the network, not monopolized by banks. .SH OPTIONS .TP @@ -84,14 +84,14 @@ This help message \fBbackupwallet 'destination'\fR Safely copies *wallet.dat* to 'destination', which can be a directory or a path with filename. .TP -\fBgetaccount 'bitcoinaddress'\fR +\fBgetaccount 'dashaddress'\fR Returns the account associated with the given address. .TP -\fBsetaccount 'bitcoinaddress' ['account']\fR +\fBsetaccount 'dashaddress' ['account']\fR Sets the ['account'] associated with the given address. ['account'] may be omitted to remove an address from ['account']. .TP \fBgetaccountaddress 'account'\fR -Returns a new bitcoin address for 'account'. +Returns a new dash address for 'account'. .TP \fBgetaddressesbyaccount 'account'\fR Returns the list of addresses associated with the given 'account'. @@ -112,7 +112,7 @@ Returns the number of connections to other nodes. Returns the proof-of-work difficulty as a multiple of the minimum difficulty. .TP \fBgetgenerate\fR -Returns boolean true if server is trying to generate bitcoins, false otherwise. +Returns boolean true if server is trying to generate DASH, false otherwise. .TP \fBsetgenerate 'generate' ['genproclimit']\fR Generation is limited to ['genproclimit'] processors, \-1 is unlimited. @@ -124,13 +124,13 @@ Returns a recent hashes per second performance measurement while generating. Returns an object containing server information. .TP \fBgetnewaddress 'account'\fR -Returns a new bitcoin address for receiving payments. If 'account' is specified (recommended), it is added to the address book so payments received with the address will be credited to 'account'. +Returns a new dash address for receiving payments. If 'account' is specified (recommended), it is added to the address book so payments received with the address will be credited to 'account'. .TP \fBgetreceivedbyaccount 'account' ['minconf=1']\fR Returns the total amount received by addresses associated with 'account' in transactions with at least ['minconf'] confirmations. .TP -\fBgetreceivedbyaddress 'bitcoinaddress' ['minconf=1']\fR -Returns the total amount received by 'bitcoinaddress' in transactions with at least ['minconf'] confirmations. +\fBgetreceivedbyaddress 'dashaddress' ['minconf=1']\fR +Returns the total amount received by 'dashaddress' in transactions with at least ['minconf'] confirmations. .TP \fBgettransaction 'txid'\fR Returns information about a specific transaction, given hexadecimal transaction ID. @@ -148,7 +148,7 @@ List commands, or get help for a command. .TP \fBlistaccounts ['minconf=1']\fR List accounts and their current balances. - *note: requires bitcoin 0.3.20 or later. + *note: requires dash 0.3.20 or later. .TP \fBlistreceivedbyaccount ['minconf=1'] ['includeempty=false']\fR ['minconf'] is the minimum number of confirmations before payments are included. ['includeempty'] whether to include addresses that haven't received any payments. Returns an array of objects containing: @@ -177,26 +177,26 @@ Returns a list of the last ['count'] transactions for 'account' \- for all accou "message" : message associated with transaction (only for send). "to" : message-to associated with transaction (only for send). - *note: requires bitcoin 0.3.20 or later. + *note: requires dash 0.3.20 or later. .TP \fBmove <'fromaccount'> <'toaccount'> <'amount'> ['minconf=1'] ['comment']\fR Moves funds between accounts. .TP -\fBsendfrom* <'account'> <'bitcoinaddress'> <'amount'> ['minconf=1'] ['comment'] ['comment-to']\fR -Sends amount from account's balance to 'bitcoinaddress'. This method will fail if there is less than amount bitcoins with ['minconf'] confirmations in the account's balance (unless account is the empty-string-named default account; it behaves like the *sendtoaddress* method). Returns transaction ID on success. +\fBsendfrom* <'account'> <'dashaddress'> <'amount'> ['minconf=1'] ['comment'] ['comment-to']\fR +Sends amount from account's balance to 'dashaddress'. This method will fail if there is less than amount DASH with ['minconf'] confirmations in the account's balance (unless account is the empty-string-named default account; it behaves like the *sendtoaddress* method). Returns transaction ID on success. .TP -\fBsendtoaddress 'bitcoinaddress' 'amount' ['comment'] ['comment-to']\fR -Sends amount from the server's available balance to 'bitcoinaddress'. amount is a real and is rounded to the nearest 0.01. Returns transaction id on success. +\fBsendtoaddress 'dashaddress' 'amount' ['comment'] ['comment-to']\fR +Sends amount from the server's available balance to 'dashaddress'. amount is a real and is rounded to the nearest 0.01. Returns transaction id on success. .TP \fBstop\fR -Stops the bitcoin server. +Stops the dash server. .TP -\fBvalidateaddress 'bitcoinaddress'\fR -Checks that 'bitcoinaddress' looks like a proper bitcoin address. Returns an object containing: +\fBvalidateaddress 'dashaddress'\fR +Checks that 'dashaddress' looks like a proper Dash address. Returns an object containing: "isvalid" : true or false. "ismine" : true if the address is in the server's wallet. - "address" : bitcoinaddress. + "address" : dashaddress. *note: ismine and address are only returned if the address is valid. diff --git a/contrib/gitian-descriptors/gitian-osx-signer.yml b/contrib/gitian-descriptors/gitian-osx-signer.yml index 1792f9de3..f3c78be5e 100644 --- a/contrib/gitian-descriptors/gitian-osx-signer.yml +++ b/contrib/gitian-descriptors/gitian-osx-signer.yml @@ -1,5 +1,5 @@ --- -name: "bitcoin-dmg-signer" +name: "dash-dmg-signer" suites: - "precise" architectures: @@ -10,7 +10,7 @@ packages: reference_datetime: "2013-06-01 00:00:00" remotes: [] files: -- "bitcoin-osx-unsigned.tar.gz" +- "dash-osx-unsigned.tar.gz" - "signature.tar.gz" script: | WRAP_DIR=$HOME/wrapped @@ -28,10 +28,10 @@ script: | chmod +x ${WRAP_DIR}/${prog} done - UNSIGNED=bitcoin-osx-unsigned.tar.gz - SIGNED=bitcoin-osx-signed.dmg + UNSIGNED=dash-osx-unsigned.tar.gz + SIGNED=dash-osx-signed.dmg tar -xf ${UNSIGNED} ./detached-sig-apply.sh ${UNSIGNED} signature.tar.gz - ${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "Bitcoin-Qt" -no-pad -r -apple -o uncompressed.dmg signed-app + ${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "Dash-Qt" -no-pad -r -apple -o uncompressed.dmg signed-app ${WRAP_DIR}/dmg dmg uncompressed.dmg ${OUTDIR}/${SIGNED} diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index c09786a56..f8cb34dee 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -1,5 +1,5 @@ --- -name: "bitcoin-osx-0.10" +name: "dash-osx-0.12" enable_cache: true suites: - "precise" @@ -20,8 +20,8 @@ packages: - "libbz2-dev" reference_datetime: "2013-06-01 00:00:00" remotes: -- "url": "https://github.com/bitcoin/bitcoin.git" - "dir": "bitcoin" +- "url": "https://github.com/dashpay/dash.git" + "dir": "dash" files: - "MacOSX10.7.sdk.tar.gz" script: | @@ -68,7 +68,7 @@ script: | done export PATH=${WRAP_DIR}:${PATH} - cd bitcoin + cd dash BASEPREFIX=`pwd`/depends mkdir -p ${BASEPREFIX}/SDKs @@ -83,14 +83,14 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make dist - SOURCEDIST=`echo bitcoin-*.tar.gz` + SOURCEDIST=`echo dash-*.tar.gz` DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST + find dash-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -120,7 +120,7 @@ script: | popd make deploy - ${WRAP_DIR}/dmg dmg Bitcoin-Qt.dmg ${OUTDIR}/${DISTNAME}-osx-unsigned.dmg + ${WRAP_DIR}/dmg dmg Dash-Qt.dmg ${OUTDIR}/${DISTNAME}-osx-unsigned.dmg cd installed find . -name "lib*.la" -delete diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index f1050ce96..fcd43b449 100755 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -65,7 +65,7 @@ script: | done export PATH=${WRAP_DIR}:${PATH} - cd bitcoin + cd dash BASEPREFIX=`pwd`/depends # Build dependencies for each host for i in $HOSTS; do @@ -83,7 +83,7 @@ script: | mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST + find dash-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" diff --git a/contrib/init/README.md b/contrib/init/README.md index d3fa96658..6b8e244a7 100644 --- a/contrib/init/README.md +++ b/contrib/init/README.md @@ -1,9 +1,9 @@ Sample configuration files for: -SystemD: bitcoind.service -Upstart: bitcoind.conf -OpenRC: bitcoind.openrc - bitcoind.openrcconf +SystemD: dashd.service +Upstart: dashd.conf +OpenRC: dashd.openrc + dashd.openrcconf have been made available to assist packagers in creating node packages here. diff --git a/contrib/init/bitcoind.openrcconf b/contrib/init/bitcoind.openrcconf deleted file mode 100644 index d8d7f5833..000000000 --- a/contrib/init/bitcoind.openrcconf +++ /dev/null @@ -1,27 +0,0 @@ -# /etc/conf.d/bitcoind: config file for /etc/init.d/bitcoind - -# Config file location -#BITCOIND_CONFIGFILE="/etc/bitcoin/bitcoin.conf" - -# What directory to write pidfile to? (created and owned by $BITCOIND_USER) -#BITCOIND_PIDDIR="/var/run/bitcoind" - -# What filename to give the pidfile -#BITCOIND_PIDFILE="${BITCOIND_PIDDIR}/bitcoind.pid" - -# Where to write bitcoind data (be mindful that the blockchain is large) -#BITCOIND_DATADIR="/var/lib/bitcoind" - -# User and group to own bitcoind process -#BITCOIND_USER="bitcoin" -#BITCOIND_GROUP="bitcoin" - -# Path to bitcoind executable -#BITCOIND_BIN="/usr/bin/bitcoind" - -# Nice value to run bitcoind under -#BITCOIND_NICE=0 - -# Additional options (avoid -conf and -datadir, use flags above) -BITCOIND_OPTS="-disablewallet" - diff --git a/contrib/init/bitcoind.service b/contrib/init/bitcoind.service deleted file mode 100644 index 9132957c3..000000000 --- a/contrib/init/bitcoind.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Bitcoin's distributed currency daemon -After=network.target - -[Service] -User=bitcoin -Group=bitcoin - -Type=forking -PIDFile=/var/lib/bitcoind/bitcoind.pid -ExecStart=/usr/bin/bitcoind -daemon -pid=/var/lib/bitcoind/bitcoind.pid \ --conf=/etc/bitcoin/bitcoin.conf -datadir=/var/lib/bitcoind -disablewallet - -Restart=always -PrivateTmp=true -TimeoutStopSec=60s -TimeoutStartSec=2s -StartLimitInterval=120s -StartLimitBurst=5 - -[Install] -WantedBy=multi-user.target diff --git a/contrib/init/bitcoind.conf b/contrib/init/dashd.conf similarity index 75% rename from contrib/init/bitcoind.conf rename to contrib/init/dashd.conf index f9554eecd..40b9b9a4f 100644 --- a/contrib/init/bitcoind.conf +++ b/contrib/init/dashd.conf @@ -1,16 +1,16 @@ -description "Bitcoin Core Daemon" +description "Dash Core Daemon" start on runlevel [2345] stop on starting rc RUNLEVEL=[016] -env BITCOIND_BIN="/usr/bin/bitcoind" -env BITCOIND_USER="bitcoin" -env BITCOIND_GROUP="bitcoin" -env BITCOIND_PIDDIR="/var/run/bitcoind" +env BITCOIND_BIN="/usr/bin/dashd" +env BITCOIND_USER="dash" +env BITCOIND_GROUP="dash" +env BITCOIND_PIDDIR="/var/run/dashd" # upstart can't handle variables constructed with other variables -env BITCOIND_PIDFILE="/var/run/bitcoind/bitcoind.pid" -env BITCOIND_CONFIGFILE="/etc/bitcoin/bitcoin.conf" -env BITCOIND_DATADIR="/var/lib/bitcoind" +env BITCOIND_PIDFILE="/var/run/dashd/dashd.pid" +env BITCOIND_CONFIGFILE="/etc/dash/dash.conf" +env BITCOIND_DATADIR="/var/lib/dashd" expect fork @@ -20,12 +20,12 @@ kill timeout 60 pre-start script # this will catch non-existent config files - # bitcoind will check and exit with this very warning, but it can do so + # dashd will check and exit with this very warning, but it can do so # long after forking, leaving upstart to think everything started fine. # since this is a commonly encountered case on install, just check and # warn here. if ! grep -qs '^rpcpassword=' "$BITCOIND_CONFIGFILE" ; then - echo "ERROR: You must set a secure rpcpassword to run bitcoind." + echo "ERROR: You must set a secure rpcpassword to run dashd." echo "The setting must appear in $BITCOIND_CONFIGFILE" echo echo "This password is security critical to securing wallets " @@ -38,7 +38,7 @@ pre-start script echo "It is also recommended that you also set alertnotify so you are " echo "notified of problems:" echo - echo "ie: alertnotify=echo %%s | mail -s \"Bitcoin Alert\"" \ + echo "ie: alertnotify=echo %%s | mail -s \"Dash Alert\"" \ "admin@foo.com" echo exit 1 diff --git a/contrib/init/bitcoind.openrc b/contrib/init/dashd.openrc similarity index 70% rename from contrib/init/bitcoind.openrc rename to contrib/init/dashd.openrc index 1f7758c92..b1b7144d8 100644 --- a/contrib/init/bitcoind.openrc +++ b/contrib/init/dashd.openrc @@ -2,24 +2,24 @@ # backward compatibility for existing gentoo layout # -if [ -d "/var/lib/bitcoin/.bitcoin" ]; then - BITCOIND_DEFAULT_DATADIR="/var/lib/bitcoin/.bitcoin" +if [ -d "/var/lib/dash/.dash" ]; then + BITCOIND_DEFAULT_DATADIR="/var/lib/dash/.dash" else - BITCOIND_DEFAULT_DATADIR="/var/lib/bitcoind" + BITCOIND_DEFAULT_DATADIR="/var/lib/dashd" fi -BITCOIND_CONFIGFILE=${BITCOIND_CONFIGFILE:-/etc/bitcoin/bitcoin.conf} -BITCOIND_PIDDIR=${BITCOIND_PIDDIR:-/var/run/bitcoind} -BITCOIND_PIDFILE=${BITCOIND_PIDFILE:-${BITCOIND_PIDDIR}/bitcoind.pid} +BITCOIND_CONFIGFILE=${BITCOIND_CONFIGFILE:-/etc/dash/dash.conf} +BITCOIND_PIDDIR=${BITCOIND_PIDDIR:-/var/run/dashd} +BITCOIND_PIDFILE=${BITCOIND_PIDFILE:-${BITCOIND_PIDDIR}/dashd.pid} BITCOIND_DATADIR=${BITCOIND_DATADIR:-${BITCOIND_DEFAULT_DATADIR}} -BITCOIND_USER=${BITCOIND_USER:-bitcoin} -BITCOIND_GROUP=${BITCOIND_GROUP:-bitcoin} -BITCOIND_BIN=${BITCOIND_BIN:-/usr/bin/bitcoind} +BITCOIND_USER=${BITCOIND_USER:-dash} +BITCOIND_GROUP=${BITCOIND_GROUP:-dash} +BITCOIND_BIN=${BITCOIND_BIN:-/usr/bin/dashd} -name="Bitcoin Core Daemon" -description="Bitcoin crypto-currency p2p network daemon" +name="Dash Core Daemon" +description="Dash crypto-currency p2p network daemon" -command="/usr/bin/bitcoind" +command="/usr/bin/dashd" command_args="-pid=\"${BITCOIND_PIDFILE}\" \ -conf=\"${BITCOIND_CONFIGFILE}\" \ -datadir=\"${BITCOIND_DATADIR}\" \ @@ -65,7 +65,7 @@ checkconfig() { if ! grep -qs '^rpcpassword=' "${BITCOIND_CONFIGFILE}" ; then eerror "" - eerror "ERROR: You must set a secure rpcpassword to run bitcoind." + eerror "ERROR: You must set a secure rpcpassword to run dashd." eerror "The setting must appear in ${BITCOIND_CONFIGFILE}" eerror "" eerror "This password is security critical to securing wallets " @@ -78,7 +78,7 @@ checkconfig() eerror "It is also recommended that you also set alertnotify so you are " eerror "notified of problems:" eerror "" - eerror "ie: alertnotify=echo %%s | mail -s \"Bitcoin Alert\"" \ + eerror "ie: alertnotify=echo %%s | mail -s \"Dash Alert\"" \ "admin@foo.com" eerror "" return 1 diff --git a/contrib/init/dashd.openrcconf b/contrib/init/dashd.openrcconf new file mode 100644 index 000000000..05f033ae8 --- /dev/null +++ b/contrib/init/dashd.openrcconf @@ -0,0 +1,27 @@ +# /etc/conf.d/dashd: config file for /etc/init.d/dashd + +# Config file location +#BITCOIND_CONFIGFILE="/etc/dash/dash.conf" + +# What directory to write pidfile to? (created and owned by $BITCOIND_USER) +#BITCOIND_PIDDIR="/var/run/dashd" + +# What filename to give the pidfile +#BITCOIND_PIDFILE="${BITCOIND_PIDDIR}/dashd.pid" + +# Where to write dashd data (be mindful that the blockchain is large) +#BITCOIND_DATADIR="/var/lib/dashd" + +# User and group to own dashd process +#BITCOIND_USER="dash" +#BITCOIND_GROUP="dash" + +# Path to dashd executable +#BITCOIND_BIN="/usr/bin/dashd" + +# Nice value to run dashd under +#BITCOIND_NICE=0 + +# Additional options (avoid -conf and -datadir, use flags above) +BITCOIND_OPTS="-disablewallet" + diff --git a/contrib/init/dashd.service b/contrib/init/dashd.service new file mode 100644 index 000000000..732ac647d --- /dev/null +++ b/contrib/init/dashd.service @@ -0,0 +1,22 @@ +[Unit] +Description=Dash's distributed currency daemon +After=network.target + +[Service] +User=dash +Group=dash + +Type=forking +PIDFile=/var/lib/dashd/dashd.pid +ExecStart=/usr/bin/dashd -daemon -pid=/var/lib/dashd/dashd.pid \ +-conf=/etc/dash/dash.conf -datadir=/var/lib/dashd -disablewallet + +Restart=always +PrivateTmp=true +TimeoutStopSec=60s +TimeoutStartSec=2s +StartLimitInterval=120s +StartLimitBurst=5 + +[Install] +WantedBy=multi-user.target diff --git a/contrib/macdeploy/detached-sig-apply.sh b/contrib/macdeploy/detached-sig-apply.sh index 7b3eb1b19..b9c64ef94 100755 --- a/contrib/macdeploy/detached-sig-apply.sh +++ b/contrib/macdeploy/detached-sig-apply.sh @@ -5,7 +5,7 @@ UNSIGNED=$1 SIGNATURE=$2 ARCH=x86_64 ROOTDIR=dist -BUNDLE=${ROOTDIR}/Bitcoin-Qt.app +BUNDLE=${ROOTDIR}/Dash-Qt.app TEMPDIR=signed.temp OUTDIR=signed-app diff --git a/contrib/macdeploy/detached-sig-create.sh b/contrib/macdeploy/detached-sig-create.sh index aff4f08da..200b71ce4 100755 --- a/contrib/macdeploy/detached-sig-create.sh +++ b/contrib/macdeploy/detached-sig-create.sh @@ -2,7 +2,7 @@ set -e ROOTDIR=dist -BUNDLE=${ROOTDIR}/Bitcoin-Qt.app +BUNDLE=${ROOTDIR}/Dash-Qt.app CODESIGN=codesign TEMPDIR=sign.temp TEMPLIST=${TEMPDIR}/signatures.txt diff --git a/doc/release-notes.md b/doc/release-notes.md index e64e78ae1..96b0fbe04 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,117 +1,5 @@ Dash Core tree 0.11.x release notes can be found here: - [v0.11.0](release-notes/release-notes-0.11.0.md) released Jan/15/2015 - [v0.11.1](release-notes/release-notes-0.11.1.md) released Feb/10/2015. -- [v0.11.2](release-notes/release-notes-0.11.2.md) not released yet. - -***TODO*** - -Bitcoin Core version 0.10.1 is now available from: - - https://bitcoin.org/bin/0.10.1/ - -This is a new minor version release, bringing bug fixes and translation -updates. If you are using 0.10.0, it is recommended to upgrade to this -version. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. - -Notable changes -=============== - - -0.10.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect external -behavior, not code moves, refactors or string updates. - -RPC: -- `7f502be` fix crash: createmultisig and addmultisigaddress - -Block (database) and transaction handling: -- `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates -- `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates -- `002c8a2` fix possible block db breakage during re-index - -P2P protocol and network code: -- `78f64ef` don't trickle for whitelisted nodes -- `ca301bf` Reduce fingerprinting through timestamps in 'addr' messages. -- `200f293` Ignore getaddr messages on Outbound connections. -- `d5d8998` Limit message sizes before transfer -- `aeb9279` Better fingerprinting protection for non-main-chain getdatas. - -Validation: -- `d148f62` Acquire CCheckQueue's lock to avoid race condition - -Build system: -- `8752b5c` 0.10 fix for crashes on OSX 10.6 - -Wallet: -- N/A - -GUI: -- `2c08406` some mac specifiy cleanup (memory handling, unnecessary code) -- `81145a6` fix OSX dock icon window reopening -- `786cf72` fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) - -Tests: -- `1117378` add RPC test for InvalidateBlock - -Miscellaneous: -- `c9e022b` Initialization: set Boost path locale in main thread -- `23126a0` Sanitize command strings before logging them. - -Credits -======= - -Thanks to everyone who contributed to this release: - -- Alex Morcos -- Cory Fields -- dexX7 -- fsb4000 -- Gregory Maxwell -- Ivan Pustogarov -- Jonas Schnelli -- Pieter Wuille -- Ruben de Vries -- Suhas Daftuar -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). +- [v0.11.2](release-notes/release-notes-0.11.2.md) released Mar/25/2015. +- [v0.12.0](release-notes/release-notes-0.12.0.md) not released yet. diff --git a/doc/release-notes/release-notes-0.12.0.md b/doc/release-notes/release-notes-0.12.0.md new file mode 100644 index 000000000..c8332b2e1 --- /dev/null +++ b/doc/release-notes/release-notes-0.12.0.md @@ -0,0 +1,60 @@ +*This is a draft!* + +0.12.0 Release notes +==================== + + +Dash Core version 0.11.2 is now available from: + + https://dashpay.io/downloads + +Please report bugs using the issue tracker at github: + + https://github.com/dashpay/dash/issues + + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or +dashd/dash-qt (on Linux). + +Downgrade warning +------------------ + +Because release 0.12.0 and later makes use of headers-first synchronization and +parallel block download (see further), the block files and databases are not +backwards-compatible with pre-0.12 versions of Dash Core or other software: + +* Blocks will be stored on disk out of order (in the order they are +received, really), which makes it incompatible with some tools or +other programs. Reindexing using earlier versions will also not work +anymore as a result of this. + +* The block index database will now hold headers for which no block is +stored on disk, which earlier versions won't support. + +If you want to be able to downgrade smoothly, make a backup of your entire data +directory. Without this your node will need start syncing (or importing from +bootstrap.dat) anew afterwards. It is possible that the data from a completely +synchronised 0.10 node may be usable in older versions as-is, but this is not +supported and may break as soon as the older version attempts to reindex. + +This does not affect wallet forward or backward compatibility. + + +0.12.0 changelog +---------------- + +Bitcoin Core version 0.10.1 + +Credits +-------- + +Thanks to who contributed to this release, at least: + +- *to do ..* + +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/dash/). diff --git a/doc/unit-tests.md b/doc/unit-tests.md index 409c23177..1cc34a8af 100644 --- a/doc/unit-tests.md +++ b/doc/unit-tests.md @@ -6,13 +6,13 @@ and tests weren't explicitly disabled. After configuring, they can be run with 'make check'. -To run the bitcoind tests manually, launch src/test/test_dash . +To run the dashd tests manually, launch src/test/test_dash . -To add more bitcoind tests, add `BOOST_AUTO_TEST_CASE` functions to the existing +To add more dashd tests, add `BOOST_AUTO_TEST_CASE` functions to the existing .cpp files in the test/ directory or add new .cpp files that implement new BOOST_AUTO_TEST_SUITE sections. -To run the bitcoin-qt tests manually, launch src/qt/test/bitcoin-qt_test +To run the dash-qt tests manually, launch src/qt/test/dash-qt_test -To add more bitcoin-qt tests, add them to the `src/qt/test/` directory and +To add more dash-qt tests, add them to the `src/qt/test/` directory and the `src/qt/test/test_main.cpp` file. diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in index d7e7ca4a1..1a9c34038 100644 --- a/share/qt/Info.plist.in +++ b/share/qt/Info.plist.in @@ -32,7 +32,7 @@ Dash-Qt CFBundleIdentifier - org.dashfoundation.Dash-Qt + io.dashpay.Dash-Qt CFBundleURLTypes @@ -40,7 +40,7 @@ CFBundleTypeRole Editor CFBundleURLName - io.dash.DarkcoinPayment + io.dash.DashPayment CFBundleURLSchemes dash diff --git a/share/seeds/generate-seeds.py b/share/seeds/generate-seeds.py index cdd683121..2431ded86 100755 --- a/share/seeds/generate-seeds.py +++ b/share/seeds/generate-seeds.py @@ -117,17 +117,17 @@ def main(): g.write('#ifndef BITCOIN_CHAINPARAMSSEEDS_H\n') g.write('#define BITCOIN_CHAINPARAMSSEEDS_H\n') g.write('/**\n') - g.write(' * List of fixed seed nodes for the bitcoin network\n') + g.write(' * List of fixed seed nodes for the dash network\n') g.write(' * AUTOGENERATED by share/seeds/generate-seeds.py\n') g.write(' *\n') g.write(' * Each line contains a 16-byte IPv6 address and a port.\n') g.write(' * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.\n') g.write(' */\n') with open(os.path.join(indir,'nodes_main.txt'),'r') as f: - process_nodes(g, f, 'pnSeed6_main', 8333) + process_nodes(g, f, 'pnSeed6_main', 9999) g.write('\n') with open(os.path.join(indir,'nodes_test.txt'),'r') as f: - process_nodes(g, f, 'pnSeed6_test', 18333) + process_nodes(g, f, 'pnSeed6_test', 19999) g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n') if __name__ == '__main__': diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp deleted file mode 100644 index c1be1229d..000000000 --- a/src/bitcoin-tx.cpp +++ /dev/null @@ -1,633 +0,0 @@ -// Copyright (c) 2009-2014 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include "base58.h" -#include "clientversion.h" -#include "primitives/block.h" // for MAX_BLOCK_SIZE -#include "primitives/transaction.h" -#include "core_io.h" -#include "coins.h" -#include "keystore.h" -#include "script/script.h" -#include "script/sign.h" -#include "ui_interface.h" // for _(...) -#include "univalue/univalue.h" -#include "util.h" -#include "utilstrencodings.h" -#include "utilmoneystr.h" - -#include - -#include -#include - -using namespace boost::assign; -using namespace std; - -static bool fCreateBlank; -static map registers; -CClientUIInterface uiInterface; - -static bool AppInitRawTx(int argc, char* argv[]) -{ - // - // Parameters - // - ParseParameters(argc, argv); - - // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) - if (!SelectParamsFromCommandLine()) { - fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); - return false; - } - - fCreateBlank = GetBoolArg("-create", false); - - if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help")) - { - // First part of help message is specific to this utility - std::string strUsage = _("Bitcoin Core bitcoin-tx utility version") + " " + FormatFullVersion() + "\n\n" + - _("Usage:") + "\n" + - " bitcoin-tx [options] [commands] " + _("Update hex-encoded bitcoin transaction") + "\n" + - " bitcoin-tx [options] -create [commands] " + _("Create hex-encoded bitcoin transaction") + "\n" + - "\n"; - - fprintf(stdout, "%s", strUsage.c_str()); - - strUsage = _("Options:") + "\n"; - strUsage += " -? " + _("This help message") + "\n"; - strUsage += " -create " + _("Create new, empty TX.") + "\n"; - strUsage += " -json " + _("Select JSON output") + "\n"; - strUsage += " -txid " + _("Output only the hex-encoded transaction id of the resultant transaction.") + "\n"; - strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be solved instantly.") + "\n"; - strUsage += " -testnet " + _("Use the test network") + "\n"; - strUsage += "\n"; - - fprintf(stdout, "%s", strUsage.c_str()); - - - strUsage = _("Commands:") + "\n"; - strUsage += " delin=N " + _("Delete input N from TX") + "\n"; - strUsage += " delout=N " + _("Delete output N from TX") + "\n"; - strUsage += " in=TXID:VOUT " + _("Add input to TX") + "\n"; - strUsage += " locktime=N " + _("Set TX lock time to N") + "\n"; - strUsage += " nversion=N " + _("Set TX version to N") + "\n"; - strUsage += " outaddr=VALUE:ADDRESS " + _("Add address-based output to TX") + "\n"; - strUsage += " outscript=VALUE:SCRIPT " + _("Add raw script output to TX") + "\n"; - strUsage += " sign=SIGHASH-FLAGS " + _("Add zero or more signatures to transaction") + "\n"; - strUsage += " This command requires JSON registers:\n"; - strUsage += " prevtxs=JSON object\n"; - strUsage += " privatekeys=JSON object\n"; - strUsage += " See signrawtransaction docs for format of sighash flags, JSON objects.\n"; - strUsage += "\n"; - fprintf(stdout, "%s", strUsage.c_str()); - - strUsage = _("Register Commands:") + "\n"; - strUsage += " load=NAME:FILENAME " + _("Load JSON file FILENAME into register NAME") + "\n"; - strUsage += " set=NAME:JSON-STRING " + _("Set register NAME to given JSON-STRING") + "\n"; - strUsage += "\n"; - fprintf(stdout, "%s", strUsage.c_str()); - - return false; - } - return true; -} - -static void RegisterSetJson(const string& key, const string& rawJson) -{ - UniValue val; - if (!val.read(rawJson)) { - string strErr = "Cannot parse JSON for key " + key; - throw runtime_error(strErr); - } - - registers[key] = val; -} - -static void RegisterSet(const string& strInput) -{ - // separate NAME:VALUE in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("Register input requires NAME:VALUE"); - - string key = strInput.substr(0, pos); - string valStr = strInput.substr(pos + 1, string::npos); - - RegisterSetJson(key, valStr); -} - -static void RegisterLoad(const string& strInput) -{ - // separate NAME:FILENAME in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("Register load requires NAME:FILENAME"); - - string key = strInput.substr(0, pos); - string filename = strInput.substr(pos + 1, string::npos); - - FILE *f = fopen(filename.c_str(), "r"); - if (!f) { - string strErr = "Cannot open file " + filename; - throw runtime_error(strErr); - } - - // load file chunks into one big buffer - string valStr; - while ((!feof(f)) && (!ferror(f))) { - char buf[4096]; - int bread = fread(buf, 1, sizeof(buf), f); - if (bread <= 0) - break; - - valStr.insert(valStr.size(), buf, bread); - } - - if (ferror(f)) { - string strErr = "Error reading file " + filename; - throw runtime_error(strErr); - } - - fclose(f); - - // evaluate as JSON buffer register - RegisterSetJson(key, valStr); -} - -static void MutateTxVersion(CMutableTransaction& tx, const string& cmdVal) -{ - int64_t newVersion = atoi64(cmdVal); - if (newVersion < 1 || newVersion > CTransaction::CURRENT_VERSION) - throw runtime_error("Invalid TX version requested"); - - tx.nVersion = (int) newVersion; -} - -static void MutateTxLocktime(CMutableTransaction& tx, const string& cmdVal) -{ - int64_t newLocktime = atoi64(cmdVal); - if (newLocktime < 0LL || newLocktime > 0xffffffffLL) - throw runtime_error("Invalid TX locktime requested"); - - tx.nLockTime = (unsigned int) newLocktime; -} - -static void MutateTxAddInput(CMutableTransaction& tx, const string& strInput) -{ - // separate TXID:VOUT in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("TX input missing separator"); - - // extract and validate TXID - string strTxid = strInput.substr(0, pos); - if ((strTxid.size() != 64) || !IsHex(strTxid)) - throw runtime_error("invalid TX input txid"); - uint256 txid(strTxid); - - static const unsigned int minTxOutSz = 9; - static const unsigned int maxVout = MAX_BLOCK_SIZE / minTxOutSz; - - // extract and validate vout - string strVout = strInput.substr(pos + 1, string::npos); - int vout = atoi(strVout); - if ((vout < 0) || (vout > (int)maxVout)) - throw runtime_error("invalid TX input vout"); - - // append to transaction input list - CTxIn txin(txid, vout); - tx.vin.push_back(txin); -} - -static void MutateTxAddOutAddr(CMutableTransaction& tx, const string& strInput) -{ - // separate VALUE:ADDRESS in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("TX output missing separator"); - - // extract and validate VALUE - string strValue = strInput.substr(0, pos); - CAmount value; - if (!ParseMoney(strValue, value)) - throw runtime_error("invalid TX output value"); - - // extract and validate ADDRESS - string strAddr = strInput.substr(pos + 1, string::npos); - CBitcoinAddress addr(strAddr); - if (!addr.IsValid()) - throw runtime_error("invalid TX output address"); - - // build standard output script via GetScriptForDestination() - CScript scriptPubKey = GetScriptForDestination(addr.Get()); - - // construct TxOut, append to transaction output list - CTxOut txout(value, scriptPubKey); - tx.vout.push_back(txout); -} - -static void MutateTxAddOutScript(CMutableTransaction& tx, const string& strInput) -{ - // separate VALUE:SCRIPT in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0)) - throw runtime_error("TX output missing separator"); - - // extract and validate VALUE - string strValue = strInput.substr(0, pos); - CAmount value; - if (!ParseMoney(strValue, value)) - throw runtime_error("invalid TX output value"); - - // extract and validate script - string strScript = strInput.substr(pos + 1, string::npos); - CScript scriptPubKey = ParseScript(strScript); // throws on err - - // construct TxOut, append to transaction output list - CTxOut txout(value, scriptPubKey); - tx.vout.push_back(txout); -} - -static void MutateTxDelInput(CMutableTransaction& tx, const string& strInIdx) -{ - // parse requested deletion index - int inIdx = atoi(strInIdx); - if (inIdx < 0 || inIdx >= (int)tx.vin.size()) { - string strErr = "Invalid TX input index '" + strInIdx + "'"; - throw runtime_error(strErr.c_str()); - } - - // delete input from transaction - tx.vin.erase(tx.vin.begin() + inIdx); -} - -static void MutateTxDelOutput(CMutableTransaction& tx, const string& strOutIdx) -{ - // parse requested deletion index - int outIdx = atoi(strOutIdx); - if (outIdx < 0 || outIdx >= (int)tx.vout.size()) { - string strErr = "Invalid TX output index '" + strOutIdx + "'"; - throw runtime_error(strErr.c_str()); - } - - // delete output from transaction - tx.vout.erase(tx.vout.begin() + outIdx); -} - -static const unsigned int N_SIGHASH_OPTS = 6; -static const struct { - const char *flagStr; - int flags; -} sighashOptions[N_SIGHASH_OPTS] = { - {"ALL", SIGHASH_ALL}, - {"NONE", SIGHASH_NONE}, - {"SINGLE", SIGHASH_SINGLE}, - {"ALL|ANYONECANPAY", SIGHASH_ALL|SIGHASH_ANYONECANPAY}, - {"NONE|ANYONECANPAY", SIGHASH_NONE|SIGHASH_ANYONECANPAY}, - {"SINGLE|ANYONECANPAY", SIGHASH_SINGLE|SIGHASH_ANYONECANPAY}, -}; - -static bool findSighashFlags(int& flags, const string& flagStr) -{ - flags = 0; - - for (unsigned int i = 0; i < N_SIGHASH_OPTS; i++) { - if (flagStr == sighashOptions[i].flagStr) { - flags = sighashOptions[i].flags; - return true; - } - } - - return false; -} - -uint256 ParseHashUO(map& o, string strKey) -{ - if (!o.count(strKey)) - return 0; - return ParseHashUV(o[strKey], strKey); -} - -vector ParseHexUO(map& o, string strKey) -{ - if (!o.count(strKey)) { - vector emptyVec; - return emptyVec; - } - return ParseHexUV(o[strKey], strKey); -} - -static void MutateTxSign(CMutableTransaction& tx, const string& flagStr) -{ - int nHashType = SIGHASH_ALL; - - if (flagStr.size() > 0) - if (!findSighashFlags(nHashType, flagStr)) - throw runtime_error("unknown sighash flag/sign option"); - - vector txVariants; - txVariants.push_back(tx); - - // mergedTx will end up with all the signatures; it - // starts as a clone of the raw tx: - CMutableTransaction mergedTx(txVariants[0]); - bool fComplete = true; - CCoinsView viewDummy; - CCoinsViewCache view(&viewDummy); - - if (!registers.count("privatekeys")) - throw runtime_error("privatekeys register variable must be set."); - bool fGivenKeys = false; - CBasicKeyStore tempKeystore; - UniValue keysObj = registers["privatekeys"]; - fGivenKeys = true; - - for (unsigned int kidx = 0; kidx < keysObj.count(); kidx++) { - if (!keysObj[kidx].isStr()) - throw runtime_error("privatekey not a string"); - CBitcoinSecret vchSecret; - bool fGood = vchSecret.SetString(keysObj[kidx].getValStr()); - if (!fGood) - throw runtime_error("privatekey not valid"); - - CKey key = vchSecret.GetKey(); - tempKeystore.AddKey(key); - } - - // Add previous txouts given in the RPC call: - if (!registers.count("prevtxs")) - throw runtime_error("prevtxs register variable must be set."); - UniValue prevtxsObj = registers["prevtxs"]; - { - for (unsigned int previdx = 0; previdx < prevtxsObj.count(); previdx++) { - UniValue prevOut = prevtxsObj[previdx]; - if (!prevOut.isObject()) - throw runtime_error("expected prevtxs internal object"); - - map types = map_list_of("txid", UniValue::VSTR)("vout",UniValue::VNUM)("scriptPubKey",UniValue::VSTR); - if (!prevOut.checkObject(types)) - throw runtime_error("prevtxs internal object typecheck fail"); - - uint256 txid = ParseHashUV(prevOut["txid"], "txid"); - - int nOut = atoi(prevOut["vout"].getValStr()); - if (nOut < 0) - throw runtime_error("vout must be positive"); - - vector pkData(ParseHexUV(prevOut["scriptPubKey"], "scriptPubKey")); - CScript scriptPubKey(pkData.begin(), pkData.end()); - - { - CCoinsModifier coins = view.ModifyCoins(txid); - if (coins->IsAvailable(nOut) && coins->vout[nOut].scriptPubKey != scriptPubKey) { - string err("Previous output scriptPubKey mismatch:\n"); - err = err + coins->vout[nOut].scriptPubKey.ToString() + "\nvs:\n"+ - scriptPubKey.ToString(); - throw runtime_error(err); - } - if ((unsigned int)nOut >= coins->vout.size()) - coins->vout.resize(nOut+1); - coins->vout[nOut].scriptPubKey = scriptPubKey; - coins->vout[nOut].nValue = 0; // we don't know the actual output value - } - - // if redeemScript given and private keys given, - // add redeemScript to the tempKeystore so it can be signed: - if (fGivenKeys && scriptPubKey.IsPayToScriptHash() && - prevOut.exists("redeemScript")) { - UniValue v = prevOut["redeemScript"]; - vector rsData(ParseHexUV(v, "redeemScript")); - CScript redeemScript(rsData.begin(), rsData.end()); - tempKeystore.AddCScript(redeemScript); - } - } - } - - const CKeyStore& keystore = tempKeystore; - - bool fHashSingle = ((nHashType & ~SIGHASH_ANYONECANPAY) == SIGHASH_SINGLE); - - // Sign what we can: - for (unsigned int i = 0; i < mergedTx.vin.size(); i++) { - CTxIn& txin = mergedTx.vin[i]; - const CCoins* coins = view.AccessCoins(txin.prevout.hash); - if (!coins || !coins->IsAvailable(txin.prevout.n)) { - fComplete = false; - continue; - } - const CScript& prevPubKey = coins->vout[txin.prevout.n].scriptPubKey; - - txin.scriptSig.clear(); - // Only sign SIGHASH_SINGLE if there's a corresponding output: - if (!fHashSingle || (i < mergedTx.vout.size())) - SignSignature(keystore, prevPubKey, mergedTx, i, nHashType); - - // ... and merge in other signatures: - BOOST_FOREACH(const CTransaction& txv, txVariants) { - txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); - } - if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(&mergedTx, i))) - fComplete = false; - } - - if (fComplete) { - // do nothing... for now - // perhaps store this for later optional JSON output - } - - tx = mergedTx; -} - -static void MutateTx(CMutableTransaction& tx, const string& command, - const string& commandVal) -{ - if (command == "nversion") - MutateTxVersion(tx, commandVal); - else if (command == "locktime") - MutateTxLocktime(tx, commandVal); - - else if (command == "delin") - MutateTxDelInput(tx, commandVal); - else if (command == "in") - MutateTxAddInput(tx, commandVal); - - else if (command == "delout") - MutateTxDelOutput(tx, commandVal); - else if (command == "outaddr") - MutateTxAddOutAddr(tx, commandVal); - else if (command == "outscript") - MutateTxAddOutScript(tx, commandVal); - - else if (command == "sign") - MutateTxSign(tx, commandVal); - - else if (command == "load") - RegisterLoad(commandVal); - - else if (command == "set") - RegisterSet(commandVal); - - else - throw runtime_error("unknown command"); -} - -static void OutputTxJSON(const CTransaction& tx) -{ - UniValue entry(UniValue::VOBJ); - TxToUniv(tx, 0, entry); - - string jsonOutput = entry.write(4); - fprintf(stdout, "%s\n", jsonOutput.c_str()); -} - -static void OutputTxHash(const CTransaction& tx) -{ - string strHexHash = tx.GetHash().GetHex(); // the hex-encoded transaction hash (aka the transaction id) - - fprintf(stdout, "%s\n", strHexHash.c_str()); -} - -static void OutputTxHex(const CTransaction& tx) -{ - string strHex = EncodeHexTx(tx); - - fprintf(stdout, "%s\n", strHex.c_str()); -} - -static void OutputTx(const CTransaction& tx) -{ - if (GetBoolArg("-json", false)) - OutputTxJSON(tx); - else if (GetBoolArg("-txid", false)) - OutputTxHash(tx); - else - OutputTxHex(tx); -} - -static string readStdin() -{ - char buf[4096]; - string ret; - - while (!feof(stdin)) { - size_t bread = fread(buf, 1, sizeof(buf), stdin); - ret.append(buf, bread); - if (bread < sizeof(buf)) - break; - } - - if (ferror(stdin)) - throw runtime_error("error reading stdin"); - - boost::algorithm::trim_right(ret); - - return ret; -} - -static int CommandLineRawTx(int argc, char* argv[]) -{ - string strPrint; - int nRet = 0; - try { - // Skip switches; Permit common stdin convention "-" - while (argc > 1 && IsSwitchChar(argv[1][0]) && - (argv[1][1] != 0)) { - argc--; - argv++; - } - - CTransaction txDecodeTmp; - int startArg; - - if (!fCreateBlank) { - // require at least one param - if (argc < 2) - throw runtime_error("too few parameters"); - - // param: hex-encoded bitcoin transaction - string strHexTx(argv[1]); - if (strHexTx == "-") // "-" implies standard input - strHexTx = readStdin(); - - if (!DecodeHexTx(txDecodeTmp, strHexTx)) - throw runtime_error("invalid transaction encoding"); - - startArg = 2; - } else - startArg = 1; - - CMutableTransaction tx(txDecodeTmp); - - for (int i = startArg; i < argc; i++) { - string arg = argv[i]; - string key, value; - size_t eqpos = arg.find('='); - if (eqpos == string::npos) - key = arg; - else { - key = arg.substr(0, eqpos); - value = arg.substr(eqpos + 1); - } - - MutateTx(tx, key, value); - } - - OutputTx(tx); - } - - catch (boost::thread_interrupted) { - throw; - } - catch (std::exception& e) { - strPrint = string("error: ") + e.what(); - nRet = EXIT_FAILURE; - } - catch (...) { - PrintExceptionContinue(NULL, "CommandLineRawTx()"); - throw; - } - - if (strPrint != "") { - fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str()); - } - return nRet; -} - -int main(int argc, char* argv[]) -{ - SetupEnvironment(); - - try { - if(!AppInitRawTx(argc, argv)) - return EXIT_FAILURE; - } - catch (std::exception& e) { - PrintExceptionContinue(&e, "AppInitRawTx()"); - return EXIT_FAILURE; - } catch (...) { - PrintExceptionContinue(NULL, "AppInitRawTx()"); - return EXIT_FAILURE; - } - - int ret = EXIT_FAILURE; - try { - ret = CommandLineRawTx(argc, argv); - } - catch (std::exception& e) { - PrintExceptionContinue(&e, "CommandLineRawTx()"); - } catch (...) { - PrintExceptionContinue(NULL, "CommandLineRawTx()"); - } - return ret; -} diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index eaf3fea1b..71a7176d8 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -9,8 +9,8 @@ #include /** - * CBaseChainParams defines the base parameters (shared between bitcoin-cli and bitcoind) - * of a given instance of the Bitcoin system. + * CBaseChainParams defines the base parameters (shared between dash-cli and dashd) + * of a given instance of the Dash system. */ class CBaseChainParams { diff --git a/src/chainparamsseeds.h b/src/chainparamsseeds.h index 6b6e5103f..eb100e194 100644 --- a/src/chainparamsseeds.h +++ b/src/chainparamsseeds.h @@ -7,6 +7,7 @@ * Each line contains a 16-byte IPv6 address and a port. * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly. */ + // ***TODO*** REGENERATE static SeedSpec6 pnSeed6_main[] = { {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0x21,0xc5,0x6e}, 8333}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0x22,0xb4,0xf5}, 8333}, diff --git a/src/clientversion.cpp b/src/clientversion.cpp index 731bdc7a7..c51c261dd 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -10,10 +10,10 @@ /** * Name of client reported in the 'version' message. Report the same name - * for both bitcoind and bitcoin-core, to make it harder for attackers to + * for both dashd and dash-qt, to make it harder for attackers to * target servers or GUI users specifically. */ -const std::string CLIENT_NAME("Dash"); +const std::string CLIENT_NAME("Dash Core"); /** * Client version number diff --git a/src/dash-cli.cpp b/src/dash-cli.cpp index 45bf84f5a..798741dda 100644 --- a/src/dash-cli.cpp +++ b/src/dash-cli.cpp @@ -71,9 +71,9 @@ static bool AppInitRPC(int argc, char* argv[]) std::string strUsage = _("Dash Core RPC client version") + " " + FormatFullVersion() + "\n"; if (!mapArgs.count("-version")) { strUsage += "\n" + _("Usage:") + "\n" + - " bitcoin-cli [options] [params] " + _("Send command to Dash Core") + "\n" + - " bitcoin-cli [options] help " + _("List commands") + "\n" + - " bitcoin-cli [options] help " + _("Get help for a command") + "\n"; + " dash-cli [options] [params] " + _("Send command to Dash Core") + "\n" + + " dash-cli [options] help " + _("List commands") + "\n" + + " dash-cli [options] help " + _("Get help for a command") + "\n"; strUsage += "\n" + HelpMessageCli(); } diff --git a/src/dash-tx.cpp b/src/dash-tx.cpp index c1be1229d..8e1906048 100644 --- a/src/dash-tx.cpp +++ b/src/dash-tx.cpp @@ -47,10 +47,10 @@ static bool AppInitRawTx(int argc, char* argv[]) if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help")) { // First part of help message is specific to this utility - std::string strUsage = _("Bitcoin Core bitcoin-tx utility version") + " " + FormatFullVersion() + "\n\n" + + std::string strUsage = _("Dash Core dash-tx utility version") + " " + FormatFullVersion() + "\n\n" + _("Usage:") + "\n" + - " bitcoin-tx [options] [commands] " + _("Update hex-encoded bitcoin transaction") + "\n" + - " bitcoin-tx [options] -create [commands] " + _("Create hex-encoded bitcoin transaction") + "\n" + + " dash-tx [options] [commands] " + _("Update hex-encoded dash transaction") + "\n" + + " dash-tx [options] -create [commands] " + _("Create hex-encoded dash transaction") + "\n" + "\n"; fprintf(stdout, "%s", strUsage.c_str()); @@ -555,7 +555,7 @@ static int CommandLineRawTx(int argc, char* argv[]) if (argc < 2) throw runtime_error("too few parameters"); - // param: hex-encoded bitcoin transaction + // param: hex-encoded dash transaction string strHexTx(argv[1]); if (strHexTx == "-") // "-" implies standard input strHexTx = readStdin(); diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 89cbeb62e..b2f400582 100755 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -357,7 +357,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) showHelpMessageAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Command-line options"), this); showHelpMessageAction->setMenuRole(QAction::NoRole); - showHelpMessageAction->setStatusTip(tr("Show the Bitcoin Core help message to get a list with possible Dash command-line options")); + showHelpMessageAction->setStatusTip(tr("Show the Dash Core help message to get a list with possible Dash command-line options")); connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked())); @@ -804,7 +804,7 @@ void BitcoinGUI::setNumBlocks(int count) void BitcoinGUI::message(const QString &title, const QString &message, unsigned int style, bool *ret) { - QString strTitle = tr("Dash"); // default title + QString strTitle = tr("Dash Core"); // default title // Default to information icon int nMBoxIcon = QMessageBox::Information; int nNotifyIcon = Notificator::Information; diff --git a/src/qt/dash.cpp b/src/qt/dash.cpp index 21cb308e9..1df30d261 100644 --- a/src/qt/dash.cpp +++ b/src/qt/dash.cpp @@ -593,7 +593,7 @@ int main(int argc, char *argv[]) /// 7a. parse masternode.conf string strErr; if(!masternodeConfig.read(strErr)) { - QMessageBox::critical(0, QObject::tr("Dash"), + QMessageBox::critical(0, QObject::tr("Dash Core"), QObject::tr("Error reading masternode configuration file: %1").arg(strErr.c_str())); return false; } diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui index 6e22d37c3..2b0f90a91 100644 --- a/src/qt/forms/receivecoinsdialog.ui +++ b/src/qt/forms/receivecoinsdialog.ui @@ -48,7 +48,7 @@ - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. &Message: @@ -71,7 +71,7 @@ - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index acb106c3f..84d4e4a8d 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -904,7 +904,7 @@ - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. @@ -917,7 +917,7 @@ true - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. (read the tooltip) diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 260a46a7d..205193ebf 100755 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -29,7 +29,7 @@ class QUrl; class QWidget; QT_END_NAMESPACE -/** Utility functions used by the Bitcoin Qt UI. +/** Utility functions used by the Dash Qt UI. */ namespace GUIUtil { @@ -37,14 +37,14 @@ namespace GUIUtil QString dateTimeStr(const QDateTime &datetime); QString dateTimeStr(qint64 nTime); - // Render Bitcoin addresses in monospace font + // Render Dash addresses in monospace font QFont bitcoinAddressFont(); // Set up widgets for address and amounts void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent); void setupAmountWidget(QLineEdit *widget, QWidget *parent); - // Parse "bitcoin:" URI into recipient object, return true on successful parsing + // Parse "dash:" URI into recipient object, return true on successful parsing bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out); bool parseBitcoinURI(QString uri, SendCoinsRecipient *out); QString formatBitcoinURI(const SendCoinsRecipient &info); diff --git a/src/qt/macnotificationhandler.mm b/src/qt/macnotificationhandler.mm index aa50a0d9f..0a342d98a 100644 --- a/src/qt/macnotificationhandler.mm +++ b/src/qt/macnotificationhandler.mm @@ -13,7 +13,7 @@ - (NSString *)__bundleIdentifier { if (self == [NSBundle mainBundle]) { - return @"org.bitcoinfoundation.Bitcoin-Qt"; + return @"io.dashpay.Dash-Qt"; } else { return [self __bundleIdentifier]; } diff --git a/src/qt/paymentserver.h b/src/qt/paymentserver.h index e1305b943..f17491db3 100644 --- a/src/qt/paymentserver.h +++ b/src/qt/paymentserver.h @@ -6,7 +6,7 @@ #define BITCOIN_QT_PAYMENTSERVER_H // This class handles payment requests from clicking on -// bitcoin: URIs +// dash: URIs // // This is somewhat tricky, because we have to deal with // the situation where the user clicks on a link during diff --git a/src/qt/recentrequeststablemodel.h b/src/qt/recentrequeststablemodel.h index ec6a49070..c678a2de8 100644 --- a/src/qt/recentrequeststablemodel.h +++ b/src/qt/recentrequeststablemodel.h @@ -53,7 +53,7 @@ private: Qt::SortOrder order; }; -/** Model for list of recently generated payment requests / bitcoin: URIs. +/** Model for list of recently generated payment requests / dash: URIs. * Part of wallet model. */ class RecentRequestsTableModel: public QAbstractTableModel diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp index 90c0819eb..ab932efbb 100644 --- a/src/qt/utilitydialog.cpp +++ b/src/qt/utilitydialog.cpp @@ -65,7 +65,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : } else { setWindowTitle(tr("Command-line options")); QString header = tr("Usage:") + "\n" + - " bitcoin-qt [" + tr("command-line options") + "] " + "\n"; + " dash-qt [" + tr("command-line options") + "] " + "\n"; QString coreOptions = QString::fromStdString(HelpMessage(HMM_BITCOIN_QT)); diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 92f09f86b..2bbb74a0b 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -305,7 +305,7 @@ WalletModel::SendCoinsReturn WalletModel::prepareTransaction(WalletModelTransact return TransactionCreationFailed; } - // reject insane fee > 0.1 bitcoin + // reject insane fee > 0.1 DASH if (nFeeRequired > 10000000) return InsaneFee; } diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index 869ac3bc4..1171965f1 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -168,7 +168,7 @@ Value importaddress(const Array& params, bool fHelp) std::vector data(ParseHex(params[0].get_str())); script = CScript(data.begin(), data.end()); } else { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address or script"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address or script"); } string strLabel = ""; diff --git a/src/test/test_dash.cpp b/src/test/test_dash.cpp index c5972c1e4..521131d5d 100644 --- a/src/test/test_dash.cpp +++ b/src/test/test_dash.cpp @@ -2,7 +2,7 @@ // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#define BOOST_TEST_MODULE Bitcoin Test Suite +#define BOOST_TEST_MODULE Dash Test Suite #include "main.h" #include "random.h" diff --git a/src/timedata.cpp b/src/timedata.cpp index 59f7778db..fe638c52e 100644 --- a/src/timedata.cpp +++ b/src/timedata.cpp @@ -97,7 +97,7 @@ void AddTimeData(const CNetAddr& ip, int64_t nTime) if (!fMatch) { fDone = true; - string strMessage = _("Warning: Please check that your computer's date and time are correct! If your clock is wrong Bitcoin Core will not work properly."); + string strMessage = _("Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly."); strMiscWarning = strMessage; LogPrintf("*** %s\n", strMessage); uiInterface.ThreadSafeMessageBox(strMessage, "", CClientUIInterface::MSG_WARNING);