Commit graph

9208 commits

Author SHA1 Message Date
Patrick Lodder 3007516320
Merge pull request #1707 from eltociear/patch-2
[wallet] fix typo in rpcwallet.cpp
2021-02-17 23:38:58 +01:00
Ross Nicoll d117d075a4
Merge pull request #1676 from shibe2/skipcheckpow
Don't recompute AuxPoW when serving peer requests
2021-02-15 20:36:38 +00:00
Max K 5887ca3ec5
Merge pull request #1655 from John-Gee/1.14.3-dev
Build on recent Linux
2021-02-14 18:51:02 +01:00
Ross Nicoll 58ce7f5405 Add testnet checkpoints 2021-02-14 13:36:15 +00:00
Ross Nicoll 7f754bbf05 Add live checkpoints 2021-02-14 13:36:15 +00:00
Reiner Herrmann c7fa40b00d
Locale independent sorting
Some locales sort differently, which causes a different order
of files, which leads to an unreproducible build.
Sort the files always with the C locale.
2021-02-13 17:51:31 +01:00
Patrick Lodder 0c600d7f9d
Fixate BIP65 softfork heights
- Re-introduce Params.BIP65Height
- Fixate block 1854705 for testnet
- Fixate block 3464751 for mainnet
- Fixate block 1351 for regtest
- Stop using IsSuperMajority() in validation for BIP65
- Simplify RPC SoftForkMajorityDesc
2021-02-13 17:24:55 +01:00
Shibe ef9242b9ec Don't re-check AuxPoW when sending data to peers
Checking scrypt PoW is expensive and needless in this case. All block
headers are already checked when they are accepted, and they will be
checked again on the receiving end.
2021-02-08 16:52:55 +04:00
Patrick Lodder d96b5daafa
Merge pull request #1705 from rnicoll/block-download-timeout
Adapt block download timeouts to Dogecoin
2021-02-08 10:50:23 +01:00
Ross Nicoll f9b9a591b8 Halve timeouts 2021-02-07 22:57:46 +00:00
Patrick Lodder 27488d8f57
Merge pull request #1706 from slightlyskepticalpotat/master
fix minimum required space for data directory
2021-02-07 23:21:03 +01:00
Anthony Chen 676c24b64c
Update src/qt/intro.cpp
Co-authored-by: Ross Nicoll <ross.nicoll@r3.com>
2021-02-06 13:35:02 -05:00
Ikko Ashimine 3ba037d793
[wallet] fix typo in rpcwallet.cpp
replacable -> replaceable
2021-02-06 12:05:47 +09:00
Anthony Chen 3b477bcd53 fix minimum required space for data directory 2021-02-05 21:57:47 -05:00
Ross Nicoll a4638bb50f Adapt block download timeouts to Dogecoin
Block download timeouts are expressed as a fraction of block interval time, so Dogecoin values have been too aggressive.
Matching Bitcoin values as a starting point.
2021-02-05 23:36:38 +00:00
John-Gee 26a1c76b1e Fixed for Qt 5 2021-02-02 03:56:23 -08:00
John-Gee 41406bfa17 Fix for Boost 1.74 2021-02-02 03:54:57 -08:00
Patrick Lodder c338a71bd2
Merge pull request #1669 from carsenk/master
New DNS Seeders for DOGE
2021-02-01 18:00:14 +01:00
Ross Nicoll 4aafd6fabd
Merge pull request #1664 from patricklodder/1.14.3-mempool-expiry
Default policy: reduce default mempool expiry time
2021-01-31 17:30:40 +00:00
Patrick Lodder 0a09a9cef1
Merge pull request #1684 from eltociear/patch-1
[Qt] fix typo in bitcoingui.cpp
2021-01-31 17:40:03 +01:00
Ikko Ashimine 62c493e7a8
[Qt] fix typo in bitcoingui.cpp
availble -> available
2021-01-31 14:38:31 +09:00
Carsen Klock 0f4815d2b7
Removed Comments
Doges, just do not forgot who made Dogecoin great again

DENARIUS (D) https://denarius.io
2021-01-30 19:03:25 -07:00
Carsen Klock ad8d1eadae
Added new denarius.pro seeders for DOGE
D helping D
2021-01-29 16:34:45 -07:00
Patrick Lodder d62033cb90
Default policy: reduce default mempool expiry time
Reduces DEFAULT_MEMPOOL_EXPIRY from 336 hours to 24 hours.
Motivation is that while blocks are empty, un-relayable tx are
stuck in mempools for a long time and effectively locking utxo
for 2 weeks until they can be respent, if no RBF opt-in was
performed (most wallet implementations do not do RBF opt-in.)
As the expectation is that block space will not be fully utilized
for the foreseeable future, and therefore, as long as this is the
case, no valid transaction should ever live in the mempool for
more than a couple of minutes.

