This is a followup to
23991ee53 / https://github.com/bitcoin/bitcoin/pull/15600
to also use madvise(2) on FreeBSD to avoid sensitive data allocated
with secure_allocator ending up in core files in addition to preventing
it from going to the swap.
To backup coins sended to the wallet of the getting-started guide:
public: DA2fBazU8Y4epNJ2fQRZCcWpxKZY9HrhLN
private: QR2KicE83yTVbJwSuKK2xVaHiQuKnRQEif3uaCZjfnZerE5WG3Hx
public: DNnGtXk9khadE7EKCmQzxjnehenX92PKAv
private: QUtGNKaL6DehpN8vmB25V4BS2LJ9XNnXmUVGUfP1fSV3dXue7szD
Discards any Qt built-in command line arguments and replaces them
with dummy argv that only contains the binary name. Solves CVE-2021-3401.
Manually ported from bitcoin/bitcoin@a2714a5c
Allows easy integration with mining software that expects either
a "_target" (Namecoin) or a "target" (Dogecoin) field when
creating auxpow blocks using the -rpcnamecoinapi startup arg.
This saves pools effort in integrating the API they need whenever
a new Dogecoin Core release comes out.
- RPC caching source cherry-picked from: btccom@f4b613b2
- Adds addl test scenarios to createauxblock.py tests
Allows pool operators to run multiple sub-pools with different
target addresses from a single dogecoind instance. Without this
enhancement, subsequent calls to createauxblock with differing
addresses ignore the address given and instead just return the
block containing the address that initially triggered generation
of the cached block. This can quickly lead to unpredictable
results as race scenarios between sub-pools come into play.
Note that, like with getauxblock, the cache only resets on aux
block creation, not submission, so submitauxblock will accept
multiple submissions at the same height until createauxblock is
called, resulting in chaintip forks.
Co-Authored-By: leezhen <jasper.li@bitmain.com>
Adds back Namecoin's createauxblock and submitauxblock rpc methods
to allow easier integration for mining pools that wish to reuse
existing implementations of Namecoin/Bitcoin merge mining.
Cherry-picked from: michilumin@1c5b9b33
Changes post-pick:
- Fixed issue with erroneously moved LOCK in getauxblock
- Disabled mining of witness tx as done for getauxblock
- Fixed indentation, increasing readability and fixing warnings
- Follow Dogecoin API for "target" instead of "_target"
- Remove personal comments
The timeout window for block downloads scales proportionally to the target
spacing for the chain, as set in chainparams.cpp. This causes issues on regtest
because the spacing is set to 1 second, allowing insufficient time for very
large blocks to sync when requested in batch, preventing success of the pruning
qa test.
We fix this by introducing a minimum multiplier (in seconds) that will be used
instead of the target block spacing whenever the latter is lower. With a value
of 10 seconds, pruning tests pass.
The pruning test was outdated in that it was written to test BTC's 288
MIN_BLOCKS_TO_KEEP and 550 MiB MIN_DISK_SPACE_FOR_BLOCK_FILES.
To fix we recalculate arithmetic to accomodate our corresponding 1440
MIN_BLOCKS_TO_KEEP and 2200 MiB MIN_DISK_SPACE_FOR_BLOCK_FILES which
is representative as minimum val we can pass to configure a node to
automatically prune: -prune=2200.
Copied mine_large_blocks from 03d6d238 to speed up the test.
Separated the manual testing from the main test because the values
depend on Bitcoin configuration.
Removes "1.14" that was embedded in the logo image on the overview
screen and replaces it with a dynamically generated version in the
lower left corner.
Test both hard and soft dust limits for a range of configurations,
making sure that the dust limit parameters work as expected.
Currently implements commonly seen client configurations:
- a 1.10.0-like node that has only a 1 DOGE soft dust limit
- a 1.14.2-like node that has only a 1 DOGE hard dust limit
- a 1.14.5-like node that has a 0.01 soft and 0.001 hard dust limit
- a node that accepts everything standard
Other changes:
- renamed the test to better reflect the test subject
- made sure that all nodes reject non-standard transactions
Changes the dust policy to require transactions to add the dust
limit itself rather than the relay or wallet fee to the fees paid
when creating dust outputs.
This both disincentivizes dust outputs the same as before when dust
and minumum fee were equal and greatly simplifies the rule, as it
no longer requires 2 variables to calculate dust, but just one:
"If an output is under x, add x to the fee."
MIN_CHANGE influences the minimum change output size but was only
hardcoded and wallet users were not able to override this in any
way. This change retains the logic for the calculation as a
hardcoded constant but instead uses the user-configurable params
-discardthreshold and -mintxfee as a basis. The rationale for
having the minimum change equal to the discard threshold plus 2x
the minimum fee has not changed.
MIN_FINAL_CHANGE was a hardcoded limit that was impossible to be
changed by users. This causes problems when the dust limit is
changing because then a user would need a new release to be able
to have lower change outputs.
This commit replaces the entire notion of MIN_FINAL_CHANGE to just
follow the discard threshold, which can be set by the user using
-discardthreshold.
We may eventually want to break out harfbuzz and build it in depends, but
for now just ensure that runtime dependencies don't depend on whether or not
harfbuzz was present on the builder.
Sets the high tx fee to be higher than the default values
implemented by the wallet. The highest value from the QT coin
control slider is 5.21 DOGE.
Therefore, a 10 DOGE/kB high tx fee should suffice for now.
As of writing, 97% of the relay network (for me: 2251 of 2328
peers) enforces a 1 DOGE hard dust limit making attempts to send
smaller outputs extremely unlikely to make it through to miners.
This setting is a temporary measure until a significant portion of
the network accepts lower dust thresholds. The threshold can be
changed by wallet users using the -discardthreshold parameter.
DustRelayFee (-dustrelayfee) was used sporadically throughout the
code, even though it had been disabled for dust determination, but
has now completely been removed from all dust and fee related
queries. Therefore, it can be removed from the code.
Moves the warning from DUST_RELAY_TX_FEE to DEFAULT_HARD_DUST_LIMIT
as it is very relevant for the latter, but never was relevant for
the former as it was disabled for us.
Creates a wallet-specific, configurable dust limit that enables
gradual implementation of the dust limit. Each transaction created
with the wallet will adhere to this threshold rather than the dust
limits used for relay, so that the wallet stays usable while the
network changes (lowers) its dust limits.
This change only implements the parameter but does not change its
default value.
Creates a new parameter, -harddustlimit, that is used for testing
standard transactions. The default is set at 1/10th of the (soft)
dust limit, to be the same as the default minimum relay fee and
leave space for future improvements.
The existing dust limit (-dustlimit) is now enforcing the economic
disincentive under which each output under the limit must add
additional fee to be accepted to the mempool. Before this commit,
-dustlimit enforced both the hard and the soft limits, which
effectively removed the soft limit altogether.
Prepares for having more than one dust limit configured, yet
allowing the same function to return whether or not an output is
dust.
Implements the check with nDustLimit (-dustlimit) for relay related
queries, and - for lack of alternatives - uses the same parameter
for CWallet::GetRequiredFee until a wallet-specific dust limit is
introduced
Some tests expect MIN_CHANGE to be less than COIN, which will not
be the case as long as the network enforces a 1 DOGE hard dust
limit.
wallet_tests.cpp: Multiply all inputs by 10 for tests that aren't
relative to MIN_CHANGE.
fundrawtransaction.py: make sure there are no outputs smaller than
1 DOGE.
importprunedfunds.py: Multiply all outputs by 100
Use simple invocation type instead of forking daemon
Add alternative unit file for /usr/local installs
Add /opt/ systemd unit variant
Fix comments
Add 3GB memory limit to systemd unit
Restore newlines at end of systemd unit files
Remove "via official sources" comment from the opt systemd unit file
Use term "variant" instead of "variation" since the former is more
specific and correct for this context
Correct dogecoin package directory from "dogecoind" to "dogecoin"
Use tarball bin path
Co-authored-by: Patrick Lodder <patricklodder@users.noreply.github.com>
This workaround was added as part of the switch to gitian building using Ubuntu 14.04 (#6900).
However, it should no longer be required, as we have switched to Bionic (#13171), and that
has a far newer version of binutils.
binutils patch: https://sourceware.org/bugzilla/show_bug.cgi?id=16192
Cherry-picked from: bd3f5a90
- all: change suite to bionic instead of trusty
- linux: change gcc version to 7
- win: remove g++ from faketime_progs
- win: wrap *-posix compilers rather than plain mingw
- win: install 'rename'
Cherry-picked from: bitcoin/bitcoin 3272e34f
and bitcoin/bitcoin cc25f892
and bitcoin/bitcoin a33381ac
Conflicts resolved:
- removed ci script and guix file changes that we don't have
- removed changes to libxcb
- squashed commits as cc25f892 was a fixup
- rewrote the change to depends/README
Co-authored-by: fanquake <fanquake@gmail.com>
Co-authored-by: W. J. van der Laan <laanwj@protonmail.com>
Changes client parametrization and mining frequency inside
importprunedfunds.py to make sure that when wallet configuration
changes, the test still can succeed, by not allowing it to respend
unconfirmed outputs that could otherwise be reused in this test.
The alternative would be to have to change this test every time the
wallet defaults change, which is not the subject of this test.
Updates MIN_CHANGE to always allow for a subsequent bump from the
change output using RBF or CPFP of at least 2x the recommended
minumum fee, on top of the dust limit, because the previous value
did not allow enough change for performing a CPFP bump, and only
allowed for a single bumfee call, which would spend the entire
change output rather than allowing for optimization.
Adds a test to bumpfee.py that tests the policy of MIN_CHANGE and
MIN_FINAL_CHANGE parameters when using RBF, making sure that with
the wallet default configuration, RBF can be performed. This test
fails on this commit.
Sets WALLET_INCREMENTAL_RELAY_FEE to 1/10th of the default
recommended minimum fee, to encourage using RBF over CPFP and
saving the additional blockspace required for child transactions
spending parent transactions.
The previous value was based off a 1 DOGE recommended fee and did
not make sense with the current minimum fee recommendation.
The value of DEFAULT_INCREMENTAL_RELAY_FEE has never been tuned for
Dogecoin since porting from Bitcoin Core 0.14. Even though the dual
meaning of this parameter is suboptimal, it can still be tuned.
This commit sets the value to 1/10th of DEFAULT_MIN_RELAY_TX_FEE
from validation.h, which causes:
1. Mempool limiting to be performed in steps of 0.0001 DOGE/kb
instead of 0.00001 DOGE/kb
2. RBF to be accepted by the mempool if the new fee is at least
0.0001 DOGE/kb higher than the previous fee known to the
mempool
3. RBF to be cheaper than CPFP by a factor 10 (as the latter would
require a fee of more than 0.001 DOGE/kb on a subsequent bumping
transaction), to encourage mempool replacement over prioritizing
through additional transactions that need to be mined.
4. Mempool limiting to be 10x faster to reset to zero than before,
because for bitcoin, fee increments equaled their minimum fee,
but for us this was 1/100th.
mempool_tests.cpp has been reworked a bit to reflect the reality
of having a lower increment than the minimum fee, as even though
this already was the case, this was not tested correctly due to the
static values in the unit test.
Refresh the most active translation files. As we're not set up with the same tooling as Bitcoin, we get slightly different results compared to the files they generate, so I've picked only specific files to update to reduce churn. If we have translation volunteers for other languages we can update those languages at the time.
* Chinese
* French
* German
* Indonesian
* Italian
* Japanese
* Korean
* Netherlands
* Spanish
* Russian
* Turkish
Introduces RECOMMENDED_MIN_TX_FEE as a constant that explicitly
sets a single value and then implements this value for each fee
related constant throughout the code, instead of using values
relative to COIN. This helps because it makes the relation of
other defaults to the fee recommendation clear and makes
choices made by developers in wallet configuration easier to
read and understand.
This commit only changes existing values to be expressed relative
to the recommended fee and does not change actual values.
Instead of doing the awkward /bin path prepending at config.site
creation time, set darwin_{CC,CXX} in a way that fully determines the
program's path (clang/clang++)
Also see the added comment block in depends/Makefile for more context on
determining $PATH for our config.site.
Cherry-picked from: 880660ac
Conflicts: cherry-picked from a Bitcoin Core build system that is
optimized for supporting system-provided clang builds
which Dogecoin Core does not have at this time. I have
removed all code regarding that functionality and only
kept the code relevant to Dogecoin Core for this
major version (1.14), i.e. those lines that use the
pinned clang from the depends system.
Patches openssl 1.0.2's usage of secure_getenv to always use the
fallback OPENSSL_issetugid() instead, to remove reliance on a
higher glibc than the minimum we currently support (2.11)
See depends/patches/openssl/secure_getenv.patch for a full
description of the patch.
* Change from a block target number to using speed labels which pick predefined fee values.
* Remove smart fee labels from send coins control dialog.
* Rename slider position configuration for Qt, as smart fee slider settings are not compatible with preset fee settings.
* Reduce DEFAULT_FALLBACK_FEE to 1,000,000 Koinu. Note this by itself has no effect as the required fee is higher.
* Reduce wallet minimum fees to 0.01 DOGE
* Update DEFAULT_DUST_LIMIT
* Revise derived values after updating recommended fees
* Remove fee rounding from RPC tests
* Revert tests back to Bitcoin originals where possible
- update bitcoin_fr.ts in french language
- with this commit new users (running first time Dogecoin Core) have a message that they are syncing with Dogecoin network (instead Bitcoin)
This cherry-picks a tinyformat commit:
8a2812d848
The effect should be to remove all compilation warnings about implicit
switch fallthroughs.
Updating the entire header file to the latest release at once brings in
other changes that may be more invasive for 1.14.5, and this commit
should not interfere with a further update.
CFeeRate and CTxMemPoolEntry have explicitly defined copy ctors which has
the same functionality as the implicit default copy ctors which would
have been generated otherwise.
Besides being redundant, it violates the rule of three
(see https://en.wikipedia.org/wiki/Rule_of_three_(C%2B%2B_programming) ).
(Of course, the rule of three doesn't -really- cause a resource
management issue here, but the reason for that is exactly that there is
no need for an explicit copy ctor in the first place since no resources
are being managed).
CFeeRate has an explicitly defined copy ctor which has the same
functionality as the implicit default copy ctor which would have been
generated otherwise.
-----------------------------
Cherry-picked from: b426e2467
Note:
Solved conflict where upstream moved CFeeRate into ./policy/
whereas we still have it in amount.h/cpp on 1.14.
Commit originated in Litecoin PR #416:
https://github.com/litecoin-project/litecoin/pull/416
Note that Dogecoin 1.21-dev has a different scrypt.h file which will
need a similar change, but scrypt is under rework, so this is the
minimal change for 1.14.5 which will get FreeBSD compilation to work
again.
- Revert moving of ports and branching strategy because those are
actively preventing questions and PR difficulty
- Remove travis badge because we no longer use travis
- Fix formulation throughout the document
- Rewrite the contribution section
- Switch from Dogecoin devs twitter to Dogecoin twitter under
communities
- Add Q&A board to FAQ section
- Fix document language selector
- Bring tables back to "mining information"
Author: AbcSxyZ <rossi.sim@outlook.com>
Cherry-picked and squashed from:
20480d33b README: change social media position
39a209b98 README: Change section order
bdb727981 README: reorganize social medias, split dev specific
& and more community related in 2 sections
bbc6c921c Add emote to titles
e39256825 Install.md : Improve first title
ebef882c5 Fix typo
1cec6b16b Extract FAQ and INSTALL into respective files
314b6f8e2 Add developement & contribution information directly
on readme
a7e556924 Remove original block reward schedule
8cb73041a Move licence section at README bottom
without partially backporting a new testframework.
- Adds a condition to NodeConn that when asyncore calls handle_read
without any data, this must be a disconnect and closes the socket
- Adds a little loop in the p2p-acceptblock client that waits for
the socket to be in a closed state
- Makes expected disconnects non-optional in p2p-acceptblock
- Syncs the test descriptions and outputs with reality
Implements, tests and assures wallet operator ease-of-sovereignty and making
sure that user-defined fee logic persists through versions in the future by
fixing and testing -paytxfee
1. There was an override of ANY user-defined value to CWallet::GetMinimumFee
- Former logic: always override any value with either -mintxfee or
-mintxrelayfee, whichever is highest
- Proposed logic in this pull request:
- if the user specifies a value, only override when it is lower than
-mintxfee or -mintxrelayfee - this works because we set any default
-mintxfee to be the same as -paytxfee, unless the user explicitly
sets a -mintxfee.
- if no value has been specified, use the rate from -mintxfee or
-mintxrelayfee, whichever is highest
2. Test that the interaction between the wallet parameters -paytxfee and
-mintxfee function as intended. This has to be done using rpc tests rather
than unit tests because it tests the actual parameters passed to the
executables.
3. Undoing the override exposed a misconfiguration in the bumpfee.py test,
where fees were explicitly set higher, yet ignored in subsequent bumps.
Test that the interaction between the wallet parameters
-paytxfee and -mintxfee function as intended. This has to
be done using rpc tests rather than unit tests because it
tests the actual parameters passed to the executables.
recreated seeds by selecting peers across 20+ nodes that:
1. Keep up with updates, in this case run 1.14.3 or higher
2. Have NODE_NETWORK set
3. Are not known scanning clients
4. Are connectable
5. Are stable - I ordered nodes by time they have been connected to
one of my nodes
resulting set is 120 good nodes for mainnet and 20 good nodes for
testnet, serialized into chainparamsseeds.h using the contrib/
scripts.
This test failed because the sheer number of blocks required to
trigger the max length of a fork we'd keep, exceed the v4 fork
height on regtest.
- Adapted the blocktools.py miner to mine 0x00620004 blocks as done
elsewhere too (be it suboptimal, but at least consistent)
- Adapted the test to work with 1440 blocks (Dogecoin limit)
instead of 288 (Bitcoin limit)
- Made p2p-acceptblock a standard test instead of an extended test
Use CAmount rather than unsigned int for amounts for consistency
with other fee rate amounts.
This does change the type from unsigned int to unsigned int64, and
while it is unlikely anyone would need a dust limit higher than
unsigned int, again this ensures the theoretical maximum is in line
with other rates.
Fix a rare crash bug where no best chain can be activated, and therefore when trying
to find the height of the best chain via the last block triggers a null pointer dereference.
Moves the break in ActivateBestChain() when a node is being shut
down from the beginning of the loop block to the end, allowing
pindexNewTip to be populated with chainActive.Tip() rather than
its initial NULL value. Solves issues when shutting down nodes
while inside the ActivateBestChain loop.
Introduces a counter for getheader requests that have been sent to
a peer but are pending response, reducing the number of parallel
requests a node pushes out to its peers when needing to sync large
amounts of headers. All getheader requests are serialized during
initial sync, except when a non-connecting header is received,
allowing the node to resolve issues with peers sending faulty
blocks using the DoS mechanism, and when we get an inv for a block
that we do not know, because it's possible we're only connected to
legacy nodes that do not implement header announcement properly.
CI will not complain if there were an error with qt for builds that
do not explicitly specify that we want to build UI. This makes all
builds expect QT except the i686-linux and armhf builds.
Refine Snap verification message to accurately reflect it's checking secure hashes,
not signatures. Checking signature would entail verifying there is a signature from a
trusted person, not just that the hash matches a value in the known values list.
- only audit production code (no python)
- trigger on *-maint and *-dev push
- trigger on PR
- remove useless autogenerated comments
- skip doc changes
- use depends system without analyzing it
- cache depends
FIX:
GIT: fatal unknown date format format-local:%F %T
OSSLSIGNCODE: new depedency url
LXC: lxcbr0: ERROR while getting interface flags: No such device
DOGECOIN: branding
The call to CheckBlock() in ConnectBlock() is redundant with calls to it
prior to storing a block on disk. If CheckBlock() fails with an error
indicating the block is potentially corrupted, then shut down
immediately, as this is an indication that the node is experiencing
hardware issues. (If we didn't shut down, we could go into an infinite
loop trying to reconnect this same bad block, as we're not setting the
block's status to FAILED in the case where there is potential
corruption.)
If CheckBlock() fails for some other reason, we'll end up flagging this
block as bad (perhaps some prior software version "let a bad block in",
as the comment indicates), and not trying to connect it again, so this
case should be properly handled.
Fixed tabIndex and width in debugwindow.ui
Added Qt UI files for each dialog
Added Qt UI files
Added separate thread for peer dialogs to run RPC commands
Fixed tabIndex
Remove unneeded includes
Fixed error
Replaced RPCExecutor with g_connman
Replaced RPCExecutor with g_connman
Added two input fields for peer address and port
Remove peerThread
Validate IP addresses
Remove Peer now uses selected IP address in peerWidget
Interpret RPC response
Remove redundant include
Use a regular expression to validate IPs
Disconnect node if it has been discovered
Use port based on current chain
Change peerAddress -> peerPort
Allowed DNS names to be entered
Update src/qt/peerdialog.cpp
Co-authored-by: Ross Nicoll <rnicoll@rnicoll.name>
Fix typo
Co-authored-by: Ross Nicoll <rnicoll@rnicoll.name>
Use LookupHost to check address
Co-authored-by: Ross Nicoll <rnicoll@rnicoll.name>
Fix syntax typo
Made the README much wow. Centered the title, logo, and badges. Added two badges that redirect to the website: "dogecoin" and "much wow" and removed the period that was included in the website's hyperlink.
Removes discord because this is a chat channel and not suitable to
make decisions that are auditable.
Adds a link to "help wanted" in the github repository as those are
the most pressing items that help Dogecoin
* Remove references to lead maintainer.
* Put branch strategy near the top so people raise PRs against the right branch.
* Emphasise the need to test, and the types of tests involved.
* Add links to community.
Addresses GH #1808.
There are several possible future improvements:
* add a new icon for key import
* reduce duplication of code between the RPC private key importer and
the GUI private key importer
* improving error messages for various error states
in the past days a lot of wallet recovery issues popped up.
To prevent those it should be mentioned in the issue template that github issues are not the correct channel for this.
Update
"Early 2015 (approximately a year and a half after release) there were
approximately 100,000,000,000 coins."
to
"Early 2015 (approximately a year and a half after release) there were
approximately 100,000,000,000 coins."
because that was 6 years ago and is now the past. Were makes more sense than will be at this point.
Fixed multiple typos (duplicated spaces, misspelled words, etc.) and introduced new messages which were previously not translated to Polish. Also removed couple of redundant numerusforms.
- use Courier instead of "monospace" as font family as the latter
does not translate to an actual monospace font properly
- make address and privkey fields to have equal dimensions and
margins, because their fontsizes are calculated uniformly too
- make the max font size 98% of the wallet, instead of 99%
- Removed dead image links.
- Updated Travis ci badge link to direct to the master branch and the new Travis website url.
- Added Emojis to headers for clarity and to get the feel of dogecoin for newcomers.
- Bolded some sub headers for clarity. e.g. block reward sections.
- Code formatting.
plodder: cherry pick notes:
- Cherry-picked and sanitized to resolve conflicts
- fixed some very long lines
- removed tip4commit
- changed header for mining/subsidy info
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
- travis: RUN_TESTS requires python3-dev. This enables us to
compile the ltc_scrypt library under python3
- pull tester deps: use curl instead of wget to reduce dependencies
as everything else uses curl
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
The old ltc_scrypt module works on systems it is installed on, but does not
install on new systems it appears. Our README says to use litecoin_scrypt,
so updating the code to match.
These changes are necessary for the deploy scripts to see the app correctly. Also includes our background image. Note that DS_Store should be generated, but I'm including it so that it should be there in any case; though it may need to be edited - please give it a try.
Instructions for building 1.14 on modern macs with changes made to 1.14-branding. Testeed on El Capitan 10.11 and High Sierra 10.13, paper wallet printing support works as well.
These patches must be applied to the bdb-5.1.29 source from Oracle, and then compiled, for the Mac client to build.
Using an existing 5.1.29 binary will not work; as it was likely compiled with gcc; which OSX no longer natively supports.
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+
* Move old release notes out of the way
* Removed very old Bitcoin release notes as of minimal value in the context of Dogecoin.
* Move remaining Bitcoin release notes into their own folder.
* Move Bitcoin 0.9 release notes into Bitcoin release notes folder.
* Start cleaning up release notes to reflect Doge
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.
-fpic
Generate position-independent code (PIC) suitable for use in a shared library...
-fpie
These options are similar to -fpic and -fPIC, but generated position independent code can be only linked into executables....
By building with fPIE, the resulting binaries are "LSB shared objects" not LSB executables. When trying to run the program (double-click) with mouse it doesn't start. Therefore this change fixes this.
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
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.
Introduce a PlatformStyle to handle platform-specific customization of
the UI.
This replaces 'scicon', as well as #ifdefs to determine whether to place
icons on buttons.
The selected PlatformStyle defaults to the platform that the application
was compiled on, but can be overridden from the command line with
`-uiplatform=<x>`.
Also fixes the warning from #6328.
Update QT client messages and translations to Doge equivalents. Where specific contributions
were made in languages for Dogecoin, those translations are used in preference.
This change makes a node only accept transactions with low-s
signature encoding for relay and mining, but allows transactions
with high-s signature encoding in mined blocks (no blocks will
be rejected)
Pros:
- If deployed by all miners, this will eliminate this particular
malleability attack.
- There is no impact on consensus
Cons:
- Wallets that do not implement low-s signature encoding will
see their transactions be rejected by growing numbers of peers
and ultimately not be able to get any transaction mined.
Follow ups:
- Eventually, this verification needs to be confirmed through a
consensus rule (enforcement of BIP62)
Lets nodes advertise that they offer bloom filter support explicitly.
The protocol version bump allows SPV nodes to assume that NODE_BLOOM is
set if NODE_NETWORK is set for pre-70002 nodes.
Also adds an undocumented option to turn bloom filter support off for
testing purposes. Nodes attempting to use bloom filters are immediately
dropped so as to not waste their bandwidth.
ensure backward compatible service bits
update protocol version to 70004
- Tests the auxpow rpc interface `getauxblock`
- Tests consensus constraints for auxpow:
- Minimum block height
- Valid scrypt proof of work
- Foreign chain ID
This test requires the python package ltc_scrypt. Installation of
this module is scripted in qa/pull-tester/install-deps.sh and has
been integrated for travis CI.
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.
Start validating v2 blocks when there is a v3 supermajority, because
v2 clients (1.5->1.8) had supermajority checks disabled.
This is needed for future-proofing, so that a currently accepted,
but invalid v2 block will also be accepted on newer nodes.
I've multiplied 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.
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.
This updated various time-based constants to more closely reflect values
appropriate to Dogecoin:
* Number of blocks to look back for BIP 66 enforcement is doubled on
main net (to about a day and a half's worth, vs 5 days on Bitcoin),
and raised to 1,000 on testnet (bringing it up to the same quantity
as Bitcoin testnet).
* BIP 66 enforcement cut-offs are scaled up appropriate.
* 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.
Introduces 1 COIN/kb fees, rounded up to the next 1 COIN.
Disable free transactions
Dust outputs incur a 1 COIN additional fee
Add unit tests for fee calculation
Update existing unit tests with higher transaction values so that transactions are still standard
stephenhutchings commented 3 Jul 2015, 6:35 GMT:
> Hi Luke, happy for these to be distributed under the terms of the MIT licence.
> Let me know if you need anything further from me.
This is an ideal version of what the release process should look like,
making it more consistent with the OS X process. Some of the changes
described here would need to be made in the descriptors, which is somewhat
beyond what I would feel comfortable doing, not really understanding the signature process in depth.
[skip ci]
Github-Pull: #6354
Rebased-From: 6e849b8309
This prevents an edge case where a block downloaded and pruned
in-between successive calls to FindNextBlocksToDownload could
cause the block to be unnecessarily re-requested.
Github-Pull: #6233
Rebased-From: 3e9143386a
- fixes#3136
- the problem is related to Boost path and a static initialized internal
pointer
- using a std::string in CDBEnv::EnvShutdown() prevents the problem
- this removes the boost::filesystem::path path field from CDBEnv
Github-Pull: #6282
Rebased-From: 0ce30eaa36
Replaced references to Namecoin with Dogecoin
Set chain ID when constructing a new block to be mined
Added assignment overload so that assigning one BlockVersion to another does a full copy.
Add Scrypt hash and AuxPoW header to index database so that index can be validated
(a check that both Litecoin and Namecoin disable for simplicity). The index format
is incompatible with 1.8, as a result, however, and guidelines on performing the
upgrade will need to be prepared.
Given scope of the change, it may be advisable for services to prepare bootstrap files and destroy existing index databases entirely before reindexing. To discuss.
There is no previous block when validating the genesis block as part of contextual checks,
so block height cannot be used. Consensus parameters are now taken from height 0 for
the genesis check, and from block height only if the it's not the genesis block.
Updated maximum coins to match Dogecoin.
Updated protocol version to disable connections to pre-AuxPoW clients.
Disable version 2 block requirement
Update coinbase maturity to match Dogecoin
Changed AuxPoW parent block hashing to use Scrypt rather than SHA256 hash.
Update chain parameters to match Dogecoin
Move CheckProofOfWork into dogecoin.cpp and rename it to CheckAuxPowProofOfWork.
Add operator overrides to CBlockVersion so that naive usage operates on the underlying version without chain ID or flags.
Modify RPC mining to more closely match existing submitblock() structure
Includes the following commits:
commit 2ea1b5cd8cf2bdd08e43ae39fb76352eebe14895
commit f2a8220c34275f022f02d81e9e84d4cec33bd51c
commit 84b8b56113e6057b0253475b83e797dc1fed2eed
commit 8471d5db221f145f5a40022ed1897c1b996b628e
commit 2f125ad0a67e1b8f71b18a14a3b41d7e577391d1
commit e01dbc3608703b4cb4e9882738125f2b7816cdb8
commit f0421312631cd44669f9f84d339a0c470b4423b9
commit 1fd522db5dfddfd0e1b0c794b82fae2cc7bdb099
commit 71f63ad99f70ff6461c795fd728aea16aa1008f8
commit a7c44d98a8ded4df0e8455c4c5629b1a5b303bbf
commit e1d7b4fc15addf3dfeb3853fa66230a8bdacd75f
commit d016f2fa02572fd340129176b942b3f19bd5260b
commit f4716e5a168a697afce854a37350fdae0988bdd8
commit 03a575e3b13bf06cbb0a007d6672b05d2085c26e
commit d7ea37444bd9e9ac461a3dda0b16afefd160b062
commit db22affa01e050ff847a12e20c83b88952d80b59
commit 9b7e14986655f914b2d0903ca1d79367c92c6c7e
commit e21034f9c124893d5b9631e9ca231b0b9ede3d52
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.
Partitioning is tested over 4h and 100 blocks are insufficient
to test this for Dogecoin. We need 640 blocks in 4h for the
"abnormally high" alert test, I've found a set of 800 blocks to
test over providing sufficient margin.
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.
Correct BIP32 key headers for Dogecoin, also by repacking the data.
Disabled Bitcoin PoW tests, but left code in place to simplify later merges. These are
replaced by the Dogecoin PoW tests.
Boost assumes variadic templates are always available in GCC 4.4+, but
they aren't since we don't build with -std=c++11.
This applies the patch that fixed the issue in boost 1.57:
eec8085549
See also: https://svn.boost.org/trac/boost/ticket/10500
Github-Pull: #6280
Rebased-From: b19a88b2a0
"brew install berkeley-db4" appears to be working again. simplified instructions by removing the berkeley-db4 workaround.
Github-Pull: #6286
Rebased-From: a3a80c253c
Some boost versions have a conflicting overload of wait_until that returns void.
Explicitly use a template here to avoid hitting that overload.
Github-Pull: #6285
Rebased-From: 72bf90d770
The partition checking code was using chainActive timestamps
to detect partitioning; with headers-first syncing, it should use
(and with this pull request, does use) pIndexBestHeader timestamps.
Fixes issue #6251
Github-Pull: #6256
Rebased-From: 65b9454503
Make it possible to opt-out of the centralized alert system by providing
an option `-noalerts` or `-alerts=0`. The default remains unchanged.
This is a gentler form of #6260, in which I went a bit overboard by
removing the alert system completely.
I intend to add this to the GUI options in another pull after this.
Github-Pull: #6274
Rebased-From: 02a6702a82
Rather than fetching a signature.tar.gz from somewhere on the net, instruct
Gitian to use a signature from a tag in the bitcoin-detached-sigs repository
which corresponds to the tag of the release being built.
This changes detached-sig-apply.sh to take a dirname rather than a tarball as
an argument, though detached-sig-create.sh still outputs a tarball for
convenience.
Github-Pull: #6269
Rebased-From: c110575a92
Chance "getbalance *" not to use IsTrusted. The method and result
now match the "getbalance <specific-account>" behavior. In
particular, "getbalance * 0" now works.
Also fixed a comment -- GetGalance has required 1 confirmation
for many years, and the default "getbalance *" behavior matches
that.
Github-Pull: #6276
Rebased-From: 7d6a85ab5b
In some corner cases, it may be possible for recent blocks to end up in
the same block file as much older blocks. Previously, the pruning code
would stop looking for files to remove upon first encountering a file
containing a block that cannot be pruned, now it will keep looking for
candidate files until the target is met and all other criteria are
satisfied.
This can result in a noncontiguous set of block files (by number) on
disk, which is fine except for during some reindex corner cases, so
make reindex preparation smarter such that we keep the data we can
actually use and throw away the rest. This allows pruning to work
correctly while downloading any blocks needed during the reindex.
Rebased-From: c257a8c9a6
Github-Pull: #6221
We don't want to erase orphans that still have missing inputs, they should still be tracked as orphans. Also, the transaction thats being accepted can't be an orphan otherwise it would have previously been accepted, so doesn't need to be added to the erase queue.
Github-Pull: #5985
Rebased-From: 14d4eef799
AcceptBlock will no longer process an unrequested block, unless it has not
been previously processed and has more work than chainActive.Tip()
Github-Pull: #5875
Rebased-From: 9be0e6837b
Change `read_string` to fail when not the entire input has been
consumed. This avoids unexpected, even dangerous behavior (fixes#6223).
The new JSON parser adapted in #6121 also solves this problem so in
master this is a temporary fix, but should be backported to older releases.
Also adds tests for the new behavior.
Github-Pull: #6226
Rebased-From: 4e157fc60d
Until secp256k1 is used for verification there is no reason for Bitcoin
Core's secp256k1 to link against gmp, even if available. Pass a flag to
configure to override the bignum implementation.
This fixes a crash at runtime on ppc64 reported by @gmaxwell.
Github-Pull: #6210
Rebased-From: 7fd5b801ff
Previously due to an off-by-one error the wallet ignored
nLockTime-by-height transactions that would be valid in the next block
even though they are accepted into the mempool. The transactions
wouldn't show up until confirmed, nor would they be included in the
unconfirmed balance. Similar to the mempool behavior fix in 665bdd3b,
the wallet code was calling IsFinalTx() directly without taking into
account the fact that doing so tells you if the transaction could have
been mined in the *current* block, rather than the next block.
To fix this we strip IsFinalTx() of non-consensus-critical
functionality, removing the default arguments, and add CheckFinalTx() to
check if a transaction will be final in the next block.
Github-Pull: #6183
Rebased-From: 28bf06236d
<!-- ISSUES MISSING IMPORTANT INFORMATION MAY BE CLOSED WITHOUT INVESTIGATION. -->
# Feature Request
**Describe the Feature Request**
<!-- A clear and concise description of what the feature request is. Please include if your feature request is related to a problem. -->
**Describe Preferred Solution**
<!-- A clear and concise description of what you want to happen. -->
**Describe Alternatives**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
**Related Code**
<!-- If you are able to illustrate the feature request with an example, please provide a samples via an online code collaborator such as [StackBlitz](https://stackblitz.com), or code snippet on [GitHub](https://github.com). -->
**Additional Context**
<!-- List any other information that is relevant to your issue. Stack traces, related issues, suggestions on how to add, use case, Stack Overflow links, forum links, screenshots, OS if applicable, etc. -->
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/pyenv/d' | tr "\n" ":" | sed "s|::|:|g")
install:
- if [ -n "$PPA" ]; then travis_retry sudo add-apt-repository "$PPA" -y; fi
- if [ -n "$DPKG_ADD_ARCH" ]; then sudo dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
before_script:
- unset CC; unset CXX
- if [ "$CHECK_DOC" = 1 ]; then contrib/devtools/check-doc.py; fi
- mkdir -p depends/SDKs depends/sdk-sources
- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/install-deps.sh; fi
- if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
script:
- if [ "$RUN_TESTS" = "true" -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi
- if [ "$RUN_TESTS" = "true" -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then git fetch --unshallow; fi
- if [ "$RUN_TESTS" = "true" -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then contrib/verify-commits/verify-commits.sh; fi
Dogecoin is a community-driven cryptocurrency that was inspired by a Shiba Inu meme. The Dogecoin Core software allows anyone to operate a node in the Dogecoin blockchain networks and uses the Scrypt hashing method for Proof of Work. It is adapted from Bitcoin Core and other cryptocurrencies.
License
-------
For information about the default fees used on the Dogecoin network, please
refer to the [fee recommendation](doc/fee-recommendation.md).
Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more
information or see https://opensource.org/licenses/MIT.
**Website:** [dogecoin.com](https://dogecoin.com)
Development Process
-------------------
## Usage 💻
The `master` branch is regularly built and tested, but is not guaranteed to be
completely stable. [Tags](https://github.com/bitcoin/bitcoin/tags) are created
regularly to indicate new official, stable release versions of Bitcoin Core.
To start your journey with Dogecoin Core, see the [installation guide](INSTALL.md) and the [getting started](doc/getting-started.md) tutorial.
The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md).
The JSON-RPC API provided by Dogecoin Core is self-documenting and can be browsed with `dogecoin-cli help`, while detailed information for each command can be viewed with `dogecoin-cli help <command>`. Alternatively, see the [Bitcoin Core documentation](https://developer.bitcoin.org/reference/rpc/) - which implement a similar protocol - to get a browsable version.
The developer [mailing list](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev)
should be used to discuss complicated or controversial changes before working
on a patch set.
### Such ports
Developer IRC can be found on Freenode at #bitcoin-core-dev.
Dogecoin Core by default uses port `22556` for peer-to-peer communication that
is needed to synchronize the "mainnet" blockchain and stay informed of new
transactions and blocks. Additionally, a JSONRPC port can be opened, which
defaults to port `22555` for mainnet nodes. It is strongly recommended to not
expose RPC ports to the public internet.
Testing
-------
| Function | mainnet | testnet | regtest |
| :------- | ------: | ------: | ------: |
| P2P | 22556 | 44556 | 18444 |
| RPC | 22555 | 44555 | 18332 |
Testing and code review is the bottleneck for development; we get more pull
requests than we can review and test on short notice. Please be patient and help out by testing
other people's pull requests, and remember this is a security-critical project where any mistake might cost people
lots of money.
## Ongoing development - Moon plan 🌒
### Automated Testing
Dogecoin Core is an open source and community driven software. The development
process is open and publicly visible; anyone can see, discuss and work on the
software.
Developers are strongly encouraged to write [unit tests](src/test/README.md) for new code, and to
submit new unit tests for old code. Unit tests can be compiled and run
(assuming they weren't disabled in configure) with: `make check`. Further details on running
and extending unit tests can be found in [/src/test/README.md](/src/test/README.md).
Main development resources:
There are also [regression and integration tests](/qa) of the RPC interface, written
in Python, that are run automatically on the build server.
These tests can be run (if the [test dependencies](/qa) are installed) with: `qa/pull-tester/rpc-tests.py`
* [Github Projects](https://github.com/dogecoin/dogecoin/projects) is used to
follow planned and in-progress work for upcoming releases.
* [Github Discussion](https://github.com/dogecoin/dogecoin/discussions) is used
to discuss features, planned and unplanned, related to both the development of
the Dogecoin Core software, the underlying protocols and the DOGE asset.
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 4.8])],[
AC_MSG_WARN([Found Berkeley DB other than 5.1; wallets opened by this build will not be portable!])
AC_MSG_WARN([Found Berkeley DB other than 5.3; wallets opened by this build will not be portable!])
],[
AC_MSG_ERROR([Found Berkeley DB other than 5.1, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)])
AC_MSG_ERROR([Found Berkeley DB other than 5.3, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)])
@ -13,7 +13,7 @@ Construct a linear, no-fork, best version of the blockchain.
### [Qos](/contrib/qos) ###
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it.
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Dogecoin network. This means one can have an always-on dogecoind instance running, and another local dogecoind/dogecoin-qt instance which connects to this node and receives blocks from it.
### [Seeds](/contrib/seeds) ###
Utility to generate the pnSeed[] array that is compiled into the client.
@ -22,29 +22,32 @@ Build Tools and Keys
---------------------
### [Debian](/contrib/debian) ###
Contains files used to package bitcoind/bitcoin-qt
for Debian-based Linux systems. If you compile bitcoind/bitcoin-qt yourself, there are some useful files here.
Contains files used to package dogecoind/dogecoin-qt
for Debian-based Linux systems. If you compile dogecoind/dogecoin-qt yourself, there are some useful files here.