diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 55cebc008f5aa..34e71ca137c51 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,8 +1,12 @@ - @@ -13,7 +17,7 @@ If the node is "stuck" during sync or giving "block checksum mismatch" errors, p - + diff --git a/COPYING b/COPYING index 2333ffddd2125..b6d8fa7ff83b7 100644 --- a/COPYING +++ b/COPYING @@ -2,7 +2,7 @@ The MIT License (MIT) Copyright (c) 2009-2018 The Bitcoin Core developers Copyright (c) 2009-2018 Bitcoin Developers -Copyright (c) 2018 The XPChain Core Developers +Copyright (c) 2018-2019 The XPChain Core Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Dockerfile b/Dockerfile index ba55ee1693084..520ee466bdab4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ COPY . /usr/src/xpchain WORKDIR /usr/src/xpchain RUN \ ./autogen.sh && \ - ./configure --without-gui && \ + ./configure --without-gui --disable-tests --disable-bench && \ make -j$(nproc) && \ make install && \ make clean @@ -82,7 +82,6 @@ RUN \ # Copy build xpchaind (and other tools) COPY --from=build \ - /usr/local/bin/bench_bitcoin /usr/local/bin/test_bitcoin \ /usr/local/bin/xpchain-cli /usr/local/bin/xpchain-tx /usr/local/bin/xpchaind \ /usr/local/bin/ diff --git a/configure.ac b/configure.ac index 06a8e9109d15e..884030b6bd3fa 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 17) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 2) +define(_CLIENT_VERSION_BUILD, 3) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/contrib/devtools/gen-manpages.sh b/contrib/devtools/gen-manpages.sh index b5de5a395f10d..fafd6a7501fdb 100755 --- a/contrib/devtools/gen-manpages.sh +++ b/contrib/devtools/gen-manpages.sh @@ -7,26 +7,26 @@ BUILDDIR=${BUILDDIR:-$TOPDIR} BINDIR=${BINDIR:-$BUILDDIR/src} MANDIR=${MANDIR:-$TOPDIR/doc/man} -BITCOIND=${BITCOIND:-$BINDIR/bitcoind} -BITCOINCLI=${BITCOINCLI:-$BINDIR/bitcoin-cli} -BITCOINTX=${BITCOINTX:-$BINDIR/bitcoin-tx} -BITCOINQT=${BITCOINQT:-$BINDIR/qt/bitcoin-qt} +XPCHAIND=${XPCHAIND:-$BINDIR/xpchaind} +XPCHAINCLI=${XPCHAINCLI:-$BINDIR/xpchain-cli} +XPCHAINTX=${XPCHAINTX:-$BINDIR/xpchain-tx} +XPCHAINQT=${XPCHAINQT:-$BINDIR/qt/xpchain-qt} -[ ! -x $BITCOIND ] && echo "$BITCOIND not found or not executable." && exit 1 +[ ! -x $XPCHAIND ] && echo "$XPCHAIND not found or not executable." && exit 1 # The autodetected version git tag can screw up manpage output a little bit -BTCVER=($($BITCOINCLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }')) +XPCVER=($($XPCHAINCLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }')) # Create a footer file with copyright content. -# This gets autodetected fine for bitcoind if --version-string is not set, -# but has different outcomes for bitcoin-qt and bitcoin-cli. +# This gets autodetected fine for xpchaind if --version-string is not set, +# but has different outcomes for xpchain-qt and xpchain-cli. echo "[COPYRIGHT]" > footer.h2m -$BITCOIND --version | sed -n '1!p' >> footer.h2m +$XPCHAIND --version | sed -n '1!p' >> footer.h2m -for cmd in $BITCOIND $BITCOINCLI $BITCOINTX $BITCOINQT; do +for cmd in $XPCHAIND $XPCHAINCLI $XPCHAINTX $XPCHAINQT; do cmdname="${cmd##*/}" - help2man -N --version-string=${BTCVER[0]} --include=footer.h2m -o ${MANDIR}/${cmdname}.1 ${cmd} - sed -i "s/\\\-${BTCVER[1]}//g" ${MANDIR}/${cmdname}.1 + help2man -N --version-string=${XPCVER[0]} --include=footer.h2m -o ${MANDIR}/${cmdname}.1 ${cmd} + sed -i "s/\\\-${XPCVER[1]}//g" ${MANDIR}/${cmdname}.1 done rm -f footer.h2m diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am index 8e2f945a720f5..a685813d3f99e 100644 --- a/doc/man/Makefile.am +++ b/doc/man/Makefile.am @@ -1,13 +1,13 @@ dist_man1_MANS= if BUILD_XPCHAIND - dist_man1_MANS+=bitcoind.1 + dist_man1_MANS+=xpchaind.1 endif if ENABLE_QT - dist_man1_MANS+=bitcoin-qt.1 + dist_man1_MANS+=xpchain-qt.1 endif if BUILD_BITCOIN_UTILS - dist_man1_MANS+=bitcoin-cli.1 bitcoin-tx.1 + dist_man1_MANS+=xpchain-cli.1 xpchain-tx.1 endif diff --git a/doc/man/bitcoin-cli.1 b/doc/man/xpchain-cli.1 similarity index 79% rename from doc/man/bitcoin-cli.1 rename to doc/man/xpchain-cli.1 index 68cabed4d32a5..6b3435c97eb23 100644 --- a/doc/man/bitcoin-cli.1 +++ b/doc/man/xpchain-cli.1 @@ -1,21 +1,21 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-CLI "1" "August 2018" "bitcoin-cli v0.17.0.0" "User Commands" +.TH XPCHAIN-CLI "1" "March 2019" "xpchain-cli v0.17.0.3" "User Commands" .SH NAME -bitcoin-cli \- manual page for bitcoin-cli v0.17.0.0 +xpchain-cli \- manual page for xpchain-cli v0.17.0.3 .SH SYNOPSIS -.B bitcoin-cli -[\fI\,options\/\fR] \fI\, \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR +.B xpchain-cli +[\fI\,options\/\fR] \fI\, \/\fR[\fI\,params\/\fR] \fI\,Send command to XPChain Core\/\fR .br -.B bitcoin-cli -[\fI\,options\/\fR] \fI\,-named \/\fR[\fI\,name=value\/\fR]... \fI\,Send command to Bitcoin Core (with named arguments)\/\fR +.B xpchain-cli +[\fI\,options\/\fR] \fI\,-named \/\fR[\fI\,name=value\/\fR]... \fI\,Send command to XPChain Core (with named arguments)\/\fR .br -.B bitcoin-cli +.B xpchain-cli [\fI\,options\/\fR] \fI\,help List commands\/\fR .br -.B bitcoin-cli +.B xpchain-cli [\fI\,options\/\fR] \fI\,help Get help for a command\/\fR .SH DESCRIPTION -Bitcoin Core RPC client version v0.17.0.0 +XPChain Core RPC client version v0.17.0.3 .SH OPTIONS .HP \-? @@ -25,7 +25,7 @@ This help message \fB\-conf=\fR .IP Specify configuration file. Relative paths will be prefixed by datadir -location. (default: bitcoin.conf) +location. (default: xpchain.conf) .HP \fB\-datadir=\fR .IP @@ -76,7 +76,7 @@ Wait for RPC server to start \fB\-rpcwallet=\fR .IP Send RPC for non\-default wallet on RPC server (needs to exactly match -corresponding \fB\-wallet\fR option passed to bitcoind) +corresponding \fB\-wallet\fR option passed to xpchaind) .HP \fB\-stdin\fR .IP @@ -101,11 +101,12 @@ Chain selection options: .IP Use the test chain .SH COPYRIGHT -Copyright (C) 2009-2018 The Bitcoin Core developers +Copyright (C) 2018-2019 The XPChain Core developers +Copyright (C) 2009-2019 The Bitcoin Core developers -Please contribute if you find Bitcoin Core useful. Visit - for further information about the software. -The source code is available from . +Please contribute if you find XPChain Core useful. Visit + for further information about the software. +The source code is available from . This is experimental software. Distributed under the MIT software license, see the accompanying file COPYING diff --git a/doc/man/bitcoin-qt.1 b/doc/man/xpchain-qt.1 similarity index 91% rename from doc/man/bitcoin-qt.1 rename to doc/man/xpchain-qt.1 index 8752da60e5785..33bad8f747955 100644 --- a/doc/man/bitcoin-qt.1 +++ b/doc/man/xpchain-qt.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-QT "1" "August 2018" "bitcoin-qt v0.17.0.0" "User Commands" +.TH XPCHAIN-QT "1" "March 2019" "xpchain-qt v0.17.0.3" "User Commands" .SH NAME -bitcoin-qt \- manual page for bitcoin-qt v0.17.0.0 +xpchain-qt \- manual page for xpchain-qt v0.17.0.3 .SH SYNOPSIS -.B bitcoin-qt +.B xpchain-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Bitcoin Core version v0.17.0.0 (64\-bit) +XPChain Core version v0.17.0.3 (64\-bit) .SH OPTIONS .HP \-? @@ -23,9 +23,9 @@ long fork (%s in cmd is replaced by message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8, +0000000000000000000000000000000000000000000000000000000000000000, testnet: -0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75) +0000000000000000000000000000000000000000000000000000000000000000) .HP \fB\-blocknotify=\fR .IP @@ -44,7 +44,7 @@ Specify blocks directory (default: /blocks) \fB\-conf=\fR .IP Specify configuration file. Relative paths will be prefixed by datadir -location. (default: bitcoin.conf) +location. (default: xpchain.conf) .HP \fB\-daemon\fR .IP @@ -97,7 +97,7 @@ Whether to save the mempool on shutdown and load on restart (default: 1) \fB\-pid=\fR .IP Specify pid file. Relative paths will be prefixed by a net\-specific -datadir location. (default: bitcoind.pid) +datadir location. (default: xpchaind.pid) .HP \fB\-prune=\fR .IP @@ -294,7 +294,7 @@ Wallet options: \fB\-addresstype\fR .IP What type of addresses to use ("legacy", "p2sh\-segwit", or "bech32", -default: "p2sh\-segwit") +default: "bech32") .HP \fB\-avoidpartialspends\fR .IP @@ -317,16 +317,16 @@ Do not load the wallet and disable wallet RPC calls .HP \fB\-discardfee=\fR .IP -The fee rate (in BTC/kB) that indicates your tolerance for discarding -change by adding it to the fee (default: 0.0001). Note: An output +The fee rate (in XPC/kB) that indicates your tolerance for discarding +change by adding it to the fee (default: 1.00). Note: An output is discarded if it is dust at this rate, but we will always discard up to the dust relay fee and a discard fee above that is limited by the fee estimate for the longest target .HP \fB\-fallbackfee=\fR .IP -A fee rate (in BTC/kB) that will be used when fee estimation has -insufficient data (default: 0.0002) +A fee rate (in XPC/kB) that will be used when fee estimation has +insufficient data (default: 2.00) .HP \fB\-keypool=\fR .IP @@ -334,12 +334,12 @@ Set key pool size to (default: 1000) .HP \fB\-mintxfee=\fR .IP -Fees (in BTC/kB) smaller than this are considered zero fee for -transaction creation (default: 0.00001) +Fees (in XPC/kB) smaller than this are considered zero fee for +transaction creation (default: 0.10) .HP \fB\-paytxfee=\fR .IP -Fee (in BTC/kB) to add to transactions you send (default: 0.00) +Fee (in XPC/kB) to add to transactions you send (default: 0.00) .HP \fB\-rescan\fR .IP @@ -445,9 +445,9 @@ Prepend debug output with timestamp (default: 1) .HP \fB\-maxtxfee=\fR .IP -Maximum total fees (in BTC) to use in a single wallet transaction or raw +Maximum total fees (in XPC) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions -(default: 0.10) +(default: 100.00) .HP \fB\-printtoconsole\fR .IP @@ -490,8 +490,8 @@ Enable transaction replacement in the memory pool (default: 1) .HP \fB\-minrelaytxfee=\fR .IP -Fees (in BTC/kB) smaller than this are considered zero fee for relaying, -mining and transaction creation (default: 0.00001) +Fees (in XPC/kB) smaller than this are considered zero fee for relaying, +mining and transaction creation (default: 0.10) .HP \fB\-whitelistforcerelay\fR .IP @@ -511,8 +511,8 @@ Set maximum BIP141 block weight (default: 3996000) .HP \fB\-blockmintxfee=\fR .IP -Set lowest fee rate (in BTC/kB) for transactions to be included in block -creation. (default: 0.00001) +Set lowest fee rate (in XPC/kB) for transactions to be included in block +creation. (default: 0.10) .PP RPC server options: .HP @@ -601,12 +601,20 @@ Set SSL root certificates for payment request (default: \fB\-system\-\fR) \fB\-splash\fR .IP Show splash screen on startup (default: 1) +.PP +Minting Options: +.HP +\fB\-minting\fR +.IP +Whether to mint blocks when the wallet is not locked (0 = no, default: +1) .SH COPYRIGHT -Copyright (C) 2009-2018 The Bitcoin Core developers +Copyright (C) 2018-2019 The XPChain Core developers +Copyright (C) 2009-2019 The Bitcoin Core developers -Please contribute if you find Bitcoin Core useful. Visit - for further information about the software. -The source code is available from . +Please contribute if you find XPChain Core useful. Visit + for further information about the software. +The source code is available from . This is experimental software. Distributed under the MIT software license, see the accompanying file COPYING diff --git a/doc/man/bitcoin-tx.1 b/doc/man/xpchain-tx.1 similarity index 81% rename from doc/man/bitcoin-tx.1 rename to doc/man/xpchain-tx.1 index 1020a61b53dd6..5c25ec859e20c 100644 --- a/doc/man/bitcoin-tx.1 +++ b/doc/man/xpchain-tx.1 @@ -1,15 +1,15 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIN-TX "1" "August 2018" "bitcoin-tx v0.17.0.0" "User Commands" +.TH XPCHAIN-TX "1" "March 2019" "xpchain-tx v0.17.0.3" "User Commands" .SH NAME -bitcoin-tx \- manual page for bitcoin-tx v0.17.0.0 +xpchain-tx \- manual page for xpchain-tx v0.17.0.3 .SH SYNOPSIS -.B bitcoin-tx -[\fI\,options\/\fR] \fI\, \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR +.B xpchain-tx +[\fI\,options\/\fR] \fI\, \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded xpchain transaction\/\fR .br -.B bitcoin-tx -[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR +.B xpchain-tx +[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded xpchain transaction\/\fR .SH DESCRIPTION -Bitcoin Core bitcoin\-tx utility version v0.17.0.0 +XPChain Core xpchain\-tx utility version v0.17.0.3 .SH OPTIONS .HP \-? @@ -105,11 +105,12 @@ set=NAME:JSON\-STRING .IP Set register NAME to given JSON\-STRING .SH COPYRIGHT -Copyright (C) 2009-2018 The Bitcoin Core developers +Copyright (C) 2018-2019 The XPChain Core developers +Copyright (C) 2009-2019 The Bitcoin Core developers -Please contribute if you find Bitcoin Core useful. Visit - for further information about the software. -The source code is available from . +Please contribute if you find XPChain Core useful. Visit + for further information about the software. +The source code is available from . This is experimental software. Distributed under the MIT software license, see the accompanying file COPYING diff --git a/doc/man/bitcoind.1 b/doc/man/xpchaind.1 similarity index 90% rename from doc/man/bitcoind.1 rename to doc/man/xpchaind.1 index bcdf5855f7793..7f2358e0374bc 100644 --- a/doc/man/bitcoind.1 +++ b/doc/man/xpchaind.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6. -.TH BITCOIND "1" "August 2018" "bitcoind v0.17.0.0" "User Commands" +.TH XPCHAIND "1" "March 2019" "xpchaind v0.17.0.3" "User Commands" .SH NAME -bitcoind \- manual page for bitcoind v0.17.0.0 +xpchaind \- manual page for xpchaind v0.17.0.3 .SH SYNOPSIS -.B bitcoind -[\fI\,options\/\fR] \fI\,Start Bitcoin Core Daemon\/\fR +.B xpchaind +[\fI\,options\/\fR] \fI\,Start XPChain Core Daemon\/\fR .SH DESCRIPTION -Bitcoin Core Daemon version v0.17.0.0 +XPChain Core Daemon version v0.17.0.3 .SH OPTIONS .HP \-? @@ -23,9 +23,9 @@ long fork (%s in cmd is replaced by message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8, +0000000000000000000000000000000000000000000000000000000000000000, testnet: -0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75) +0000000000000000000000000000000000000000000000000000000000000000) .HP \fB\-blocknotify=\fR .IP @@ -44,7 +44,7 @@ Specify blocks directory (default: /blocks) \fB\-conf=\fR .IP Specify configuration file. Relative paths will be prefixed by datadir -location. (default: bitcoin.conf) +location. (default: xpchain.conf) .HP \fB\-daemon\fR .IP @@ -97,7 +97,7 @@ Whether to save the mempool on shutdown and load on restart (default: 1) \fB\-pid=\fR .IP Specify pid file. Relative paths will be prefixed by a net\-specific -datadir location. (default: bitcoind.pid) +datadir location. (default: xpchaind.pid) .HP \fB\-prune=\fR .IP @@ -294,7 +294,7 @@ Wallet options: \fB\-addresstype\fR .IP What type of addresses to use ("legacy", "p2sh\-segwit", or "bech32", -default: "p2sh\-segwit") +default: "bech32") .HP \fB\-avoidpartialspends\fR .IP @@ -317,16 +317,16 @@ Do not load the wallet and disable wallet RPC calls .HP \fB\-discardfee=\fR .IP -The fee rate (in BTC/kB) that indicates your tolerance for discarding -change by adding it to the fee (default: 0.0001). Note: An output +The fee rate (in XPC/kB) that indicates your tolerance for discarding +change by adding it to the fee (default: 1.00). Note: An output is discarded if it is dust at this rate, but we will always discard up to the dust relay fee and a discard fee above that is limited by the fee estimate for the longest target .HP \fB\-fallbackfee=\fR .IP -A fee rate (in BTC/kB) that will be used when fee estimation has -insufficient data (default: 0.0002) +A fee rate (in XPC/kB) that will be used when fee estimation has +insufficient data (default: 2.00) .HP \fB\-keypool=\fR .IP @@ -334,12 +334,12 @@ Set key pool size to (default: 1000) .HP \fB\-mintxfee=\fR .IP -Fees (in BTC/kB) smaller than this are considered zero fee for -transaction creation (default: 0.00001) +Fees (in XPC/kB) smaller than this are considered zero fee for +transaction creation (default: 0.10) .HP \fB\-paytxfee=\fR .IP -Fee (in BTC/kB) to add to transactions you send (default: 0.00) +Fee (in XPC/kB) to add to transactions you send (default: 0.00) .HP \fB\-rescan\fR .IP @@ -445,9 +445,9 @@ Prepend debug output with timestamp (default: 1) .HP \fB\-maxtxfee=\fR .IP -Maximum total fees (in BTC) to use in a single wallet transaction or raw +Maximum total fees (in XPC) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions -(default: 0.10) +(default: 100.00) .HP \fB\-printtoconsole\fR .IP @@ -490,8 +490,8 @@ Enable transaction replacement in the memory pool (default: 1) .HP \fB\-minrelaytxfee=\fR .IP -Fees (in BTC/kB) smaller than this are considered zero fee for relaying, -mining and transaction creation (default: 0.00001) +Fees (in XPC/kB) smaller than this are considered zero fee for relaying, +mining and transaction creation (default: 0.10) .HP \fB\-whitelistforcerelay\fR .IP @@ -511,8 +511,8 @@ Set maximum BIP141 block weight (default: 3996000) .HP \fB\-blockmintxfee=\fR .IP -Set lowest fee rate (in BTC/kB) for transactions to be included in block -creation. (default: 0.00001) +Set lowest fee rate (in XPC/kB) for transactions to be included in block +creation. (default: 0.10) .PP RPC server options: .HP @@ -575,12 +575,20 @@ Username for JSON\-RPC connections \fB\-server\fR .IP Accept command line and JSON\-RPC commands +.PP +Minting Options: +.HP +\fB\-minting\fR +.IP +Whether to mint blocks when the wallet is not locked (0 = no, default: +1) .SH COPYRIGHT -Copyright (C) 2009-2018 The Bitcoin Core developers +Copyright (C) 2018-2019 The XPChain Core developers +Copyright (C) 2009-2019 The Bitcoin Core developers -Please contribute if you find Bitcoin Core useful. Visit - for further information about the software. -The source code is available from . +Please contribute if you find XPChain Core useful. Visit + for further information about the software. +The source code is available from . This is experimental software. Distributed under the MIT software license, see the accompanying file COPYING diff --git a/doc/release-notes.md b/doc/release-notes.md index 123f7857af908..d41fdb16ece98 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -3,46 +3,21 @@ release-notes at release time) XPChain Core version *version* is now available from: - + -This is a new major version release, including new features, various bugfixes -and performance improvements, as well as updated translations. +This is a new minor version release, including various bugfixes +and performance improvements. Please report bugs using the issue tracker at GitHub: -To receive security and update notifications, please subscribe to: - - - 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/XPChain-Qt` (on Mac) -or `xpchaind`/`xpchain-qt` (on Linux). - -The first time you run version 0.15.0, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading -directly from 0.7.x and earlier without redownloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -The chainstate database for this release is not compatible with previous -releases, so if you run 0.15 and then decide to switch back to any -older version, you will need to run the old release with the `-reindex-chainstate` -option to rebuild the chainstate data structures in the old format. - -If your node has pruning enabled, this will entail re-downloading and -processing the entire blockchain. +installer (on Windows) or just copy over `/Applications/XPChain-Qt` (on Mac). Compatibility ============== @@ -53,220 +28,33 @@ the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not suppo XPChain Core should also work on most other Unix-like systems but is not frequently tested on them. -From 0.17.0 onwards macOS <10.10 is no longer supported. 0.17.0 is built using Qt 5.9.x, which doesn't -support versions of macOS older than 10.10. - Notable changes =============== -Changed command-line options ----------------------------- - -- `-includeconf=` can be used to include additional configuration files. - Only works inside the `bitcoin.conf` file, not inside included files or from - command-line. Multiple files may be included. Can be disabled from command- - line via `-noincludeconf`. Note that multi-argument commands like - `-includeconf` will override preceding `-noincludeconf`, i.e. - - noincludeconf=1 - includeconf=relative.conf - - as bitcoin.conf will still include `relative.conf`. - -GUI changes ------------ - -- Block storage can be limited under Preferences, in the Main tab. Undoing this setting requires downloading the full blockchain again. This mode is incompatible with -txindex and -rescan. - -RPC changes ------------- - -### Low-level changes - -- The `createrawtransaction` RPC will now accept an array or dictionary (kept for compatibility) for the `outputs` parameter. This means the order of transaction outputs can be specified by the client. -- The `fundrawtransaction` RPC will reject the previously deprecated `reserveChangeKey` option. -- `sendmany` now shuffles outputs to improve privacy, so any previously expected behavior with regards to output ordering can no longer be relied upon. -- The new RPC `testmempoolaccept` can be used to test acceptance of a transaction to the mempool without adding it. -- JSON transaction decomposition now includes a `weight` field which provides - the transaction's exact weight. This is included in REST /rest/tx/ and - /rest/block/ endpoints when in json mode. This is also included in `getblock` - (with verbosity=2), `listsinceblock`, `listtransactions`, and - `getrawtransaction` RPC commands. -- New `fees` field introduced in `getrawmempool`, `getmempoolancestors`, `getmempooldescendants` and - `getmempoolentry` when verbosity is set to `true` with sub-fields `ancestor`, `base`, `modified` - and `descendant` denominated in BTC. This new field deprecates previous fee fields, such as - `fee`, `modifiedfee`, `ancestorfee` and `descendantfee`. -- The new RPC `getzmqnotifications` returns information about active ZMQ - notifications. - -External wallet files ---------------------- - -The `-wallet=` option now accepts full paths instead of requiring wallets -to be located in the -walletdir directory. - -Newly created wallet format ---------------------------- - -If `-wallet=` is specified with a path that does not exist, it will now -create a wallet directory at the specified location (containing a wallet.dat -data file, a db.log file, and database/log.?????????? files) instead of just -creating a data file at the path and storing log files in the parent -directory. This should make backing up wallets more straightforward than -before because the specified wallet path can just be directly archived without -having to look in the parent directory for transaction log files. - -For backwards compatibility, wallet paths that are names of existing data files -in the `-walletdir` directory will continue to be accepted and interpreted the -same as before. - -Dynamic loading and creation of wallets ---------------------------------------- +EXAMPLE +------- -Previously, wallets could only be loaded or created at startup, by specifying `-wallet` parameters on the command line or in the bitcoin.conf file. It is now possible to load, create and unload wallets dynamically at runtime: +example item -- Existing wallets can be loaded by calling the `loadwallet` RPC. The wallet can be specified as file/directory basename (which must be located in the `walletdir` directory), or as an absolute path to a file/directory. -- New wallets can be created (and loaded) by calling the `createwallet` RPC. The provided name must not match a wallet file in the `walletdir` directory or the name of a wallet that is currently loaded. -- Loaded wallets can be unloaded by calling the `unloadwallet` RPC. -This feature is currently only available through the RPC interface. +XPChain *version* change log +------------------ -Coin selection --------------- -- A new `-avoidpartialspends` flag has been added (default=false). If enabled, the wallet will try to spend UTXO's that point at the same destination - together. This is a privacy increase, as there will no longer be cases where a wallet will inadvertently spend only parts of the coins sent to - the same address (note that if someone were to send coins to that address after it was used, those coins will still be included in future - coin selections). +### Consensus -Configuration sections for testnet and regtest ----------------------------------------------- +### Mining/Staking -It is now possible for a single configuration file to set different -options for different networks. This is done by using sections or by -prefixing the option with the network, such as: +### P2P - main.uacomment=bitcoin - test.uacomment=bitcoin-testnet - regtest.uacomment=regtest - [main] - mempoolsize=300 - [test] - mempoolsize=100 - [regtest] - mempoolsize=20 +### GUI -The `addnode=`, `connect=`, `port=`, `bind=`, `rpcport=`, `rpcbind=` -and `wallet=` options will only apply to mainnet when specified in the -configuration file, unless a network is specified. +### RPC -'label' and 'account' APIs for wallet -------------------------------------- - -A new 'label' API has been introduced for the wallet. This is intended as a -replacement for the deprecated 'account' API. The 'account' can continue to -be used in V0.17 by starting bitcoind with the '-deprecatedrpc=accounts' -argument, and will be fully removed in V0.18. - -The label RPC methods mirror the account functionality, with the following functional differences: - -- Labels can be set on any address, not just receiving addresses. This functionality was previously only available through the GUI. -- Labels can be deleted by reassigning all addresses using the `setlabel` RPC method. -- There isn't support for sending transactions _from_ a label, or for determining which label a transaction was sent from. -- Labels do not have a balance. - -Here are the changes to RPC methods: - -| Deprecated Method | New Method | Notes | -| :---------------------- | :-------------------- | :-----------| -| `getaccount` | `getaddressinfo` | `getaddressinfo` returns a json object with address information instead of just the name of the account as a string. | -| `getaccountaddress` | n/a | There is no replacement for `getaccountaddress` since labels do not have an associated receive address. | -| `getaddressesbyaccount` | `getaddressesbylabel` | `getaddressesbylabel` returns a json object with the addresses as keys, instead of a list of strings. | -| `getreceivedbyaccount` | `getreceivedbylabel` | _no change in behavior_ | -| `listaccounts` | `listlabels` | `listlabels` does not return a balance or accept `minconf` and `watchonly` arguments. | -| `listreceivedbyaccount` | `listreceivedbylabel` | Both methods return new `label` fields, along with `account` fields for backward compatibility. | -| `move` | n/a | _no replacement_ | -| `sendfrom` | n/a | _no replacement_ | -| `setaccount` | `setlabel` | Both methods now:
  • allow assigning labels to any address, instead of raising an error if the address is not receiving address.
  • delete the previous label associated with an address when the final address using that label is reassigned to a different label, instead of making an implicit `getaccountaddress` call to ensure the previous label still has a receiving address. | - -| Changed Method | Notes | -| :--------------------- | :------ | -| `addmultisigaddress` | Renamed `account` named parameter to `label`. Still accepts `account` for backward compatibility if running with '-deprecatedrpc=accounts'. | -| `getnewaddress` | Renamed `account` named parameter to `label`. Still accepts `account` for backward compatibility. if running with '-deprecatedrpc=accounts' | -| `listunspent` | Returns new `label` fields. `account` field will be returned for backward compatibility if running with '-deprecatedrpc=accounts' | -| `sendmany` | The `account` named parameter has been renamed to `dummy`. If provided, the `dummy` parameter must be set to the empty string, unless running with the `-deprecatedrpc=accounts` argument (in which case functionality is unchanged). | -| `listtransactions` | The `account` named parameter has been renamed to `dummy`. If provided, the `dummy` parameter must be set to the string `*`, unless running with the `-deprecatedrpc=accounts` argument (in which case functionality is unchanged). | -| `getbalance` | `account`, `minconf` and `include_watchonly` parameters are deprecated, and can only be used if running with '-deprecatedrpc=accounts' | - -Low-level RPC changes ---------------------- - -- When bitcoin is not started with any `-wallet=` options, the name of - the default wallet returned by `getwalletinfo` and `listwallets` RPCs is - now the empty string `""` instead of `"wallet.dat"`. If bitcoin is started - with any `-wallet=` options, there is no change in behavior, and the - name of any wallet is just its `` string. -- Passing an empty string (`""`) as the `address_type` parameter to - `getnewaddress`, `getrawchangeaddress`, `addmultisigaddress`, - `fundrawtransaction` RPCs is now an error. Previously, this would fall back - to using the default address type. It is still possible to pass null or leave - the parameter unset to use the default address type. - -- Bare multisig outputs to our keys are no longer automatically treated as - incoming payments. As this feature was only available for multisig outputs for - which you had all private keys in your wallet, there was generally no use for - them compared to single-key schemes. Furthermore, no address format for such - outputs is defined, and wallet software can't easily send to it. These outputs - will no longer show up in `listtransactions`, `listunspent`, or contribute to - your balance, unless they are explicitly watched (using `importaddress` or - `importmulti` with hex script argument). `signrawtransaction*` also still - works for them. - -- The `getwalletinfo` RPC method now returns an `hdseedid` value, which is always the same as the incorrectly-named `hdmasterkeyid` value. `hdmasterkeyid` will be removed in V0.18. -- The `getaddressinfo` RPC method now returns an `hdseedid` value, which is always the same as the incorrectly-named `hdmasterkeyid` value. `hdmasterkeyid` will be removed in V0.18. - -Other API changes ------------------ - -- The `inactivehdmaster` property in the `dumpwallet` output has been corrected to `inactivehdseed` - -### Logging - -- The log timestamp format is now ISO 8601 (e.g. "2018-02-28T12:34:56Z"). - -- When running bitcoind with `-debug` but without `-daemon`, logging to stdout - is now the default behavior. Setting `-printtoconsole=1` no longer implicitly - disables logging to debug.log. Instead, logging to file can be explicitly disabled - by setting `-debuglogfile=0`. - -Transaction index changes -------------------------- - -The transaction index is now built separately from the main node procedure, -meaning the `-txindex` flag can be toggled without a full reindex. If bitcoind -is run with `-txindex` on a node that is already partially or fully synced -without one, the transaction index will be built in the background and become -available once caught up. When switching from running `-txindex` to running -without the flag, the transaction index database will *not* be deleted -automatically, meaning it could be turned back on at a later time without a full -resync. - -Miner block size removed ------------------------- - -The `-blockmaxsize` option for miners to limit their blocks' sizes was -deprecated in V0.15.1, and has now been removed. Miners should use the -`-blockmaxweight` option if they want to limit the weight of their blocks' -weights. - -Python Support --------------- - -Support for Python 2 has been discontinued for all test files and tools. +### Miscellaneous Credits ======= Thanks to everyone who directly contributed to this release: - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). +As well as everyone that reported bugs & issues through Discord etc. diff --git a/doc/xpchain-release-notes/xpchain-release-notes-0.17.0-3.md b/doc/xpchain-release-notes/xpchain-release-notes-0.17.0-3.md new file mode 100644 index 0000000000000..6003175762251 --- /dev/null +++ b/doc/xpchain-release-notes/xpchain-release-notes-0.17.0-3.md @@ -0,0 +1,118 @@ +XPChain Core version 0.17.0-3 is now available from: + + + +This is a new minor version release, including various bugfixes +and performance improvements. + +Please report bugs using the issue tracker at GitHub: + + + +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/XPChain-Qt` (on Mac). + +Compatibility +============== + +XPChain Core is extensively tested on multiple operating systems using +the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not supported). + +XPChain Core should also work on most other Unix-like systems but is not +frequently tested on them. + +Notable changes +=============== + +Denial-of-Service vulnerability +------------------------------- + +A denial-of-service vulnerability (CVE-2018-17144) exploitable by miners +has been discovered. IT IS STRONGLY RECOMMENDED to upgrade XPChain Core to +0.17.0-3 immediately. + +This bugfix will be enabled by a soft fork (`check_dup_txin`) managed using +BIP9 versionbits. The version bit is bit 3, and nodes will begin tracking +which blocks signal support for the bugfix at the beginning of the first +*bitcoin-ic* retarget period after the bugfix's start date of 1 April 2019. +If 95% of blocks with in a 20,160-block *bitcoin-ic* retarget period +(approx. two weeks) signal support for the bugfix, the soft fork will be locked in. +After another 20,160 blocks, the bugfix will be enabled. + +Block signature addition soft fork +---------------------------------- + +Apart from `check_dup_txin` soft fork, an additional soft fork (`block signature addition`), +tracked on bit 2 of version bit, will be activated. The soft fork will add and check the +signature of block to its coinbase tx, for preventing manipulation of blockchain. + +Note that after activation, older clients will **be unable to mint coins** because they +generate a block incompatible to this change. + +Bad block rejection +------------------- + +Your wallet wrongly accepted invalid blocks to some consensus rules and then it crashed. +Now the wallet rejects them properly, so the crash will never happen. + +No more unnecessary minting +--------------------------- + +The wallet doesn't begin minting before finishing to download blocks from other nodes, +which prevents the wallet from generating invalid blocks that will be rejected. + +GUI changes +----------- + + - Better performance on minting tab by transaction nofitication service, + even when the wallet holds a lot of UTXOs. + - “Unlock Wallet for Minting Only” menu item gets properly unchecked when you cancel entering passphrase. + +XPChain 0.17.0-3 change log +------------------ + +### Consensus +- #70 `775b417` Consensus: Change consensus.nStakeMinAge (mban259) +- #72 `d89ec2a` Consensus: Reject bad block (mban259) +- #78 `f6d4f63` Consensus: Improve check coinstake (mban259) +- #81 `995ab88` Consensus: Add more checks for duplicated txIns (mban259) +- #82 `5e9e3b3` Consensus:Fix kernel (mban259) +- #84 `cf4540f` Consensus: Undo IsDestinationSame (mban259) + +### Mining/Staking +- #62 `e779cc3` minting: check block signature (mban259) +- #79 `66a3bad` Mining: Add IsInitialBlockDownload to BitcoinMinter (mban259) + +### P2P +- #73 `03c46e6` Misc: Fix UPnP identifier (serisia) + +### GUI +- #65 `bff1496` Qt: Fix problem when cancel unlock (serisia) +- #68 `9d91f40` Qt: Fix startup settings (serisia) +- #69 `b4b914d` Qt: mintingtab implove (serisia) + +### RPC +- #74 `a1ee4c9` RPC/REST/ZMQ: Fix binary name (serisia) +- #75 `3fdbe02` RPC/REST/ZMQ: Change minAge value's default in listmintings (serisia) + +### Miscellaneous +- #66 `05a3898` Remove bench_bitcoin and test_bitcoin from Docker image (moochannel) +- #67 `6d4baa9` Scripts and tools: Make gen-manpages.sh workable for XPChain (MaySoMusician) +- #71 `d83e155` Misc: Rename thread-name from bitcoin to xpchain (serisia) +- #76 `c23e167` Trivial: rewrite ISSUE_TEMPLATE.md for XPChain (MaySoMusician) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- mban259 +- moochannel +- serisia +- MaySoMusician + +As well as everyone that reported bugs & issues through Discord etc. diff --git a/share/setup.nsi.in b/share/setup.nsi.in index af48089589842..76690fe2b9203 100644 --- a/share/setup.nsi.in +++ b/share/setup.nsi.in @@ -49,7 +49,7 @@ Var StartMenuGroup !insertmacro MUI_LANGUAGE English # Installer attributes -OutFile @abs_top_srcdir@/@PACKAGE_TARNAME@-${VERSION}-win@WINDOWS_BITS@-setup.exe +OutFile @abs_top_srcdir@/@PACKAGE_TARNAME@-${VERSION}-@CLIENT_VERSION_BUILD@-win@WINDOWS_BITS@-setup.exe !if "@WINDOWS_BITS@" == "64" InstallDir $PROGRAMFILES64\XPChain !else diff --git a/src/chainparams.cpp b/src/chainparams.cpp index c6ecb9c200659..c492e2bdfe08f 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -101,6 +101,15 @@ class CMainParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE; consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; + // Deployment of Check dup Txin + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].bit = 3; + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].nStartTime = 1554076800; // April 1, 2019 + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].nTimeout = 1585699200; + // Block Signature addition + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].bit = 2; + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].nStartTime = 1554076800; // April 1, 2019; + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].nTimeout = 1585699200; + // The best chain should have at least this much work. consensus.nMinimumChainWork = uint256S("0x00"); @@ -154,7 +163,8 @@ class CMainParams : public CChainParams { checkpointData = { { - { 10275, uint256S("0x000000005a940193bddee51f6c649d3db5d14086201e856b0c8049f625e8e6b7")}, + { 10275, uint256S("0x000000005a940193bddee51f6c649d3db5d14086201e856b0c8049f625e8e6b7") }, + { 173800, uint256S("0xf85c0d954a11ad61aa1ac267a1c307d429b0fd610c4712964c31babf3caad2fe") }, } }; @@ -203,6 +213,15 @@ class CTestNetParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE; consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; + // Deployment of Check dup Txin + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].bit = 3; + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].nStartTime = 1554076800; // April 1, 2019 + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].nTimeout = 1585699200; + // Block Signature addition + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].bit = 2; + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].nStartTime = 1554076800; // April 1, 2019; + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].nTimeout = 1585699200; + // The best chain should have at least this much work. consensus.nMinimumChainWork = uint256S("0x00"); @@ -293,6 +312,12 @@ class CRegTestParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].bit = 1; consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE; consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].bit = 3; + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE; + consensus.vDeployments[Consensus::DEPLOYMENT_CHECK_DUP_TXIN].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].bit = 2; + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE; + consensus.vDeployments[Consensus::BLOCK_SIGNATURE_ADDITION].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; // The best chain should have at least this much work. consensus.nMinimumChainWork = uint256S("0x00"); @@ -302,7 +327,7 @@ class CRegTestParams : public CChainParams { consensus.nSwitchHeight = 1680; - consensus.nStakeMinAge = 60 * 60 * 24; + consensus.nStakeMinAge = 10; consensus.nStakeMaxAge = 60 * 60 * 24 * 100; pchMessageStart[0] = 0xfc; diff --git a/src/consensus/params.h b/src/consensus/params.h index 1f1c8235e8575..a82a67adc8f59 100644 --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -18,7 +18,10 @@ enum DeploymentPos DEPLOYMENT_TESTDUMMY, DEPLOYMENT_CSV, // Deployment of BIP68, BIP112, and BIP113. DEPLOYMENT_SEGWIT, // Deployment of BIP141, BIP143, and BIP147. + BLOCK_SIGNATURE_ADDITION, // NOTE: Also add new deployments to VersionBitsDeploymentInfo in versionbits.cpp + + DEPLOYMENT_CHECK_DUP_TXIN, MAX_VERSION_BITS_DEPLOYMENTS }; diff --git a/src/httpserver.cpp b/src/httpserver.cpp index 8962fe6a42ae4..d722adee152a3 100644 --- a/src/httpserver.cpp +++ b/src/httpserver.cpp @@ -281,7 +281,7 @@ static void http_reject_request_cb(struct evhttp_request* req, void*) /** Event dispatcher thread */ static bool ThreadHTTP(struct event_base* base) { - RenameThread("bitcoin-http"); + RenameThread("xpchain-http"); LogPrint(BCLog::HTTP, "Entering http event loop\n"); event_base_dispatch(base); // Event loop will be interrupted by InterruptHTTPServer() @@ -330,7 +330,7 @@ static bool HTTPBindAddresses(struct evhttp* http) /** Simple wrapper to set thread name and run work queue */ static void HTTPWorkQueueRun(WorkQueue* queue) { - RenameThread("bitcoin-httpworker"); + RenameThread("xpchain-httpworker"); queue->Run(); } diff --git a/src/init.cpp b/src/init.cpp index 4b386748040a5..d1ed7ef960c16 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -196,7 +196,7 @@ void Shutdown() /// for example if the data directory was found to be locked. /// Be sure that anything that writes files or flushes caches only does this if the respective /// module was initialized. - RenameThread("bitcoin-shutoff"); + RenameThread("xpchain-shutoff"); mempool.AddTransactionsUpdated(1); StopHTTPRPC(); @@ -635,7 +635,7 @@ static void CleanupBlockRevFiles() static void ThreadImport(std::vector vImportFiles) { const CChainParams& chainparams = Params(); - RenameThread("bitcoin-loadblk"); + RenameThread("xpchain-loadblk"); ScheduleBatchPriority(); { diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp index 0e8852301ca8f..6eb060e04c537 100644 --- a/src/interfaces/wallet.cpp +++ b/src/interfaces/wallet.cpp @@ -211,6 +211,11 @@ class WalletImpl : public Wallet LOCK2(cs_main, m_wallet.cs_wallet); return m_wallet.IsLockedCoin(output.hash, output.n); } + bool isSpent(const uint256& hash, unsigned int n) override + { + LOCK2(cs_main, m_wallet.cs_wallet); + return m_wallet.IsSpent(hash, n); + } void listLockedCoins(std::vector& outputs) override { LOCK2(cs_main, m_wallet.cs_wallet); diff --git a/src/interfaces/wallet.h b/src/interfaces/wallet.h index d6899f2aa5652..70a945f7439e6 100644 --- a/src/interfaces/wallet.h +++ b/src/interfaces/wallet.h @@ -128,6 +128,9 @@ class Wallet //! Return whether coin is locked. virtual bool isLockedCoin(const COutPoint& output) = 0; + //! Return whether coin is Spent. + virtual bool isSpent(const uint256& hash, unsigned int n) = 0; + //! List locked coins. virtual void listLockedCoins(std::vector& outputs) = 0; diff --git a/src/kernel.cpp b/src/kernel.cpp index 236290713fa88..456864c81cd64 100644 --- a/src/kernel.cpp +++ b/src/kernel.cpp @@ -1,24 +1,15 @@ -#include -#include +#include #include -#include +#include #include +#include +#include