This default setting can be overridden with the -mempoolexpiry
parameter by individual node operators to a value (expressed
in hours) that makes the most sense for the use cases the node
serves.
2021-01-27 13:20:27 +01:00
Patrick Lodder 3de77ad6d8 [tests] fix rpc ban test: set test time far into the future 2021-01-15 19:19:05 +00:00
Patrick Lodder cf79da3f96
Merge pull request #1637 from patricklodder/disk_size_and_pruning
Add size_on_disk and addl pruning fields to getblockchaininfo
2020-08-06 09:57:09 +02:00
Patrick Lodder 447af0edcd
Merge pull request #1629 from ftab/1628-fix-dogecoin-links
Fix dogecoin payment links
2020-07-27 14:56:33 +02:00
Patrick Lodder 15c872ce9b
Merge pull request #1626 from bjacquin/dev/beber/deque
httpserver: include deque
2020-07-27 10:26:25 +02:00
Patrick Lodder 578f738810
Merge pull request #1388 from maerco/patch-1
Fixes translation for "Export Address List"
2020-07-27 09:59:51 +02:00
Daniel Edgecumbe 59dcceea58
[backport] [rpc] getblockchaininfo: add size_on_disk, prune_target_size, automatic_pruning
Fix pruneheight help text.
Move fPruneMode block to match output ordering with help text.
Add functional tests for new fields in getblockchaininfo.

Rebase-from: bitcoin#b7dfc6c4
2020-07-24 18:45:39 +02:00
Patrick Lodder 16e5ae5939
fix cents->coins in comment in wallet_tests.cpp 2020-07-22 21:12:23 +02:00
Patrick Lodder d725cfb8a9
dogecoin-tx: fix tests
- explicitly specify v1 and v2 transactions due to 140cc1db
- fix "exec: bitcoin-tx" misses
2020-07-22 13:46:29 +02:00
Patrick Lodder 4b7e35c0ba
Fix the hash of the best block to reflect the Dogecoin block
This was prev tested to be a Bitcoin block in qt rpc tests
2020-07-22 13:45:28 +02:00
Patrick Lodder 7f5d1446d5
qt-tests: Disable payment server test that moves 21M+1 coins.
This is not a testcase for Dogecoin. Like the other payment
server tests, this could be amended, or it can be depreciated,
depending on where we take payment protocol.
2020-07-22 13:45:05 +02:00
Patrick Lodder 7626b811a7
tests: fix non-qt tests that spend dust
- transaction_tests/IsStandard was spending 0.9 DOGE
- tx_validationcache_tests/mempool_dblspend was spending 0.11 DOGE
- wallet_tests/coin_selection was completely built around spending
  cents. This test has been completely reworked and redocumented
  to make sense for Dogecoin
2020-07-22 13:44:44 +02:00
Dennis Field f9ed102553
Change IPC prefix from bitcoin: to dogecoin:
Given that GUIUtil::parseBitcoinURI is expecting it to start with dogecoin,
it seems like this was overlooked, and this results in dogecoin: links not
being processed as expected in handleURIOrFile, ipcParseCommandLine.

Instead of processing the link as a payment request and opening the such send
page, it simply opens the core wallet (or attempts to open another).

This commit makes dogecoin-qt properly handle dogecoin links so that the such
send page is opened with the desired information obtained from the link.

