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.
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.
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.
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.
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
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.
- 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
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
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
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+
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
* 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
* 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
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.
* 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.
* 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
* 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
* 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.
* 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.
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.
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.
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).
* 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