Fixes #1628
2020-02-27 03:06:36 -05:00
Bertrand Jacquin d53a3bebee
httpserver: include deque
It seems gcc 9.2.0 requires deque to be included:

  x86_64-pc-linux-gnu-g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../src/config   -I. -I./obj -I/usr/include/db5.1/ -pthread -I/usr/include -I./leveldb/include -I./leveldb/helpers/memenv   -I./secp256k1/include    -pthread -I/usr/include/db5.1 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS    -march=native -O2 -pipe -fomit-frame-pointer -c -o libdogecoin_server_a-httpserver.o `test -f 'httpserver.cpp' || echo './'`httpserver.cpp
  httpserver.cpp:71:10: error: ‘deque’ in namespace ‘std’ does not name a template type
     71 |     std::deque<std::unique_ptr<WorkItem>> queue;
        |          ^~~~~
  httpserver.cpp:30:1: note: ‘std::deque’ is defined in header ‘<deque>’; did you forget to ‘#include <deque>’?
     29 | #include <event2/keyvalq_struct.h>
    +++ |+#include <deque>
     30 |
  httpserver.cpp: In member function ‘bool WorkQueue<WorkItem>::Enqueue(WorkItem*)’:
  httpserver.cpp:110:13: error: ‘queue’ was not declared in this scope; did you mean ‘Enqueue’?
    110 |         if (queue.size() >= maxDepth) {
        |             ^~~~~
        |             Enqueue
  httpserver.cpp:113:9: error: ‘queue’ was not declared in this scope; did you mean ‘Enqueue’?
    113 |         queue.emplace_back(std::unique_ptr<WorkItem>(item));
        |         ^~~~~
        |         Enqueue
  httpserver.cpp: In member function ‘void WorkQueue<WorkItem>::Run()’:
  httpserver.cpp:125:35: error: ‘queue’ was not declared in this scope; did you mean ‘Enqueue’?
    125 |                 while (running && queue.empty())
        |                                   ^~~~~
        |                                   Enqueue
  httpserver.cpp:129:31: error: ‘queue’ was not declared in this scope; did you mean ‘Enqueue’?
    129 |                 i = std::move(queue.front());
        |                               ^~~~~
        |                               Enqueue
  httpserver.cpp: In member function ‘size_t WorkQueue<WorkItem>::Depth()’:
  httpserver.cpp:154:16: error: ‘queue’ was not declared in this scope; did you mean ‘Enqueue’?
    154 |         return queue.size();
        |                ^~~~~
        |                Enqueue
2020-01-24 20:16:27 +00:00
Max K d5d4388a16
Merge pull request #1615 from rnicoll/1.14/dust-fees
Correct dust and change
2019-11-03 19:42:47 +01:00
Ross Nicoll 388fb79a3a Fix dust threshold at 1 DOGE 2019-11-03 17:25:06 +00:00
Ross Nicoll 093f1abf40 Correct dust and change
Correct dust threshold, which is never less than 1 DOGE.
Correct minimum change, which is 1 DOGE.
2019-11-03 09:55:30 +00:00
langerhans 2de4045585 Fix RPC description of supermajority based forks 2019-07-14 19:38:26 +02:00
langerhans ae9065a17e Merge branch 'rnicoll-rnicoll/1591-rebase' into 1.14-maint 2019-07-14 19:17:14 +02:00
Ross Nicoll dbfb33abe0 Revert behaviour change in getauxblock
Change getauxblock to respond with a "target" field instead of "_target".
2019-07-13 19:23:36 +00:00
rllola 8fbd1680bb Added coments on chain parameters for regtest 2019-07-12 21:36:26 +00:00
langerhans ccd17d1b48 Update chainparams with more recent data 2019-04-14 18:32:15 +02:00
John Newbery c4b8fbf57f [rpc] Add initialblockdownload to getblockchaininfo 2019-04-14 18:32:15 +02:00
langerhans 936bf6f05b Fix some strings still referencing bitcoin 2019-03-25 05:36:12 +00:00
Michi Lumin 20aa821ec9 Actual dogecoin icons instead of bitcoin ones for OSX build.
Actual dogecoin icons in ICNS format for OSX build, instead of old bitcoin ones.
2019-03-25 05:36:12 +00:00
Michi Lumin d84837a838 Cherry-pick from Bitcoin repo, 1ec0c0a: small changes for OSX build
Cherry-pick from Bitcoin repo, 1ec0c0a: adds "const" suffix to several lines in txmempool.h and miner.h to make this build succeed under OSX w. clang++ and Boost lib 1.66+
2019-03-25 05:36:12 +00:00
langerhans 8c8ceb7dc1 Add rule to generate raw.h file to test Makefile 2019-03-25 05:36:12 +00:00
Ross Nicoll 7ccf62e1a4 [Qt] Disable milli and micro units, introduce kilo and mega units (#1463)
milli- and micro-Dogecoins are below dust threshold so do not make
any sense as display units. Instead, kilo- and mega-dogecoins are
probably more useful, as those make common amounts easier to read
instead of harder
2019-03-25 05:36:12 +00:00
Ross Nicoll 443b058a77 Update Gitian descriptors and keys (#1455)
* Replace Gitian keys - Note I've removed Leofidus' key due to inactivity, and added a weight of 20
to whit's key.
* Replace Bitcoin with Dogecoin in Gitian descriptors
* Fix Makefile refrence to bash-completion files
* Rename remaining bash-completion files
* Add wallet_bgcoin to Qt Makefile
* Add PureHeader sources to libdogecoinconsensus
2019-03-25 05:36:12 +00:00
Ross Nicoll 43b585b3cc Add dogechain and chain.so as default block explorers 2019-03-25 05:36:12 +00:00
Sporklin f5d306e9f5 Amount to send field now goes up/down 1 DOGE at a time (#1441) 2019-03-25 05:36:12 +00:00
Max K 2a0c66035d Re-add paperwallet printer (#1467)
* Add paper wallet generator to QT wallet

* Replace print icon with Typeicons equivalent

* Re-add printer support to Qt

* depends: fix fontconfig with newer glibc

See comment for more detail

* Set fixed size for paper wallet dialog
2019-03-25 05:36:12 +00:00
J Ross Nicoll 74814cfb24 Update about menu icon to Dogecoin
Icon provided by cdeverett
2019-03-25 05:36:12 +00:00
Ross Nicoll 3a62bcc51f Update URI tests for Dogecoin (#1457)
Note that the test address was invalid in Bitcoin Core, and as such rather than
re-encoding as a Dogecoin address, I've simply swapped the first byte. Still
invalid, but looks correct at least.
2019-03-25 05:36:12 +00:00
Ross Nicoll f93d42df1d rebrand dogecoin-tx test (#1450) 2019-03-25 05:36:12 +00:00
Ross Nicoll 4a87b53e55 Update QT client messages and translations to Doge equivalents (#1429)
Update QT client messages and translations to Doge equivalents.
2019-03-25 05:36:11 +00:00
Ross Nicoll 4dd8838b3a Rename binaries to match Dogecoin 2019-03-25 05:36:11 +00:00
Ross Nicoll 148a2aca05 Introduce basic Dogecoin branding 2019-03-25 05:36:11 +00:00
Ross Nicoll d0133b27fc Drop use of smart fees
Drop use of smart fees when calculating transaction fees. Dogecoin fees are intentionally
on a fixed schedule.
2019-03-17 10:00:38 -07:00
Ross Nicoll 199cf694ef Update miner confirmation window
* Update miner confirmation window to 240 for Dogecoin main net, and update related values.
* Re-enable PoW tests with Dogecoin values.
* Update version bit tests based on Dogecoin mining values.
2018-09-23 21:22:58 +01:00
Ross Nicoll 140cc1dba1 Create v1 transactions for compatibility with 1.10 (#1485)
Create v1 transactions for compatibility with 1.10. See https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki for context.
This should NOT be merged into 1.16.
2018-09-19 22:11:47 +01:00
Ross Nicoll 41c868f47e Re-introduce alert functionality (#1470)
Re-introduce alert functionality removed from Bitcoin upstream
2018-09-19 22:11:47 +01:00
Ross Nicoll dee5e404b3 Update or eliminate remaining tests (#1483)
* Change amount tests to use rounded values
* Disable legacy tests
2018-09-19 22:11:47 +01:00
Ross Nicoll 9c3a11b248 Clean up RPC tests (#1465)
* Enable full block tests
* Fix invalidblocktest
* Move watch only address funding to immediately before it's used, so node 0 doesn't spend the output before it checks it later.
* Fix `fundrawtransaction` tests and sanitize fee calculation at the same time
* Correct resolution of chain parameters when validating tx inputs, especially from previous coinbase transactions
* Set block versions on full block tests so that the generated blocks are AuxPoW compatible
2018-09-19 22:11:47 +01:00
Ross Nicoll a9db76f39d Insert Dogecoin testnet merkle tree root value (#1469) 2018-09-19 22:11:47 +01:00
langerhans 0df972131e Add PureHeader sources to libdogecoinconsensus 2018-09-19 22:11:47 +01:00
Ross Nicoll b6b5ee7502 Update RPC tests for Dogecoin (#1431)
* Make most of the RPC tests pass
* Add AUXPoW rpc tests
- Tests the auxpow rpc interface `getauxblock`
- Tests consensus constraints for auxpow:
  - Minimum block height
  - Valid scrypt proof of work
  - Foreign chain ID
2018-09-19 22:11:47 +01:00
Ross Nicoll 57dae15a77 Replace HMAC_SHA256 with Bitcoin's version (#1438) 2018-09-19 22:11:47 +01:00
Ross Nicoll 5618d8497a Update payment protocol to match Dogecoin (#1433)
* Revised payment request handling to use genesis block hash instead of network name, enabling
support for more networks that just Bitcoin main and test net.
* Disable payment protocol certificate unit tests; we don't modify this code, and regenerating the test data is likely to be significantly time consuming. Will re-enable once discussion on spec is concluded.
2018-09-19 22:11:47 +01:00
Ross Nicoll ea52cb3ae0 Add block height to block notification substitution options (#1430) 2018-09-19 22:11:47 +01:00
Ross Nicoll 2860c4bc31 Enforce minor Dogecoin parameters (#1427)
* Minimum number of blocks and blockchain size are increased for pruning. In comparison to Bitcoin this uses 24 hours as a minimum, rather than 48, although given blocks are rarely full this likely reflects a lot longer in reality.
* Multiply fork detection parameters by 5. The wall clock time elapsed for "long" forks is therefore half that of Bitcoin, but IMHO those figures are excessive for a chain with 1 minute block times.
* BIP16 and BIP30 have both been enabled on Dogecoin since inception and should not be conditional.
2018-09-19 22:11:47 +01:00
Ross Nicoll ad9e54ca72 Update test cases at 1000-byte boundaries (#1439)
Update test cases for 1,000 byte TX boundaries; in 1.10 and before the fees for these were rolled up to the next DOGE, however that results in incorrect fees because the UI currently uses 1,000 bytes as a predicted size. This updates the tests to match new behaviour in 1.14.
2018-09-19 22:11:41 +01:00
Ross Nicoll 3c060b31fe Load AuxPoW blocks from index correctly (#1443)
Load AuxPoW blocks from index correctly, by setting the version on the block before trying to check if it's AuxPoW. Previously the AuxPoW part of the block was never loaded because the check always failed.
2018-09-19 21:09:16 +01:00
Ross Nicoll 4d5e53e7b2 Initialise left/right consensus branches to null (#1435)
Strictly speaking the left/right consensus branches haven't been initialised so contain random values.
Most of the time these happen to be null, but sometimes causes client crashes (at least it does in 1.15, but fixing in earlier versions to be sure).
2018-09-19 21:09:16 +01:00
Ross Nicoll 3d363eccd4 Bring 1.14 fees in line with 1.10 (#1425)
* Disable free transactions
* Updating remaining fee calculation constants
* Round up to the nearest 1k, not up 1k so the UI fee estimator is correct
2018-09-19 21:09:16 +01:00
Ross Nicoll 493f02ba2a Always use parameters at block 0 to get genesis block hash (#1416)
This doesn't actually change behaviour, but stylistically is more correct.
2018-09-19 21:09:16 +01:00
Patrick Lodder 33db4921e5 [auxpow] Guarantee backward compatibility on getauxblock
Adds a wrapper around getauxblock to return boolean responses
for getauxblock rather than bip22 responses.
2018-09-19 21:09:16 +01:00
Ross Nicoll 4b33236028 Change result from getauxblock to BIP22 validation state 2018-09-19 21:09:16 +01:00
Ross Nicoll 7b81f4de0a Move COINBASE_MATURITY to the consensus parameters (#1426) 2018-09-19 21:09:16 +01:00
Ross Nicoll ec40df46b5 Check only the base block version (#1411)
Check only the base block version when looking for unexpected version numbers
2018-09-19 21:09:16 +01:00
Ross Nicoll 18850d359b Add Dogecoin current fee calculation logic (#1413)
Introduces 1 COIN/kb fees, rounded up to the next 1 COIN.
2018-09-19 21:09:16 +01:00
Lola Dam 65342fa48f Verify when doing 'backupwallet' that destination is not the same path of the original wallet.dat file. (#1406) 2018-09-19 19:24:06 +01:00
Ross Nicoll 277f207457 Update dogecoin-tx tests (#1409)
Update Python test address and key values to match Dogecoin format
2018-09-19 19:24:06 +01:00
Ross Nicoll c6eeab75a1 Change count type used by gettxoutsetinfo (#1415)
changing CAmount (is a int64_t) to arith_uint256 for nTotalAmount in CCoinsStats to prevent overflow
2018-09-19 19:24:06 +01:00
Ross Nicoll 7d647782dd Update checkpoints and chain work (#1410)
* Update checkpoints and chain work

* Correct checkpoint syntax

* Correct timestamp of last checkpoint block
2018-09-19 19:24:06 +01:00
Max K 60f8ff05e4 Fix 1.14 unit tests (#1408)
* Fix BlockEncodings test by setting a legacy block version

* Fix RPC test by adding missing RPC call

* Add missing regtest genesis hashes
2018-09-19 19:24:06 +01:00
Ross Nicoll 1be681a1b9 Modify chain consensus parameters to be height aware (#1396)
* Modify chain consensus parameters to be height aware
* Correct implementation of simplified rewards in parameters
* Correct max money
* Use base block version in IsSuperMajority() instead of full version
* Correct mining of blocks in AuxPoW tests
* Add in missing pre-AuxPoW consensus checks
2018-09-19 19:24:06 +01:00
Ross Nicoll a89d54c4b2 Change BIP65/66 enforcement to match Dogecoin (#1403)
* Introduce first estimates at BIP lock-in blocks

* Introduce Dogecoin BIP parameters

* Re-introduce supermajority rules for BIP65

* Add BIP65 supermajority rules

* Tighten v3 block constraints

* Don't enforce coinbase in v2 blocks

* Correct testnet majority params

* Change to using base version when checking supermajority
2018-09-19 19:23:29 +01:00
Ross Nicoll 92054123b8 Set SegWit timeout to zero to disable it (#1405) 2018-09-19 19:23:29 +01:00
Ross Nicoll 5833455f74 Stop sending a Bitcoin alert to Dogecoin clients 2018-09-19 19:23:29 +01:00
Ross Nicoll e9c0ac7afb Handle legacy v2 block at #66064 2018-09-19 19:23:29 +01:00
Ross Nicoll 0a403a2227 Correct PoW calculation logic to use locally calcualted difficulty 2018-09-19 19:23:29 +01:00
Ross Nicoll 1de15c70ce Sync changes from Dogecoin 1.10 2018-09-19 19:23:29 +01:00
Ross Nicoll fcde864334 Sync mining code from Namecore to resolve unit test failures (#1385) 2018-09-19 19:23:29 +01:00
Ross Nicoll bc8cca4896 Merge AuxPoW support from Namecore
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also https://github.com/namecoin/namecoin/pull/199.

Move auxpow-related parameters to Consensus::Params.
2018-09-19 19:22:45 +01:00
Ross Nicoll 42aa48ea69 Annotate work to be done to Dogecoin-ify 2018-09-19 19:21:49 +01:00
Ross Nicoll f0f9fd0292 Add Dogecoin difficulty calculations 2018-09-19 19:21:49 +01:00
coblee 8279f81b44 Litecoin: Fix zeitgeist2 attack thanks to Lolcust and ArtForz. This fixes an issue where a 51% attack can change difficulty at will. Go back the full period unless it's the first retarget after genesis. 2018-09-19 19:21:49 +01:00
Warren Togami b506efbe74 Litecoin: Scrypt n=1024 Pow hash based upon Colin Percival's Tarnsnap (2009) Modified by Artforz, coblee, pooler, wtogami, Nikolay Belikov, Adrian Gallagher 2018-09-19 19:21:49 +01:00
Ross Nicoll 3cff8e9773 Replace test data with Dogecoin values
Replace test data with Dogecoin equivalents in the folowing tests:

* base58
* bip32
* keys
* miner
* pow

Replace RPC and deterministic signatures in unit tests with Dogecoin values. While
conventionally I'd use an alternative implementation for these, as RFC 6979
compliant signature generation isn't terribly common, and there's no reason
to suspect we've modified this code, I'm going to assert that it's good enough
to test that the code doesn't provide different values.

Disabled Bitcoin PoW tests, but left code in place to simplify later merges. These are
replaced by the Dogecoin PoW tests.
2018-09-19 19:21:49 +01:00
Ross Nicoll 8c0468c2d2 Add Dogecoin block subsidy calculations. 2018-09-19 19:21:49 +01:00
Ross Nicoll 64af132fdb Replace consensus values with Dogecoin equivalents
* Replace chain parameters with Dogecoin values
* Update maximum coins to match Dogecoin
* Disable version 2 block requirement
* Update coinbase maturity to match Dogecoin
2018-09-19 19:21:48 +01:00
Suhas Daftuar 52965fbaef
Fix crash bug with duplicate inputs within a transaction
Introduced by #9049

Github-Pull: #14247

Tree-SHA512: 54ccf896e4c816ba8532644affc984a091ed801d8387bb01a836953c9ec4a345359d98fb58dd5f929617afd42bce0cc40293fecf943a1584207c82dd78da0ea5
2018-09-18 13:05:49 +02:00
Marco c0107cc33f Articols matter in Italian 2017-10-22 03:00:35 +02:00
Wladimir J. van der Laan 91be5e3c1e
Merge #10516: Backports for 0.14.3
ff274d3 [doc] Add hint about getmempoolentry to getrawmempool help. (Karl-Johan Alm)
76f9cf9 contrib: Update location of seeds.txt (Wladimir J. van der Laan)
12adedf Trivial: remove extra character from comment (CryptAxe)
d2ec969 Fixed typo in documentation for merkleblock.h (Mikerah)
3612219 contrib/init/bitcoind.openrcconf: Don't disable wallet by default (Luke Dashjr)
692dbb0 [doc] Minor corrections to osx dependencies (fanquake)
87a21d5 Fix: make CCoinsViewDbCursor::Seek work for missing keys (Pieter Wuille)
28b8b8b [wallet] Securely erase potentially sensitive keys/values (Thomas Snider)
ff13f59 [wallet] Make sure pindex is non-null before possibly referencing in LogPrintf call. (Karl-Johan Alm)
e23cef0 Fix some empty vector references (Pieter Wuille)
6ad45b8 Re-enable upnp support in contrib/debian (Matt Corallo)
e9a0d89 Build with QT5 on Debian-based systems using contrib/debian (Matt Corallo)
2ea0358 Bump minimum boost version in contrib/debian (Matt Corallo)
c94e262 Update contrib/debian to latest Ubuntu PPA upload. (Matt Corallo)
96c7f2c Add CheckQueue Tests (Jeremy Rubin)
e207342 Fix CCheckQueue IsIdle (potential) race condition and remove dangerous constructors. (Jeremy Rubin)
ef810c4 [trivial] Fix a typo (introduced two days ago) in the default fee warning (practicalswift)
7abe7bb Qt/Send: Give fallback fee a reasonable indent (Luke Dashjr)
3e4d7bf Qt/Send: Figure a decent warning colour from theme (Luke Dashjr)
c5adf8f [Qt] Show more significant warning if we fall back to the default fee (Jonas Schnelli)
ee1a60d [tests] update disconnect_ban.py test case to work with listbanned (John Newbery)
d289b56 [net] listbanned RPC and QT should show correct banned subnets (John Newbery)
0422693 [tests] disconnect_ban: remove dependency on urllib (John Newbery)
98bd0c3 [tests] disconnect_ban: use wait_until instead of sleep (John Newbery)
bfd1cf6 [tests] disconnectban test - only use two nodes (John Newbery)
5bc75bb [tests] fix nodehandling.py flake8 warnings (John Newbery)
c25d0a8 Update release notes to include RPC error code changes. (John Newbery)
f5efe82 Return correct error codes in fundrawtransaction(). (John Newbery)
4943d7a Return correct error codes in setban(). (John Newbery)
18c109d Return correct error codes in removeprunedfunds(). (John Newbery)
fe51c89 Return correct error codes in blockchain.cpp. (John Newbery)
3ad00b4 Return correct error codes in bumpfee(). (John Newbery)
71463a7 [qa] Test prioritise_transaction / getblocktemplate interaction (Suhas Daftuar)
d28d583 Bugfix: PrioritiseTransaction updates the mempool tx counter (Suhas Daftuar)

Tree-SHA512: fa3628527c8e176e438de992b9c5815cc2f3c296dbe5d81b592d17a907554e9c6af7eb595e96a2c345de399ba5326c07b4791a91b7b07f89dce0787c85891206
2017-07-06 18:57:00 +02:00
Wladimir J. van der Laan cc23438af0
qt: 0.14.2 pre-rc2 translations update 2017-06-06 15:06:16 +02:00
Karl-Johan Alm ff274d3b00 [doc] Add hint about getmempoolentry to getrawmempool help.
Github-Pull: #10310
Rebased-From: 3a0a5bc234
2017-06-05 22:58:53 +00:00
CryptAxe 12adedff0b Trivial: remove extra character from comment
Github-Pull: #10309
Rebased-From: 3503716f1e
2017-06-05 22:58:53 +00:00
Mikerah d2ec96909a Fixed typo in documentation for merkleblock.h
Github-Pull: #10258
Rebased-From: dd07068d6b
2017-06-05 22:58:53 +00:00
Pieter Wuille 87a21d5922 Fix: make CCoinsViewDbCursor::Seek work for missing keys
Thanks to Suhas Daftuar for figuring this out.

Github-Pull: #10445
Rebased-From: 822755a424
2017-06-05 22:58:25 +00:00
Thomas Snider 28b8b8b603 [wallet] Securely erase potentially sensitive keys/values
Github-Pull: #10308
Rebased-From: 6c914ac176
2017-06-05 22:58:24 +00:00
Karl-Johan Alm ff13f592c5 [wallet] Make sure pindex is non-null before possibly referencing in LogPrintf call.
Github-Pull: #10265
Rebased-From: c36ea693ee
2017-06-05 22:58:24 +00:00
Pieter Wuille e23cef0c94 Fix some empty vector references
streams.h has some methods that can be tricked into dereferencing
null pointers or end() iterators. Fix this.

Github-Pull: #10250
Rebased-From: f478d98fe4
2017-06-05 22:58:23 +00:00
Luke Dashjr 1b864c9820 Merge #9497 via remote-tracking branch 'origin-pull/9497/head' into 0.14.2_fixes 2017-06-05 22:58:00 +00:00
Luke Dashjr 77de9bbc57 Merge #10008 via branch 'fee_warning-0.14' into 0.14.2_fixes 2017-06-05 22:57:49 +00:00
Luke Dashjr aca4b6dbcb Merge #9481 via remote-tracking branch 'jonas/2017/01/fee_warning' into 0.14.2_fixes 2017-06-05 22:57:35 +00:00
Luke Dashjr e05799a381 Merge #10234, #10143 (fixes only), and #9853 via branch 'disconnect_ban_fixes-0.14' into 0.14.2_fixes 2017-06-05 22:57:27 +00:00
John Newbery d289b564e3 [net] listbanned RPC and QT should show correct banned subnets
Github-Pull: #10234
Rebased-From: 77c54b270d
2017-06-05 22:56:05 +00:00
Luke Dashjr 99e5dbd0aa Merge #9853 via branch 'fixerrorcodes-0.14' into 0.14.2_fixes 2017-06-05 19:33:18 +00:00
Luke Dashjr 74653a41fe Merge #10196 via branch 'prioritisetx_gbtcache-0.14' into 0.14.2_fixes 2017-06-05 19:33:01 +00:00
John Newbery f5efe82a83 Return correct error codes in fundrawtransaction().
The fundrawtransaction() RPC was returning misleading or incorrect error
codes (for example RPC_INTERNAL_ERROR when funding the transaction
failed). This commit fixes those error codes:

- RPC_INTERNAL_ERROR should not be returned for application-level
errors, only for genuine internal errors such as corrupted data.

That error code has been replaced with RPC_WALLET_ERROR.

This commit also updates the test cases to explicitly test the error code.

Github-Pull: #9853
Rebased-From: dab804c18a
2017-06-05 19:01:16 +00:00
John Newbery 4943d7a9fe Return correct error codes in setban().
The setban() RPC was returning misleading or incorrect error
codes (for example RPC_CLIENT_NODE_ALREADY_ADDED when an invalid IP
address was entered). This commit fixes those error codes:

- RPC_CLIENT_INVALID_IP_OR_SUBNET should be returned if the client
  enters an invalid IP address or subnet.

This commit also updates the test cases to explicitly test the error code.

This commit also adds a testcase for trying to setban on an invalid subnet.

Github-Pull: #9853
Rebased-From: a012087667
2017-06-05 19:01:16 +00:00
John Newbery 18c109ddb1 Return correct error codes in removeprunedfunds().
The removeprunedfunds() RPC was returning misleading or incorrect error
codes (for example RPC_INTERNAL_ERROR when the transaction was
not found in the wallet). This commit fixes those error codes:

- RPC_INTERNAL_ERROR should not be returned for application-level
errors, only for genuine internal errors such as corrupted data.

This error code has been replaced with RPC_WALLET_ERROR.

This commit also updates the test cases to explicitly test the error code.

Github-Pull: #9853
Rebased-From: 960bc7f778
2017-06-05 19:01:16 +00:00
John Newbery fe51c8924e Return correct error codes in blockchain.cpp.
RPCs in blockchain.cpp were returning misleading or incorrect error
codes (for example getblock() returning RPC_INTERNAL_ERROR when the
block had been pruned). This commit fixes those error codes:

- RPC_INTERNAL_ERROR should not be returned for application-level
  errors, only for genuine internal errors such as corrupted data.
- RPC_METHOD_NOT_FOUND should not be returned in response to a
  JSON request for an existing method.

Those error codes have been replaced with RPC_MISC_ERROR or
RPC_INVALID_PARAMETER as appropriate.

Github-Pull: #9853
Rebased-From: c1190963b3
2017-06-05 19:01:16 +00:00
John Newbery 3ad00b4b32 Return correct error codes in bumpfee().
The bumpfee() RPC was returning misleading or incorrect error codes
(for example RPC_INVALID_ADDRESS_OR_KEY when the transaction was not
BIP125 replacable). This commit fixes those error codes:

- RPC_INVALID_ADDRESS_OR_KEY if an invalid address was provided:
    - Invalid change address given
- RPC_INVALID_PARAMETER if a single (non-address/key) parameter is incorrect
    - confTarget and totalFee options should not both be set.
    - Invalid confTarget
    - Insufficient totalFee (cannot be less than required fee)
- RPC_WALLET_ERROR for any other error
    - Transaction has descendants in the wallet
    - Transaction has descendants in the mempool
    - Transaction has been mined, or is conflicted with a mined transaction
    - Transaction is not BIP 125 replaceable
    - Transaction has already been bumped
    - Transaction contains inputs that don't belong to the wallet
    - Transaction has multiple change outputs
    - Transaction does not have a change output
    - Fee is higher than maxTxFee
    - New fee rate is less than the minimum fee rate
    - Change output is too small.

This commit also updates the test cases to explicitly test the error code.

Github-Pull: #9853
Rebased-From: 6d07c62322
2017-06-05 19:01:16 +00:00
practicalswift ef810c4cd4 [trivial] Fix a typo (introduced two days ago) in the default fee warning
Github-Pull: #10008
Rebased-From: a3ca43bb32
2017-06-03 21:19:05 +00:00
Wladimir J. van der Laan 4a41de4585
build: bump version to 0.14.2 2017-06-02 07:39:56 +02:00
Cory Fields 9e3ad50078
net: only enforce the services required to connect
also once half of all outgoing nodes have our preferred flags, require only
minimal flags from the rest.

Github-Pull: #10441
Rebased-From: b6fbfc2282
2017-06-01 13:26:12 +02:00
Gregory Sanders 18476423fb
[Wallet] unset change position when there is no change on exact match 2017-05-31 10:57:16 +02:00
Cory Fields ae479bc45b
build: fix bitcoin-config.h regeneration after touching build files
This was a long-standing and annoying problem.

If autogen.sh was not manually run after touching configure.ac,
bitcoin-config.h would not be properly regenerated. This causes very subtle
problems when configure appears to enable a new value, but it does not end up
reflected in the build.
2017-05-31 10:54:19 +02:00
Jonas Schnelli 4bc99c3b28
Add missing <atomic> header in clientmodel.h 2017-05-31 10:53:47 +02:00
Jonas Schnelli 222f3775cf
Set both time/height header caches at the same time 2017-05-31 10:53:47 +02:00
Jonas Schnelli 7da133772d
Declare headers height/time cache mutable, re-set the methods const 2017-05-31 10:53:47 +02:00
Jonas Schnelli 9ac40e853c
Update the remaining blocks left in modaloverlay at init. 2017-05-31 10:53:47 +02:00
Jonas Schnelli 1e936d7e87
Reduce cs_main locks during modal overlay by adding an atomic cache 2017-05-31 10:53:46 +02:00
Matt Corallo 0aee4a132b
Check interruptNet during dnsseed lookups 2017-05-31 10:52:56 +02:00
Russell Yanofsky 321419bc06
Fix importwallet edge case rescan bug
Start importwallet rescans at the first block with timestamp greater or equal
to the wallet birthday instead of the last block with timestamp less or equal.
This fixes an edge case bug where importwallet could fail to start the rescan
early enough if there are blocks with decreasing timestamps or multiple blocks
with the same timestamp.

Github-Pull: #10410
Rebased-From: 2a8e35a11d
2017-05-23 17:09:42 +02:00
Alex Morcos 37a8fc54d4
Populate services in GetLocalAddress
Previously if we didn't have any local addresses, GetLocalAddress would return
0.0.0.0 and then we'd swap in a peer's notion of our address in AdvertiseLocal,
but then nServices would never get set.

Github-Pull: #10424
Rebased-From: 307013469f
2017-05-22 12:56:13 +02:00
Warren Togami 51c787dfb4
Clarify importprivkey help text with example of blank label without rescan
Occasionally I waste a lot of time not remembering that the second parameter to importprivkey must be blank if you intend to stop rescan with "false" as the third parameter.

Github-Pull: #10207
Rebased-From: c9e31c36ff
2017-04-20 08:18:50 +02:00
Suhas Daftuar d28d583820 Bugfix: PrioritiseTransaction updates the mempool tx counter
The mempool's nTransactionsUpdated is used by getblocktemplate
to trigger new invocations of CreateNewBlock().

Github-Pull: #10196
Rebased-From: 909306cde3770ed7019e7b635e24cedbd9de66ce
2017-04-19 20:10:02 +00:00
Wladimir J. van der Laan 348a71701d
qt: translations update pre-rc2 2017-04-14 12:25:51 +02:00
Cory Fields 30fa231011
net: define NodeId as an int64_t
This should make occurances of NodeId wrapping essentially impossible for
real-world usage.

Github-Pull: #10176
Rebased-From: c851be4b25
2017-04-14 10:35:49 +02:00
John Newbery 3c796026e5
[rpc] rename disconnectnode argument
Github-Pull: #10204
Rebased-From: 883154cbcb
2017-04-14 10:19:06 +02:00
Wladimir J. van der Laan 47d24c85b7
Bump version to 0.14.1 2017-04-05 09:12:36 +02:00
Suhas Daftuar ea060c7495
Bugfix: ancestor modifed fees were incorrect for descendants
If prioritisetransaction was called for a tx with in-mempool
descendants, the modified ancestor fee values for those descendants was
incorrect.

Github-Pull: #10144
Rebased-From: 9bef02e365
2017-04-05 08:37:12 +02:00
Alex Morcos 0e5133cb2e
Make threshold for flushing more conservative.
Always leave a reasonable buffer of 50MB for usage from newly connected block (once over 50%) and increase the high water mark buffer to 200MB.

Github-Pull: #10133
Rebased-From: 1b55e07b7a
2017-04-05 08:23:02 +02:00
Alex Morcos d6867689d1
Lower default memory footprint slightly
Github-Pull: #10133
Rebased-From: f33afd3b2b
2017-04-05 08:23:01 +02:00