Compare commits

...

530 commits

Author SHA1 Message Date
Ross Nicoll 31afd13311
Merge pull request #2670 from patricklodder/1.14.5-fixate
fixate 1.14.5
2021-11-07 17:08:22 +00:00
Ross Nicoll b6abd84935
Merge pull request #2667 from patricklodder/1.14.5-release-notes-update-2
Update and clarify 1.14.5 release notes
2021-11-07 17:04:42 +00:00
Patrick Lodder 90f5b87806
Update and clarify 1.14.5 release notes 2021-11-07 15:38:43 +01:00
Patrick Lodder d700e9a1a2
Merge pull request #2568 from AbcSxyZ/getting-started
Create "getting started" section
2021-11-07 09:34:58 -05:00
Ross Nicoll 0c09e2a57a
Merge pull request #2671 from patricklodder/1.14.5-link-fee-doc
doc: add link to fee recommendation
2021-11-06 18:27:46 +00:00
Ross Nicoll 97c98cf0a6
Merge pull request #2673 from patricklodder/1.14.5-2019-15947
security: Backport madvise() for lockedpool sensitive data from 1.21-dev
2021-11-06 17:49:43 +00:00
Ross Nicoll df8adf098e
Merge pull request #2668 from patricklodder/1.14.5-backport-fs-doc
doc: backport files.md that describes the data directory
2021-11-06 17:49:02 +00:00
Vasil Dimov 09f86e7494
lockedpool: avoid sensitive data in core files (FreeBSD)
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.
2021-11-05 08:26:11 -04:00
Luke Dashjr b4b98d7ad0
lockedpool: When possible, use madvise to avoid including sensitive information in core dumps 2021-11-05 08:26:04 -04:00
Ross Nicoll 434ae2d95e
Merge pull request #2664 from patricklodder/1.14.5-reduce-memory
doc: backport reduce-memory.md from 1.21-dev
2021-11-04 22:24:51 +00:00
AbcSxyZ 3f6754262e getting-stared: update public key of examples
To backup coins sended to the wallet of the getting-started guide:

public: DA2fBazU8Y4epNJ2fQRZCcWpxKZY9HrhLN
private: QR2KicE83yTVbJwSuKK2xVaHiQuKnRQEif3uaCZjfnZerE5WG3Hx

public: DNnGtXk9khadE7EKCmQzxjnehenX92PKAv
private: QUtGNKaL6DehpN8vmB25V4BS2LJ9XNnXmUVGUfP1fSV3dXue7szD
2021-11-04 23:04:14 +01:00
Ross Nicoll efbd5271b7
Merge pull request #2669 from patricklodder/1.14.5-seeds
Update mainnet seeds for 1.14.5
2021-11-04 21:49:54 +00:00
AbcSxyZ 2b543db997 Docs4doge: add getting started section 2021-11-04 22:24:32 +01:00
Patrick Lodder 7750dba2c6
doc: add link to fee recommendation 2021-11-04 17:09:18 -04:00
Patrick Lodder 28989f1dc4
doc: backport files.md that describes the data directory 2021-11-04 16:59:22 -04:00
Patrick Lodder e92aba9190
fixate 1.14.5 2021-11-04 16:54:55 -04:00
Patrick Lodder 0f7c23e1e5
Update mainnet seeds for 1.14.5 2021-11-04 16:35:11 -04:00
Ross Nicoll b5d69ab693
Merge pull request #2659 from patricklodder/1.14.5-fix-overviewpage-warn
trivial: remove empty pixmap tag in overviewpage.ui
2021-11-03 22:58:49 +00:00
Ross Nicoll 0e917fcf1b
Merge pull request #2666 from patricklodder/1.14.5-qt-discard-args
Give QApplication dummy arguments
2021-11-03 22:55:54 +00:00
Patrick Lodder a92f2dcde4
Merge pull request #2662 from rnicoll/1.14.5-checkpoints
Refresh checkpoints for 1.14.5
2021-11-03 18:08:09 -04:00
Patrick Lodder d2b1a61753
Give QApplication dummy arguments
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
2021-11-03 12:05:46 -04:00
Patrick Lodder 49e947f282
Merge pull request #2663 from rnicoll/1.14.5-release-notes
Refresh 1.14.5 release notes
2021-11-02 19:34:07 -04:00
Ross Nicoll 6c752caf90
Refresh 1.14.5 release notes 2021-11-02 23:24:54 +00:00
Patrick Lodder abb99e6ddb
doc: backport reduce-memory.md from 1.21-dev
Changes:
- bitcoin -> dogecoin
- 0.14.0 -> 1.14.0
2021-11-02 19:20:25 -04:00
Ross Nicoll 6c053f4bc6
Merge pull request #2661 from patricklodder/1.14.5-fee-recommendation-doc
doc: write out the fee recommendation
2021-11-02 21:34:59 +00:00
Patrick Lodder fbf07173b4
Merge pull request #2657 from rnicoll/1.14.5-bitcoinstrings
Refresh baseline language files
2021-11-02 17:14:52 -04:00
Patrick Lodder 4213f7584b
doc: write out the fee recommendation 2021-11-02 17:07:09 -04:00
Ross Nicoll 5280e456f5
Refresh checkpoints for 1.14.5 2021-11-02 20:36:47 +00:00
Ross Nicoll 56c2ac1263
Merge pull request #2658 from patricklodder/1.14.5-manpages
Update manpages for 1.14.5
2021-11-02 20:16:06 +00:00
Patrick Lodder 60618c5099
trivial: remove empty pixmap tag in overviewpage.ui
QT complains about this, removing the tag removes the warning.
2021-11-01 19:45:06 -04:00
Ross Nicoll 5bb3112c68
Refresh translation files
Also fixes an issue with `make qt/bitcoinstrings.cpp` not working correctly, due to incorrect variable names
2021-11-01 23:21:59 +00:00
Patrick Lodder ba2c8c0fa6
Update manpages for 1.14.5 2021-11-01 19:08:07 -04:00
Patrick Lodder 8e4ea27962
Merge pull request #2491 from edtubbs/master
[feat] Added AVX2 SHA support
2021-11-01 18:47:05 -04:00
Ross Nicoll 2076361f88
Merge pull request #2654 from patricklodder/1.14.5-namecoin-aux-api
[rpc] configure auxpow rpc methods to use Namecoin-compatible API
2021-11-01 22:15:46 +00:00
Patrick Lodder d3d688deae
rpc: configure auxpow rpc methods to use Namecoin-compatible API
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.
2021-11-01 15:59:23 -04:00
Ross Nicoll 5df1b6af3e
Merge pull request #2653 from xanimo/1.14.5-submitblock-error
rpc: improve error message in submitblock
2021-11-01 17:08:08 +00:00
Patrick Lodder c86f68df76
Merge pull request #2492 from rnicoll/1.14.5-release-notes
1.14.5 release notes structure
2021-11-01 13:01:21 -04:00
Dakoda Greaves 27ac4a1e79
rpc: improve error message in submitblock
split previous conditional statement into 2
check that block both starts with and contains a coinbase transaction
2021-10-31 17:44:25 -07:00
Ross Nicoll 097d87df2f
Merge pull request #2286 from rnicoll/1.14.4-improve-checkblock-failure
Shut down if trying to connect a corrupted block
2021-10-31 23:55:38 +00:00
Ross Nicoll 85226b80bd
Merge pull request #2647 from patricklodder/1.14.5-addl-aux-methods
[rpc] Add createauxblock and submitauxblock back to RPC
2021-10-31 23:10:36 +00:00
Patrick 2291b6a7cc
rpc: cache aux block per scriptPubKey in createauxblock
- 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>
2021-10-30 15:59:46 -04:00
Patrick e90d4437a2
qa: add qa test for createauxblock 2021-10-30 15:59:45 -04:00
Patrick 8efd7e62bd
trivial: fix indentation/spacing in rpc/mining.cpp
Fixes some indentation issues to make the mining rpc code easier
to read and clean up some odd lines
2021-10-30 15:59:39 -04:00
Michi Lumin c2532d3f6a
rpc: Add createauxblock and submitauxblock methods back
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
2021-10-30 15:52:50 -04:00
Ross Nicoll e254dd665b
Merge pull request #2645 from patricklodder/1.14.5-dustlimitinfo
[rpc] Add dustlimit info to getnetworkinfo
2021-10-30 19:38:12 +01:00
Ross Nicoll 8971b04ae8
Merge pull request #2646 from rnicoll/get-block-subsidy-rebased
Remove GetBlockSubsidy
2021-10-29 12:09:11 +01:00
KabDeveloper 4c94a061c0 Remove GetBlockSubsidy (Not Used - replaced) 2021-10-28 23:36:48 +01:00
Patrick c3cead8737
[rpc] Add dustlimit info to getnetworkinfo 2021-10-28 16:24:33 -04:00
Ross Nicoll b2a55984f8
Merge pull request #2551 from crozone/1.14.5-dev
Hardened systemd unit file
2021-10-23 19:56:53 +01:00
Ross Nicoll c909ac2e09
Merge pull request #2629 from xanimo/1.14.5-pruning
qa: fixes pruning test
2021-10-22 00:29:28 +01:00
Dakoda Greaves 1ec3f19fc0
net: Enforce minimum block download window multiplier
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.
2021-10-19 17:10:43 -07:00
Dakoda Greaves 12202c61bb
qa: Updated pruning test to reflect changes in ca3a26df
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.
2021-10-19 17:10:42 -07:00
Ross Nicoll 9e6a8bc5c4
Merge pull request #2628 from patricklodder/1.14.5-univalue-update
univalue: update to latest version
2021-10-19 20:48:07 +01:00
Michi Lumin 2e082af18e Revert "First run at adding back createauxblock and submitauxblock back to methods"
This reverts commit 791be7b57d.
2021-10-18 20:58:23 -06:00
Michi Lumin 71edb4cc79 Revert "Revert "Merge branch '1.14.5-dev' of http://github.com/dogecoin/dogecoin into 1.14.5-dev""
This reverts commit ca6297be97.
2021-10-18 20:57:22 -06:00
Michi Lumin ca6297be97 Revert "Merge branch '1.14.5-dev' of http://github.com/dogecoin/dogecoin into 1.14.5-dev"
This reverts commit 16761956ce, reversing
changes made to 1eede33ce8.
2021-10-18 20:46:59 -06:00
Michi Lumin 16761956ce Merge branch '1.14.5-dev' of http://github.com/dogecoin/dogecoin into 1.14.5-dev 2021-10-18 20:21:26 -06:00
Michi Lumin 791be7b57d First run at adding back createauxblock and submitauxblock back to methods 2021-10-18 20:19:57 -06:00
Ross Nicoll 1eede33ce8
Merge pull request #2633 from patricklodder/1.14.5-update-build-guides
doc: update depends/README.md to reflect Bionic building
2021-10-19 00:11:43 +01:00
Ross Nicoll 79f5d63fa6
Merge pull request #2632 from patricklodder/1.14.5-fee-cleanup
cleanup: remove dead code related to fee and dust changes
2021-10-19 00:10:39 +01:00
Patrick Lodder 57446a21f6
doc: update depends README to reflect Bionic building 2021-10-18 20:41:30 +02:00
Patrick Lodder cc082a7678
tools: backport commit-script-check.sh
from: bitcoin/bitcoin 08f3dbb
original path: test/lint/commit-script-check.sh
2021-10-18 03:50:56 +02:00
Patrick Lodder 976474f28b
scripted-diff: remove trailing spaces after commas from fixtures
-BEGIN VERIFY SCRIPT-
find src/test/data -name "*json" | xargs sed -i "s/, $/,/g"
-END VERIFY SCRIPT-

Needed for univalue pull
2021-10-18 03:50:56 +02:00
Patrick Lodder edd0da7968
scripted-diff: Use UniValue.pushKV instead of push_back(Pair())
-BEGIN VERIFY SCRIPT-
git grep -l "push_back(Pair" | xargs sed -i "s/push_back(Pair(\(.*\)));/pushKV(\1);/g"
-END VERIFY SCRIPT-

Copied from: bitcoin/bitcoin#91986ed2
2021-10-18 03:50:47 +02:00
Patrick Lodder d81d2329f2
Update univalue from bitcoin-core/univalue-subtree:bitcoin-fork
Merge commit 'd29583af8fa9536da33df679bd03f63d76c5d334' into 1.14.5-dev
2021-10-17 22:05:37 +02:00
Patrick Lodder d29583af8f Squashed 'src/univalue/' changes from 16a1f7f6e..a44caf65f
a44caf65f Merge bitcoin-core/univalue-subtree#28: Import fixes for sanitizer reported issues
135254331 Import fixes for sanitizer reported issues
d5fb86940 refactor: use c++11 range based for loop in checkObject
ff9c37930 refactor: Use nullptr (c++11) instead of NULL
08a99754d build: use ax_cxx_compile_stdcxx.m4 to check for C++11 support
66d3713ce Merge bitcoin-core/univalue#29: ci: travis -> cirrus
808d48729 ci: travis -> cirrus
c390ac375 Merge bitcoin-core/univalue#19: Split sources for easier buildsystem integration
4a5b0a1c6 build: Move source entries out to sources.mk
6c7d94b33 build: cleanup wonky gen usage
a222637c6 Merge #23: Merge changes from jgarzik/univalue@1ae6a23
98fadc090 Merge #24: Push bool into array correctly
5f03f1f39 Push bool into array correctly
f77d0f718 Merge commit '1ae6a231a0169938eb3972c1d48dd17cba5947e1' into HEAD
98261b1e7 Merge #22: Clamp JSON object depth to PHP limit
54c401541 Clamp JSON object depth to PHP limit
5a58a4667 Merge #21: Remove hand-coded UniValue destructor.
b4cdfc4f4 Remove hand-coded UniValue destructor.
1ae6a231a Merge pull request #57 from MarcoFalke/test_fix
92bdd11f0 univalue_write: remove unneeded sstream.h include
ffb621c13 Merge pull request #56 from drodil/remove_sstream_header
f33acf9fe Merge commit '7890db9~' into HEAD
7fba60b5a Merge #17: [docs] Update readme
4577454e7 Merge #13: Fix typo
66e0adec4 Remove unnecessary sstream header from univalue.h
ac7e73cda [docs] Update readme
7890db99d Merge #11: Remove deprecated std pair wrappers
88967f658 Version 1.0.4
40e34852a Merge #14: Cleaned up namespace imports to reduce symbol collisions
1dc113dbe Merge pull request #50 from luke-jr/pushKV_bool
72392fb22 [tests] test pushKV for boolean values
c23132bcf Pushing boolean value to univalue correctly
4a4964729 Fix typo
85052a481 Remove deprecated std::pair wrappers
81faab26a Merge pull request #48 from fwolfst/47-UPDATE_MIT_LINK_TO_HTTPS
b17634ef2 Update URLs to MIT license.
51d3ab34b Merge #10: Add pushKV(key, boolean) function (replaces #5)
129bad96d [tests] test pushKV for boolean values
b3c44c947 Pushing boolean value to univalue correctly
07947ff2d Merge #9: [tests] Fix BOOST_CHECK_THROW macro
ec849d9a2 [tests] Fix BOOST_CHECK_THROW macro
88ab64f6b Merge pull request #46 from jasonbcox/master
35ed96da3 Merge pull request #44 from MarcoFalke/Mf1709-univalue-cherrypick-explicit
420c22629 Merge pull request #45 from MarcoFalke/Mf1710-univalue-revert-test
d208f986d Cleaned up namespace imports to reduce symbol collisions
31bc9f5a4 Merge #8: Remove unused Homebrew workaround
fa042093d Remove HomeBrew workaround
a523e08ae Merge #7: Declare single-argument (non-converting) constructors "explicit"
a9e53b38b Merge #4: Pull upstream
fe805ea74 Declare single-argument (non-converting) constructors "explicit"
8a2d6f1e3 Merge pull request #41 from jgarzik/get-obj-map
ba341a20d Add getObjMap() helper method.  Also, constify checkObject().
ceb119413 Handle .pushKV() and .checkObject() edge cases.
107db9829 Add ::push_back(double) method for feature parity.
d41530031 Move one-line implementation of UniValue::read() to header.
52e85b35b Move exception-throwing get_* methods into separate implementation module.
dac529675 README.md: update code quotes
3e31dcffb README.md: close code quote
d09b8429d Update README.md
f1b86edb4 Convert README to markdown style.
1dfe464ef Import UniValue class unit tests from bitcoin project.
0d3e74dd1 operator[] takes size_t index parameter (versus unsigned int)
640158fa2 Private findKey() method becomes size_t clean, and returns bool on failure.
709913585 Merge pull request #36 from ryanofsky/pr/end-str
a31231b51 Version 1.0.3
4fd5444d1 Reject unterminated strings
81eba332b Merge pull request #26 from isle2983/pushBackHelpers
36405413e Merge PR #32 from branch 'nul-not-special' of git://github.com/ryanofsky/univalue into merge
89bb07322 Merge pull request #31 from ryanofsky/raw-literals
511008c36 Merge pull request #30 from ryanofsky/test-driver
77974f3a9 Merge pull request #34 from paveljanik/20161116_Wshadow_codepoint
a38fcd355 Do not shadow member variable codepoint.
fd32d1ab8 Don't require nul-terminated string inputs
0bb1439d0 Support parsing raw literals in UniValue
28876d045 Merge pull request #29 from btcdrak/exportspace
839ccd71f Add test driver for JSONTestSuite
26ef3fff1 Remove trailing whitespace from JSON export
cfa0384d6 Convenience wrappers for push_back-ing integer types

git-subtree-dir: src/univalue
git-subtree-split: a44caf65fe55b9dd8ddb08f04c0f70409efd53b3
2021-10-17 22:05:37 +02:00
Ross Nicoll 0d563c7dcd
Merge pull request #2627 from chromatic/call-va-end-on-va-started-args
Call va_end() on va_started() args
2021-10-17 20:29:09 +01:00
Patrick Lodder 35754ca98f
cleanup: remove unused GetDogecoinWalletFee(Rate) 2021-10-17 21:28:58 +02:00
Patrick Lodder 38aba25232
cleanup: remove unused CTransaction methods 2021-10-17 20:35:51 +02:00
chromatic 3e2ce7b7aa [zmq] Call va_end() on va_start()ed args
This is a backport of Bitcoin commit 5ba61f0034.
2021-10-17 10:23:34 -07:00
Ross Nicoll 1d231e1d9f
Merge pull request #2626 from patricklodder/1.14.5-qt-dynamic-version
qt: display full version on overview screen
2021-10-17 15:02:51 +01:00
Patrick Lodder 32c55e2ac8
qt: display full version on overview screen
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.
2021-10-17 03:07:39 +02:00
Ross Nicoll 4bcd9daf5d
Merge pull request #2617 from patricklodder/1.14.5-dust-fix-param-interaction
fix: always check nDustLimit to be >= nHardDustLimit
2021-10-13 20:34:55 +01:00
Ross Nicoll a5fc0d8f56
Merge pull request #2613 from patricklodder/1.14.5-extra-ci-checks
qa: enhance CI to catch more release-time errors
2021-10-13 20:29:21 +01:00
Ross Nicoll fdd1211cdd
Merge pull request #2616 from patricklodder/1.14.5-dustlimit-test
qa: Rework dustlimit test
2021-10-13 20:27:17 +01:00
Ross Nicoll 2c71909290
Merge pull request #2612 from patricklodder/1.14.5-fix-dust-penalty
fees: Require dust limit as dust penalty
2021-10-13 19:58:46 +01:00
Ross Nicoll 6286491490
Merge pull request #2608 from patricklodder/1.14.5-dynamic-minchange
fees: Make wallet minimum change parameters dynamic
2021-10-12 22:12:52 +01:00
Patrick Lodder e481bf28bb
fix: always check nDustLimit to be >= nHardDustLimit
Moves the check for parameter interaction between both dust limits
to be done regardless of setting a custom soft dust limit.
2021-10-12 19:58:30 +02:00
Patrick Lodder b945c0b208
qa: Rework dustlimit test
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
2021-10-12 17:42:49 +02:00
Patrick Lodder e6e2f460c3
cleanup: don't build CI macos tests if we dont run them 2021-10-12 02:57:12 +02:00
Patrick Lodder dbb81ea357
ci: add aarch64 2021-10-12 02:57:12 +02:00
Patrick Lodder 40d2a4ea42
ci: add check-security and check-symbols 2021-10-12 02:57:12 +02:00
Patrick Lodder 60f821fe73
ci: make --enable-reduce-exports standard for all hosts 2021-10-12 02:57:12 +02:00
Patrick Lodder 7739221064
fees: Require dust limit as dust penalty
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."
2021-10-12 02:47:23 +02:00
Patrick Lodder b5b1e0426a
wallet: derive MIN_CHANGE from configurable parameters
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.
2021-10-12 01:28:10 +02:00
Patrick Lodder 2cdacb07ab
wallet: replace MIN_FINAL_CHANGE with the discard threshold
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.
2021-10-12 01:28:09 +02:00
Ross Nicoll c338c5e6c4
Merge pull request #2606 from patricklodder/1.14.5-split-dust-parametrization
Split the dust definition 3-way to enable lower limits
2021-10-12 00:12:53 +01:00
Ross Nicoll 7f33b17cd1
Merge pull request #2611 from patricklodder/1.14.5-determ-libfreetype
depends: make freetype independent from build system libs too
2021-10-11 23:16:45 +01:00
Cory Fields 6912d93940
depends: qt: avoid system harfbuzz and bz2
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.
2021-10-11 16:12:33 +02:00
Ross Nicoll a72aba3bea
Merge pull request #2609 from patricklodder/1.14.5-raise-high-fee-rate
fees: raise the high tx fee rate
2021-10-11 09:19:44 +01:00
Patrick Lodder 1806f0965e
Merge pull request #2607 from rnicoll/1.14.5-check-fundrawtransaction
Update fundrawtransaction.py to match Bitcoin originals
2021-10-11 00:37:18 +02:00
Patrick Lodder 0ff5375296
fees: Adjust HIGH_TX_FEE_PER_KB
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.
2021-10-10 23:33:25 +02:00
Patrick Lodder a4d965547e
fees: set the wallet default discard threshold to 1 DOGE
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.
2021-10-10 22:07:12 +02:00
Patrick Lodder 6173ca37cd
Remove dustRelayFee as it is no longer used
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.
2021-10-10 22:07:12 +02:00
Patrick Lodder fd6da81954
wallet: introduce -discardthreshold
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.
2021-10-10 22:07:00 +02:00
Ross Nicoll 2799811ab1
Update fundrawtransaction.py to match Bitcoin originals
This revises the logic in fundrawtransaction.py to use the 20 small outputs
generated, as inputs to the next transaction. This matches how the original
worked, see https://github.com/bitcoin/bitcoin/blob/v0.14.3/qa/rpc-tests/fundrawtransaction.py#L556
2021-10-10 20:51:47 +01:00
Patrick Lodder 84157f3df2
policy: Split up dust limit into hard and soft
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.
2021-10-10 20:35:55 +02:00
Patrick Lodder e83ddb7e8f
fees: Allow dust comparison against a given dust limit
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
2021-10-10 20:35:54 +02:00
Patrick Lodder c05cd54411
qa: Test relay and mempool policies for fees and dust
Creates a new functional test that ensures relay logic regarding
fee and dust levels
2021-10-10 20:35:54 +02:00
Ross Nicoll 5f390bde2a
Merge pull request #2605 from patricklodder/1.14.5-dusty-tests
qa: facilitate MIN_CHANGE to be higher than COIN in tests
2021-10-10 19:33:21 +01:00
Patrick Lodder 56bc526b59
qa: facilitate MIN_CHANGE higher than COIN in tests
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
2021-10-09 21:06:25 +02:00
Ryan Crosby 8632c83881 Harden systemd unit file
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>
2021-10-05 19:33:54 +11:00
Ross Nicoll 8e326ac96b
Merge pull request #2501 from patricklodder/1.14.5-bionic
Harmonize CI and Gitian to use the same toolchain
2021-10-03 21:56:26 +01:00
Patrick Lodder 7dae118b0a build: experimental ci build with AVX2 2021-10-03 00:55:55 -05:00
Patrick Lodder d1075955b2 depends: make avx2 depends selectable through AVX2=1 env var 2021-10-02 23:32:41 -05:00
Ed Tubbs bef1ae5f3c Commit changes to SHA sources
Added nasm and intel-ipsec-mb to depends
Added remote_digest_init.patch
Added argument and checks to configure.ac
Make nasm a native dependency
2021-10-02 23:32:42 -05:00
Patrick Lodder a8c035e88f
remove zmq trusty-only patch 2021-09-29 20:50:11 +02:00
fanquake aae64a9937
build: remove mingw linker workaround from win gitian descriptor
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
2021-09-29 20:50:11 +02:00
Patrick Lodder 0c92645c9c
build: change gitian descriptors to use bionic
- 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'
2021-09-29 20:50:10 +02:00
Patrick Lodder 5dd1a6283b
qa: change CI and CodeQL to use bionic for all builds
- change host os for all builds
- change i686 wine to wine-stable
2021-09-29 20:50:10 +02:00
Patrick Lodder d8809182e6
Change in6addr_any to IN6ADDR_ANY_INIT
This prevents glibc export of in6addr_any.

Inspired by: fc6a9f2
Original Author: Cory Fields <cory-nospam-@coryfields.com>
2021-09-29 20:50:10 +02:00
Chun Kuan Lee a7ed71e78f
Add stdin, stdout, stderr to ignored export list
Cherry-picked from: 253f592
2021-09-29 20:50:10 +02:00
Chun Kuan Lee 4598ec33fc
GCC-7 and glibc-2.27 compat code
Cherry-picked from: 908c1d7

Note: fixes __divmoddi4 and log2f when compiling with gcc-7
2021-09-29 20:50:09 +02:00
Ross Nicoll 10f64e120e
Merge pull request #2595 from patricklodder/1.14.5-fix-xkb
build: Add libxkbcommon 0.8.4
2021-09-29 19:41:34 +01:00
Ross Nicoll b4569c0730
Merge pull request #2594 from patricklodder/1.14.5-wallet-min-change
wallet/fee: Update MIN_CHANGE, related tests and document why
2021-09-29 19:40:46 +01:00
Hennadii Stepanov 557a921835
build: Add xkbcommon 0.8.4
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>
2021-09-28 21:33:05 +02:00
Patrick Lodder 6003cdea85
qa: reduce wallet config impact on importprunedfunds.py
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.
2021-09-27 21:15:42 +02:00
Patrick Lodder 16764d6e80
fees: Update MIN_CHANGE and document why
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.
2021-09-27 21:07:37 +02:00
Patrick Lodder dcc22f1696
qa: test for issues with MIN_CHANGE
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.
2021-09-27 21:07:15 +02:00
Patrick Lodder 0d0c5e5a7f
Merge pull request #2589 from rnicoll/1.14.5-dev-strings-all
Refresh translation files
2021-09-27 18:04:00 +02:00
Ross Nicoll 5dee6f61b1
Merge pull request #2590 from patricklodder/1.14.5-incremental-fee
fees: Tune incremental fee defaults
2021-09-26 10:03:14 +01:00
Patrick Lodder 52f2f3c72b
Merge pull request #2586 from rnicoll/1.14.5-checkpoints
Add updated 1.14.5 checkpoints
2021-09-26 05:33:17 +02:00
dogespacewizard fccd2b46b6 Update bitcoin_ko_KR.ts
some korean translation, not all need help for the rest
2021-09-25 21:31:28 +01:00
Patrick Lodder c31ff0f095
wallet: change incremental fee for RBF
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.
2021-09-25 21:52:21 +02:00
Patrick Lodder bde7442526
mempool: tune incremental fee to make more sense for Dogecoin
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.
2021-09-25 21:51:36 +02:00
Ross Nicoll 19c4ff8cb9
Merge pull request #2587 from patricklodder/1.14.5-clarify-fee
fees: clarify what the actual recommended fee is
2021-09-25 09:57:34 +01:00
Ross Nicoll 0fb46507b3
1.14.5 release notes 2021-09-25 08:52:47 +01:00
Ross Nicoll 065574d672
Merge pull request #2500 from patricklodder/1.14-fix-self-assign
Fix self-assigned nVersion in CAlert serialization
2021-09-25 08:38:52 +01:00
Ross Nicoll 08e7d784da
Refresh translation files
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
2021-09-25 08:30:12 +01:00
Patrick Lodder 478115a63b
Merge pull request #2588 from rnicoll/1.14.5-dev-strings
Refresh locale files
2021-09-25 01:57:45 +02:00
Ross Nicoll 029c83da14 Refresh English locale files 2021-09-25 00:00:21 +01:00
Ross Nicoll c2c71b2f21
Correct application names in locale files
Correct application names in locale files so Qt correctly recognises that the translations are valid.
2021-09-24 23:59:49 +01:00
Ross Nicoll 14a7cd1ba1
Add updated 1.14.5 checkpoints 2021-09-24 22:50:17 +01:00
Ross Nicoll f1acd77583
Merge pull request #2581 from patricklodder/1.14.5-openssl-102u-patched
depends: Update OpenSSL to 1.0.2u and fix issues it introduces
2021-09-24 22:09:25 +01:00
Patrick Lodder 8caee7ecee
fees: clarify what the actual recommended fee is
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.
2021-09-24 19:21:37 +02:00
Ross Nicoll 7b27476601
Merge pull request #2572 from slightlyskepticalpotat/rename-files
Finish Renaming Icons
2021-09-24 10:07:16 +01:00
Carl Dong 043ce9a2c2
depends: Fully determine path for darwin_{CC,CXX}
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.
2021-09-23 20:14:03 +02:00
Patrick Lodder cbc3aaeed8
depends: Remove export of glibc 2.17 secure_getenv
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.
2021-09-23 20:13:43 +02:00
Ed Tubbs 61c1cf3a3c
Updated to OpenSSL 1.0.2 2021-09-23 20:13:38 +02:00
Patrick Lodder 15f0fc62ac
Merge pull request #2567 from rnicoll/1.14.5-fees-ui
Replace smart fee UI with predefined fees
2021-09-22 17:09:12 +02:00
Ross Nicoll 36e39a395d
Revise fee UI
* 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.
2021-09-21 23:17:56 +01:00
Patrick Lodder 661197f502
Merge pull request #2546 from rnicoll/1.14.5-translations
Refresh English translation file
2021-09-15 18:47:22 +02:00
Ross Nicoll 13a5cc8589
Merge pull request #2570 from AbcSxyZ/introduction-sentence
Docs4Doge : refresh README.md introduction sentence
2021-09-15 08:10:03 +01:00
cg dd18d5c962 rename other icons 2021-09-14 21:18:15 -04:00
cg 0589466f76 swap out doxygen icon 2021-09-14 21:10:36 -04:00
AbcSxyZ 9508da5d81 Docs4Doge: refresh README introduction sentence 2021-09-14 18:24:28 +02:00
Ross Nicoll b0d9b4627a
Refresh English translation files
This is the result of running `make translate` under `src/`.
2021-09-13 20:48:32 +01:00
Ross Nicoll 36d8b7bd72
Merge pull request #2525 from chromatic/replace-more-bitcoin-in-translations
Replace Bitcoin with Dogecoin in translations
2021-09-11 10:10:49 +01:00
chromatic c6f3cbbf49 Replace Bitcoin with Dogecoin in translations 2021-09-05 11:31:49 -07:00
Patrick Lodder 88e79c9cc5
Merge pull request #2503 from chromatic/fix-tinyformat-switch-fallthrough-warnings
Fix implicit switch fallthrough warnings
2021-09-04 20:07:34 +02:00
Patrick Lodder 1b9bc8fada
Merge pull request #2515 from elvisbegovic/patch-1
french translations update (sync with Dogecoin instead Bitcoin network)
2021-09-04 19:00:35 +02:00
Patrick Lodder 07406ddd36
Merge pull request #2502 from patricklodder/1.14-freebsd-docs-1
update freebsd build docs
2021-09-03 17:47:16 +02:00
Ross Nicoll 9c6af6d841 Reduce recommended fees
* 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
2021-09-03 10:52:24 +01:00
chromatic 7a0b3034c7 Remove more implicit fallthrough compiler warnings 2021-09-01 20:52:06 -07:00
Elvis Begović 7cd56df174
french translations update (sync with Dogecoin instead Bitcoin network)
- 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)
2021-09-01 17:16:28 +02:00
Ross Nicoll 97190c0ae6
Merge pull request #2497 from patricklodder/1.14-remove-redundant-copy-ctors
1.14: Remove redundant explicitly defined copy constructors
2021-08-30 20:01:17 +01:00
chromatic 16a2776ea8 Fix tinyformat.h switch fallthrough warnings
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.
2021-08-29 17:55:20 -07:00
Patrick Lodder 84be09269b
update freebsd doc 2021-08-30 02:08:46 +02:00
Patrick Lodder 03a7605d8a
fix self-assigned nVersion in CAlert serialization 2021-08-29 21:28:59 +02:00
Patrick Lodder 18dbe3291b
Merge pull request #2481 from chromatic/fix-freebsd-scrypt-compilation-gh2475
Fix FreeBSD scrypt compilation
2021-08-29 17:01:16 +02:00
Dan Raviv 6efc333ffe
Remove redundant explicitly defined copy ctors
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.
2021-08-28 21:07:58 +02:00
chromatic 24d9b1c4e3 Fix FreeBSD scrypt compilation
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.
2021-08-28 08:54:34 -07:00
Patrick Lodder f8a5488be3
Merge pull request #2483 from bjacquin/dev/beber/db53
Update to Berkeley DB 5.3
2021-08-24 22:26:03 +02:00
Ross Nicoll 3564eebeca
Merge pull request #2488 from justdaksh/patch-1
Grammatical: Added "," in #156
2021-08-24 19:55:39 +01:00
Patrick Lodder 523d346857
Merge pull request #2490 from micaelmalta/1.14.5-dev-key-derivation-path
Change key derivation path to be correct for Dogecoin
2021-08-24 19:07:50 +02:00
Micael Malta 82ed8e0cc5 Change key derivation path to be correct for Dogecoin 2021-08-24 01:13:17 +02:00
Patrick Lodder 5f41105096
Merge pull request #2487 from chromatic/fix-compiler-warnings
Fix compiler warnings
2021-08-24 00:49:26 +02:00
Daksh Sharma b8dcff1104
Grammatical: Added "," in #156 2021-08-23 23:29:35 +05:30
chromatic 622d1cc126 Clean up whitespace in modified code 2021-08-22 12:36:23 -07:00
chromatic d8643a4129 Fix variable name; otherwise interpreted as label 2021-08-22 12:36:23 -07:00
chromatic a9a5736df8 Add explicit braces to avoid ambiguous else 2021-08-22 12:34:59 -07:00
chromatic aeccc23943 Return value from non-void function 2021-08-22 12:28:52 -07:00
Bertrand Jacquin 1a6738f920
Update to Berkeley DB 5.3
Old BerkeleyDB version such as 5.1 are being removed from most Linux
distribution.

See: https://bugs.gentoo.org/792222
See: https://fedoraproject.org/wiki/Changes/Libdb_deprecated
2021-08-21 23:55:05 +01:00
Patrick Lodder 7a83a2363f
Merge pull request #2479 from slightlyskepticalpotat/snap-improvements
snap packaging for 1.14.5
2021-08-21 21:14:11 +02:00
cg 20d2cbc2fe snap packaging for 1.14.5 2021-08-20 23:09:51 -04:00
Patrick Lodder beccd79ca4
Merge pull request #2478 from patricklodder/1.14.5-open
open 1.14.5 for development
2021-08-21 02:13:20 +02:00
Patrick Lodder 6591f8ed67
open 1.14.5 for development 2021-08-20 23:37:24 +02:00
Ross Nicoll 4c93783ab6
Merge pull request #2469 from patricklodder/1.14.4-fixate
Fixate v1.14.4 release
2021-08-20 10:09:55 +01:00
Ross Nicoll 87942b39b8
Merge pull request #2449 from rnicoll/1.14.4-release-notes
1.14.4 release notes
2021-08-20 10:06:33 +01:00
Ross Nicoll bdff0bf3bb doc: Remove developer personal Twitter accounts 2021-08-20 09:37:56 +01:00
Ross Nicoll ce3dbd55a2
Merge pull request #28 from patricklodder/1.14.4-release-notes
Suggested edits to release notes
2021-08-20 09:37:09 +01:00
Patrick Lodder 3bd16e09b9
Merge pull request #2468 from patricklodder/1.14.4-manpages
Update manpages for release
2021-08-20 06:17:28 +02:00
Patrick Lodder 58baaf1075
add AbcSxyZ 2021-08-20 06:12:48 +02:00
Patrick Lodder fdb344fcdc
fixup GUI improvements 2021-08-20 06:11:42 +02:00
Patrick Lodder 1fe44fa0ee
split network and security enhancements 2021-08-20 06:10:34 +02:00
Patrick Lodder 39bfd4e248
Merge pull request #2467 from patricklodder/1.14.4-copying
fix COPYING
2021-08-20 06:03:51 +02:00
Patrick Lodder 2c4d4a5614
Merge pull request #2465 from patricklodder/1.14.4-build-unix
Update Unix build instructions
2021-08-20 06:02:23 +02:00
Patrick Lodder 84956c7b65
Merge pull request #2466 from patricklodder/1.14.4-readme
Update README.md, introduce INSTALL.md and doc/FAQ.md
2021-08-20 06:00:56 +02:00
Patrick Lodder b8ffab317d
rewrite the fee chapter 2021-08-20 05:30:35 +02:00
Patrick Lodder 7890e26bad
remove winxp note - outdated 2021-08-20 04:26:21 +02:00
Patrick Lodder d946a24d6f
fixate v1.14.4 2021-08-20 04:16:14 +02:00
Patrick Lodder 9455359a86
update manpages 2021-08-20 04:09:51 +02:00
Patrick Lodder a5058f116f
fix COPYING 2021-08-20 03:51:39 +02:00
Patrick Lodder 67a0b0363d
fixup installation guide 2021-08-20 03:07:32 +02:00
Patrick Lodder 197104536a
readme: move development under installation 2021-08-20 03:07:32 +02:00
Patrick Lodder 73d8703534
Fixup README changes
- 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"
2021-08-20 03:07:25 +02:00
Patrick Lodder 0d8e62471c
undo change to CONTRIBUTING.md 2021-08-20 01:30:48 +02:00
AbcSxyZ 4676f8f008
Update README.md
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
2021-08-20 01:30:07 +02:00
Patrick Lodder 6174ddf17e
add notes for outdated build documentation 2021-08-19 23:47:33 +02:00
Patrick Lodder e406a7a814
mention using the depends system 2021-08-19 23:44:08 +02:00
Patrick Lodder fbfd14f8ab
write a small intro and re-link top menu 2021-08-19 23:35:27 +02:00
AbcSxyZ 25aa74fd45
Docs4Doge installation : reorganize unix build instructions
Author: AbcSxyZ <rossi.sim@outlook.com>
Cherry-picked from:
23c735353 build-unix: fix FreeBSD dependencies overwritten by Fedora
1818c33a5 docs4doge: rewrite unix build instructions
0b41d5552 Docs4Doge installation : reorganize unix build instructions
2021-08-19 23:04:06 +02:00
Patrick Lodder c39bdb9e49
split off all distro-specific guides off build-unix.md 2021-08-19 22:11:20 +02:00
Ross Nicoll b1913b5106
Merge pull request #2461 from patricklodder/1.14-sync-issue-templates
Sync issue template from master branch because we have to force-push v1.14.4
2021-08-19 01:19:37 +01:00
Ross Nicoll 5e2b2b2056 Update release notes based on most recent additions. 2021-08-19 00:49:35 +01:00
Ross Nicoll a312c4ad3e Complete first version of 1.14.4 release notes 2021-08-19 00:49:35 +01:00
roman-rr deeabe9438
issue template updated to prevent spam in repository
Cherry-picked from dogecoin/master at b5989ee03
2021-08-19 00:11:57 +02:00
Ross Nicoll 59da28cb06
Merge pull request #2458 from patricklodder/1.14.4-disconnect-bad-node-test
Test that peers building on invalid blocks get disconnected
2021-08-18 00:41:27 +01:00
Patrick Lodder b8a29b9f59
Merge pull request #2441 from rnicoll/1.14.4-fees-disable-rounding
1.14.4 fees disable rounding
2021-08-17 21:22:56 +02:00
Patrick Lodder caf26b77ab
fixup p2p-acceptblock and mininode to test disconnects
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
2021-08-17 20:15:30 +02:00
Dakoda Greaves fb194d7319
p2p-acceptblock: add steps 8, 9 to confirm node disconnects 2021-08-17 20:13:54 +02:00
Ed e90e8e5cba Create feelimit.py test
Create feelimit.py test to verify the updated fee values now rounding has been eliminated.
2021-08-17 08:51:18 +01:00
Ross Nicoll ce6e3d8137 Remove relay-only rounding
Remove rounding of transaction sizes when calculating fee minimums for relaying,
to simplify fee logic.
2021-08-17 08:50:42 +01:00
Patrick Lodder fe1bca68da
Merge pull request #2457 from ReverseControl/1.14.4-suggested-changes-for-2297
1.14.4 suggested changes for 2297
2021-08-17 09:12:27 +02:00
Escanor Liones 8ee0b0259e [ #2297 ] Implemented suggestions: camel casing as suggested and printing debug messages for invalidated blocks. 2021-08-16 22:51:04 -04:00
p-j01 0ec57cfcba fix: A newly appended block header should not build on an invalid chain 2021-08-16 22:49:23 -04:00
Patrick Lodder 9de15dd687
Merge pull request #2446 from patricklodder/1.14.4-mintxfee-tests
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.
2021-08-16 23:00:43 +02:00
Patrick Lodder 07be86c147
qa: fix bumpfee now that paytxfee works 2021-08-16 00:17:20 +02:00
Patrick Lodder 59f27ca73d
fees: remove careless override of -paytxfee in GetMinimumFee 2021-08-16 00:17:05 +02:00
Patrick Lodder 2370fc5701
qa: add -paytxfee and -mintxfee interaction test
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.
2021-08-16 00:16:51 +02:00
Patrick Lodder ef260375d1
Merge pull request #2456 from rnicoll/1.14.4-intellij
Added IntelliJ IDEA in .gitignore
2021-08-15 19:13:43 +02:00
Joakim Taule Kartveit 934832844a Added IntelliJ IDEA in .gitignore and removed dot from dogecoin.com link 2021-08-15 16:09:14 +01:00
Ross Nicoll 4782a56f0b
Merge pull request #2453 from patricklodder/1.14.4-fix-gen-seeds
contrib: fix generate-seeds.py to use Dogecoin p2p ports
2021-08-15 08:10:10 +01:00
Ross Nicoll bee1524723
Merge pull request #2454 from patricklodder/1.14.4-update-seeds
Update fixed seeds for 1.14.4
2021-08-15 08:09:15 +01:00
Patrick Lodder f45fc26cd9
update seeds for 1.14.4
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.
2021-08-15 04:06:14 +02:00
Patrick Lodder 9569222b7b
contrib: fix generate-seeds.py to use Dogecoin p2p ports 2021-08-15 03:09:45 +02:00
Patrick Lodder 9a14a2f8fb
Merge pull request #2452 from rnicoll/1.14.4-checkpoints
Refresh blockchain checkpoints
2021-08-15 02:27:20 +02:00
Ross Nicoll 5d0769fc7e
Refresh blockchain checkpoints 2021-08-15 00:28:54 +01:00
Patrick Lodder 1374bb47c2
Merge pull request #2450 from xanimo/1.14.4-txn_doublespend
qa: txn_dblspend - fix arithmetic
2021-08-14 21:19:15 +02:00
Ross Nicoll 6336a3a994
Merge pull request #2451 from patricklodder/1.14.4-feefilter-rpc
rpc: add feefilter to peers from getpeerinfo
2021-08-14 09:22:45 +01:00
Ross Nicoll c49da8b6f4
Merge pull request #2448 from patricklodder/1.14.4-fix-acceptblock
qa: fix p2p-acceptblock
2021-08-14 08:55:33 +01:00
Ross Nicoll 23ba9e1644
Merge pull request #2447 from patricklodder/1.14.4-fix-qt-str-trans
qt: translate all user-exposed strings
2021-08-14 08:39:14 +01:00
Dakoda Greaves 1c32538089 fix arithmetic; adds to standard testing 2021-08-13 19:12:16 -07:00
Patrick Lodder 3c327d0d6a
rpc: add feefilter to peers from getpeerinfo
Exposes information about the feefilter the peer sets to us, so
that we can make better informed decisions when a transaction
does not get relayed.
2021-08-14 03:16:54 +02:00
chromatic c2a0bd2890 qt: translate more user-exposed strings 2021-08-14 01:56:07 +02:00
Patrick Lodder 4a1975b0e3
fix typo 2021-08-13 23:33:29 +02:00
Patrick Lodder 6aff1141f4
qa: fix p2p-acceptblock
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
2021-08-13 03:44:02 +02:00
Ross Nicoll 3bf47e73f3
Merge pull request #2437 from michilumin/1.14.4-mintxfee
Adding startup logic where -paytxfee if lower than default, mintxfee is overridden
2021-08-12 20:20:38 +01:00
Ross Nicoll c9586396d2
Merge pull request #2440 from michilumin/1.14.4-fees-reduced-minimums
fees: Reduce minimum relay fee to 0.001 DOGE
2021-08-12 20:19:31 +01:00
Patrick Lodder 9370db962b
qt: translate all user-exposed strings 2021-08-11 23:09:13 +02:00
Michi Lumin f8813f8e13 fees: Reduce minimum relay fee to 0.001 DOGE, final change from tx to 0.01 2021-08-11 14:16:01 -06:00
michilumin 57303f1c06 Adding startup logic where -paytxfee if lower than default, implies -mintxfee is also lowered. 2021-08-11 13:44:29 -06:00
Ross Nicoll 6150f6717a
Merge pull request #2439 from rnicoll/1.14.4-dust-limit-type-alt
Use CAmount for amounts
2021-08-09 22:50:31 +01:00
Patrick Lodder 3a5a31c113
Merge pull request #2417 from patricklodder/1.14-serialize-getheaders
Reduce getheaders spam by serializing getheader requests per peer
2021-08-09 20:54:33 +02:00
Ross Nicoll c42b38ea51
Use CAmount for constant amounts too 2021-08-08 21:41:35 +01:00
Ross Nicoll 672a38cc06
Use CAmount for amounts
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.
2021-08-08 18:36:15 +01:00
Ross Nicoll 5db95e5a5f
Merge pull request #2348 from patricklodder/1.14-cfg-dust-limit
[fees] introduce configurable hard dust limit
2021-08-05 22:21:53 +01:00
Patrick Lodder 2dc1adb7fe
[fees] Express policies in COIN instead of Koinu 2021-08-05 18:24:20 +02:00
Patrick Lodder 4c46af0483
[fees] introduce configurable hard dust limit
Co-authored-by: Ross Nicoll <rnicoll@rnicoll.name>
2021-08-05 18:24:17 +02:00
Patrick Lodder a88d53be2e
Merge pull request #2415 from rnicoll/1.14.4-rbf-fee
Reduce BIP125 replace by fee increment value
2021-08-04 22:10:44 +02:00
Ross Nicoll 14a2e1ba96
consensus: Fix a rare crash bug
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.
2021-08-04 09:30:02 +01:00
Michi Lumin 1d2380df56 p2p: Reduce BIP125 replace by fee increment value 2021-08-04 09:29:35 +01:00
Ross Nicoll 7ebedc2aa3
Merge pull request #2434 from patricklodder/1.14-activatebestchain-shutdown-fix
bugfix: break ActivateBestChain() differently on shutdown
2021-08-04 09:28:08 +01:00
Ross Nicoll 246a103e9e
Merge pull request #2428 from zachlatta/1.14.4-nixos-build-instructions
Add build and setup instructions for NixOS
2021-08-03 23:35:05 +01:00
Patrick Lodder 0c3d683be4
bugfix: break ActivateBestChain() differently on shutdown
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.
2021-08-04 00:15:33 +02:00
Zach Latta 5c6017aad4 Move shell.nix contents into separate file 2021-08-03 14:46:51 -04:00
xanimo 290faedcc3
tests: mempool_packages.py (#2433)
* Bump fee to 1.0000 from 0.0001 to fix insufficient priority error
2021-08-01 09:36:55 +01:00
Patrick Lodder 7abb81b2ea
Merge pull request #2368 from michilumin/1.14.4-fees
1.14.4 fees backend improvements
2021-07-31 20:58:53 +02:00
Michi Lumin 575f734eec Initial back end framework to separate wallet and relay fees + dust. 2021-07-30 16:07:22 -06:00
Zach Latta d80ddf3244 Add build and setup instructions for NixOS 2021-07-30 12:09:11 -04:00
Patrick Lodder 6bea578da0
Merge pull request #2426 from xanimo/1.14.4-qa
update qa/README.md to reflect working installation instructions
2021-07-29 02:00:57 +02:00
Dakoda Greaves 7e541072ce update qa/README.md to reflect working installation instructions 2021-07-28 16:12:52 -07:00
Ross Nicoll a7442cbfb0
Merge pull request #2423 from patricklodder/1.14-codeql-reduce-trigger
[qa] reduce CodeQL triggers to exclude non-compiled code
2021-07-26 23:48:44 +01:00
Patrick Lodder 7e7f7e2cfd
Merge pull request #2422 from rnicoll/1.14.4-rbf-fee-test
Fixup replace-by-fee qa test values and now runs this test by default on CI
2021-07-25 21:38:21 +02:00
Patrick Lodder cfef80c54c
Merge pull request #2249 from rnicoll/1.14-fix-magic-numbers
1.14 fix magic numbers
2021-07-25 21:12:49 +02:00
Ross Nicoll 9362186ba7
tests: Fix replace-by-fee values for Dogecoin 2021-07-25 19:48:53 +01:00
Patrick Lodder 3c4b35f3c4
[qa] reduce CodeQL triggers to exclude non-compiled code
contrib, doc, share and qa do not compile production code, skip
CodeQL on PRs to save everyone time and GitHub some cpu ticks.
2021-07-25 20:45:45 +02:00
geekwisdom c7a1b7c90c Trivial: Fix Magic Numbers in key and pubkey - fixes #1968 2021-07-25 19:32:23 +01:00
Patrick Lodder f509487d3b
Merge pull request #2236 from sabotagebeats/fix/issues/2149
Utils and libraries: Update ZMQ to 4.3.4
2021-07-24 19:19:36 +02:00
Ross Nicoll e4dccd20ae
Merge pull request #1941 from elybin/fixing-indonesian-translation
Fixing indonesian (id_ID) translation
2021-07-24 16:32:58 +01:00
Patrick Lodder df3b708e8c
Merge pull request #2420 from nformant1/nformant1-patch-1
Fix RPC port documentation in RPC help
2021-07-23 23:17:00 +02:00
Patrick Lodder 2b9519ea1e
Merge pull request #2418 from xanimo/1.14.4-fix-seed-init
initialize fixed seeds
2021-07-23 22:54:13 +02:00
Dakoda Greaves f4f7759649 initialize fixed seeds
seed initialization was commented out on mainnet
and testnet.
2021-07-23 13:07:29 -07:00
Patrick Lodder dad797d01b
Merge pull request #2308 from alamshafil/doge-tips
[QT] Add tips section
2021-07-22 22:44:32 +02:00
Shafil Alam 4f3851a722 Add tips section
Add more tips

Allow QT translations

Fix tips
2021-07-22 16:04:57 -04:00
Patrick Lodder 303be2e442
Reduce getheaders spam by serializing getheader requests per peer
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.
2021-07-22 19:48:09 +02:00
nformant 8e46b60b2f
Update server.cpp
Changed RPC port from 8332 (BTC) to 22555 (Dogecoin)
2021-07-22 10:49:47 +02:00
Patrick Lodder 97f95559c5
Merge pull request #2413 from dogecoin/revert-2342-issue-2340-depends-build-dependencies-readme
Correct #2342 - "added requirements to dependencies build README"
2021-07-20 22:51:27 +02:00
Patrick Lodder 164d0b2e83
depends: Add required packages to build 2021-07-20 20:55:16 +02:00
Patrick Lodder f9084e53d1
Revert "added requirements to dependencies build README" 2021-07-20 20:17:11 +02:00
sabotagebeats 36bde0efca Utils and libraries: Update ZMQ to 4.3.4 2021-07-18 15:06:51 -07:00
Ross Nicoll 72008c5a0e
Merge pull request #2410 from patricklodder/1.14.4-explicit-gui-ci
[ci] make dogecoin-qt builds explicit
2021-07-18 22:14:40 +01:00
Patrick Lodder 7d81c1bb17
ci: make dogecoin-qt builds explicit
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.
2021-07-17 21:38:21 +02:00
Patrick Lodder c984ff17a4
Merge pull request #2312 from rnicoll/1.14.4-subsidy-tests
Rewrite subsidy limit tests (1.14)
2021-07-17 19:39:24 +02:00
Patrick Lodder 869aad50af
Merge pull request #2325 from rnicoll/1.14.4-libevent
depends: Update libevent to 2.1.11
2021-07-17 18:35:59 +02:00
Ross Nicoll 9d507be2ae
Merge pull request #2217 from pjhwa/qt-trans-ko-2214
Fix errors of bitcoin_ko_KR.ts file for 1.14.4-dev
2021-07-15 21:08:25 +01:00
Khakim Hudaya cc0d6ada81 Fixing few missed words and making translation more casual 2021-07-15 23:56:13 +07:00
Ross Nicoll 5857ea3275 Correct XML errors 2021-07-15 22:59:35 +07:00
Khakim Hudaya 694e0b8176 Fixing indonesian translation 2021-07-15 22:59:35 +07:00
Patrick Lodder 102d3735f2
Merge pull request #2395 from lee5378/1.14.4-dev
Docs - Improve block/reward table formatting in primary readme
2021-07-14 23:36:08 +02:00
lee5378 1c12362df6
[doc] Display block subsidy in a nice looking table 2021-07-14 23:29:06 +02:00
Ross Nicoll 2241f628e5
Merge pull request #2401 from rnicoll/1.14.4-snap-sha256
Refine Snap verification message
2021-07-14 22:17:29 +01:00
Ross Nicoll c77ba66ade
Merge pull request #2342 from katzenmalen/issue-2340-depends-build-dependencies-readme
added requirements to dependencies build README
2021-07-14 21:33:35 +01:00
Ross Nicoll 0487794b7c
Refine Snap verification message
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.
2021-07-14 21:26:56 +01:00
Ross Nicoll 5e4441235b
Merge pull request #1904 from slightlyskepticalpotat/snap-support-2021
Snap Support
2021-07-14 21:23:11 +01:00
stefanwouldgo cf04b907ef bump libevent to 2.1.11 in depends
this doesn't need patches on Android anymore like 2.1.8 did.
2021-07-13 20:51:08 +01:00
fanquake 0a3c2a29a6 [depends] Don't build libevent sample code 2021-07-13 20:51:08 +01:00
fanquake efcc8dc1d7 [depends] libevent 2.1.8-stable 2021-07-13 20:51:08 +01:00
Patrick Lodder 09a05ea58c
Merge pull request #2380 from patricklodder/1.14-fix-codeql
Tune codeql-analysis
2021-07-11 23:50:26 +02:00
Patrick Lodder c277bc185e
Merge pull request #2392 from patricklodder/1.14-osslsigncode-mirror
[depends] Update osslsigncode mirror consistently
2021-07-11 23:39:11 +02:00
Ross Nicoll 023fc6d529 Rewrite subsidy limit tests 2021-07-11 22:13:59 +01:00
Ross Nicoll ba1a1e289f
Merge pull request #2393 from patricklodder/1.14.4-actions-osx-bionic
[CI] add macOS GH Actions w/ bionic instead of focal
2021-07-11 22:09:01 +01:00
Patrick Lodder 7c90da10c2
[CI] add macOS GH Actions w/ bionic instead of focal 2021-07-11 22:20:32 +02:00
Patrick Lodder 783a2b5504
[depends] fix all osslsigncode urls 2021-07-11 19:14:04 +02:00
Patrick Lodder e3ba25473f
Tune codeql-analysis
- 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
2021-07-10 00:43:26 +02:00
Patrick Lodder 98fae509c2
Merge pull request #2235 from chey/alpine-musl
fix runtime for dogecoin on Alpine Linux (musl libc)
2021-07-09 22:16:57 +02:00
Ross Nicoll c13e509a6c
Merge pull request #2333 from micaelmalta/1.14.4-dev-fix-macos-gui
fix: macos qt build
2021-07-07 19:40:10 +01:00
fmhc 4bbb83511b
Update depends/README.md
better flow with linking to os-specific build docs

Co-authored-by: Ross Nicoll <rnicoll@rnicoll.name>
2021-07-07 04:36:33 +02:00
Ross Nicoll 21c0763a3c
Merge pull request #2343 from micaelmalta/1.14.4-dev-fix-gitian
[GITIAN] fix builder
2021-07-03 16:39:58 +01:00
Malta Micael 83121eacf7
fix: macos qt build 2021-07-01 14:43:09 -04:00
Micael Malta c5d1f6dfee
Update contrib/gitian-build.sh
Co-authored-by: Ross Nicoll <rnicoll@rnicoll.name>
2021-06-28 16:40:51 -04:00
Chey daec7df217
Update to use thread_local 2021-06-27 16:18:49 -04:00
Ross Nicoll 3f736fd61f
Merge pull request #2345 from patricklodder/1.14-actions-reduce-triggers
[qa] Make GH Actions CI less trigger happy
2021-06-27 20:19:45 +01:00
Patrick Lodder 291af5847d
[qa] make CI less trigger happy
Do not run CI if all updated paths in a PR match:

- 'doc/**'
- 'contrib/**'
- '**/*.md'

and on push, if all updated paths match: '**/*.md'
2021-06-27 20:23:37 +02:00
Malta Micael fb793ef52a
[GITIAN] upgrade builder
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
2021-06-27 14:11:10 -04:00
Ross Nicoll 7921b36a7d
Merge pull request #2341 from patricklodder/1.14.4-actions-artifacts
[qa] Retain binary artifacts on CI run
2021-06-27 08:48:58 +01:00
katzenmalen c25b81d43b added requirements to dependencies build README 2021-06-27 03:38:01 +00:00
Patrick Lodder e8fb21e127
Retain binary artifacts on CI run 2021-06-27 04:31:40 +02:00
Ross Nicoll d5446c1a27
Log failing block hash
Log failing block hash if an attempt is made to connect a corrupt block.
2021-06-21 21:24:03 +01:00
Ross Nicoll a5eb8c4bcb
Merge pull request #2322 from patricklodder/1.14.4-actions-win-tests
[CI] Enable windows unit tests
2021-06-20 09:09:23 +01:00
Ross Nicoll 760b9d05e6
Merge pull request #2306 from p-j01/1.14.4-dev-issue2282
[vulnerability] Disconnect stalling peers after timeout of header sync
2021-06-20 08:32:37 +01:00
Patrick Lodder 1efd93e613
[ci] Enable windows unit tests 2021-06-19 23:19:55 +02:00
Patrick Lodder 1c4461b9c5
Merge pull request #1965 from rht/master
Fix typos in comments under ./qa
2021-06-19 22:38:05 +02:00
Patrick Lodder 75762aaf26
Merge pull request #2320 from patricklodder/1.14.4-actions-nomacos
[CI] Switch 1.14.4 automated integration testing to GitHub Actions
2021-06-19 21:17:19 +02:00
Patrick Lodder b155af83e7
Remove travis.yml 2021-06-19 20:20:56 +02:00
Patrick Lodder 146ec3bab9
[ci] Full CI for linux and windows x-compile
Introduces GitHub Actions builds for linux and windows 32 and 64 bit
and armhf builds using the depends system.
2021-06-19 20:20:23 +02:00
Ahmed Castro 07867727d3
Create ci.yml 2021-06-19 17:14:30 +02:00
p-j01 4c68245cf7 fix: Disconnect stalling peers after timeout of header sync 2021-06-14 00:03:51 +00:00
Ross Nicoll fe0b89e3d5
Merge pull request #2296 from gabgosrob/french_translation
Fix french-canadian translation in bitcoin_fr_CA.ts
2021-06-12 16:04:45 +01:00
Gabriel Gosselin Roberge 313a2b1722 Fix french-canadian translation in bitcoin_fr_CA.ts 2021-06-11 11:25:21 -04:00
Suhas Daftuar 25dada932a Shut down if trying to connect a corrupted block
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.
2021-06-09 22:09:39 +01:00
Ross Nicoll 51aca8e38d
Merge pull request #1825 from alamshafil/master
[QT] Add a form dialog for adding peers
2021-06-08 19:11:30 +01:00
Patrick Lodder d1e89586de
Merge pull request #2243 from chromatic/add-sortable-network-stats-to-peers-table
Qt: Add sortable sent/recv bytes to Peers debug table
2021-06-08 19:29:42 +02:00
chromatic c5165e9b83 Add sortable sent/recv bytes to Peers debug table
See GH #2240.
2021-06-08 10:13:37 -07:00
Shafil Alam e0d1683bff Add a form dialog for adding peers
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
2021-06-05 15:23:01 -04:00
Ross Nicoll 1182bf8391
Merge pull request #2002 from WilliamWelsh/much-readme
Made the README Much Wow
2021-06-05 19:54:44 +01:00
Will fb537e6120 Updated README
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.
2021-06-05 12:37:21 -04:00
Ross Nicoll ce54d88b56
Merge pull request #2111 from rnicoll/contributing
Refresh `CONTRIBUTING.MD` to fit Dogecoin
2021-06-03 23:29:55 +01:00
Ross Nicoll e630cee134
improves -> improve
Co-authored-by: Max K. <langerhans@users.noreply.github.com>
2021-06-03 21:47:19 +01:00
Ross Nicoll 2e81416cf5
Merge pull request #20 from patricklodder/concise-contribution-guide
Make contribution guide more concise
2021-06-03 20:03:09 +01:00
Patrick Lodder a485280a75
[docs] Allow anyone to remove something dysfunctional 2021-06-03 19:36:12 +02:00
Patrick Lodder 3c6a25fb7c
[docs] Change Refactoring policy 2021-06-03 19:34:50 +02:00
Patrick Lodder fe5dab6a60
[docs] Clean up squashing section 2021-06-03 19:32:44 +02:00
Patrick Lodder 4175bf45ad
[docs] Clean up Contributor Workflow 2021-06-03 19:31:38 +02:00
Patrick Lodder c701a2fc6f
[docs] Clean up introduction 2021-06-03 19:30:31 +02:00
Patrick Lodder 158aff2897
[docs] reformat branching strategy in contribution guide 2021-06-03 19:28:48 +02:00
Patrick Lodder 97edf2a6b0
[docs] Clarify PR requirements and assessment process. 2021-06-03 19:28:06 +02:00
Patrick Lodder cfb9ecdc58
[docs] Make the workflow more concise and less chatty 2021-06-03 19:17:52 +02:00
Patrick Lodder 48abb72eac
[docs] change channels for interactions
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
2021-06-03 19:13:15 +02:00
chey 93beb1c83a fix runtime for dogecoin on Alpine Linux musl libc 2021-06-02 21:42:09 +00:00
Patrick Lodder ab7646a790
Merge pull request #2145 from lynklody/1.14.4-dev
Add simplified Chinese version for the README doc
2021-05-31 23:59:38 +02:00
lynklody 79caf5551e Changes made to the readme translation file 2021-05-30 07:02:58 -07:00
Jerry Park 9e988ab26e Fix errors of bitcoin_ko_KR.ts file for 1.14.4-dev 2021-05-30 20:31:25 +09:00
cg 13ac67551a Add and document snap support 2021-05-28 16:27:25 -04:00
Patrick Lodder f97ce89e77
Merge pull request #2166 from mobtap/patch-1
Update pt_BR translation
2021-05-27 04:37:18 +02:00
Matheus Tavares ddf22f7774
Update bitcoin_pt_BR.ts
For Brazilian Portuguese, I believe that an easy interpretation would be a percentage and not dust!
2021-05-26 22:17:09 -03:00
Matheus Tavares 45fa893452
Update bitcoin_pt_BR.ts 2021-05-26 15:02:44 -03:00
Ross Nicoll d716845e25 Refresh contributing to fit 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.
2021-05-26 17:45:14 +01:00
kregerl 8515c7b46f [Docs] fixes #1872
Replaces all occurrences of "bitcoin" with "dogecoin" in CONTRIBUTING.md
2021-05-26 17:45:04 +01:00
lynklody 66bfe18e8e Change verb tense to be consistent 2021-05-26 08:34:56 -07:00
lynklody 00574dcab9 Add simplified Chinese for the main README doc 2021-05-26 02:35:32 -07:00
Patrick Lodder df7fc0e060
Merge pull request #1869 from gemini/md-auxpow-generate
Add functionality to generate auxpow blocks with built-in miner
2021-05-26 01:03:25 +02:00
MD Islam 6a2b1cce6d
Add functionality to generate auxpow blocks in regtest
This roughly reverts the work done here that disabled auxpow generation in regtest: https://github.com/dogecoin/dogecoin/pull/1431/files\#diff-ccc24453c13307f815879738d3bf00eec351417537fbf10dde1468180cacd2f1R127-R137

This is a pretty severe functionality change since auxpow is critical to Dogecoin and wallet integrators need to be able to parse the extra data in auxpow blocks.
For future wallet integrators: Dogecoin follows similar schemes as Namecoin for the merged mining support and the spec is here: https://en.bitcoin.it/wiki/Merged_mining_specification

pr review: GetHash -> GetPoWHash
2021-05-25 18:23:36 -04:00
Patrick Lodder 02d0e99907
Merge pull request #1916 from hashtagcyber/master
Enable CodeQL scanning
2021-05-25 22:08:03 +02:00
Patrick Lodder c7206962be
Merge pull request #1908 from chromatic/sync-screen-negative-gh1902
Qt: Show only useful estimates on sync screen
2021-05-24 16:02:57 +02:00
Patrick Lodder fb56f75e9c
Merge pull request #1856 from chromatic/add-wif-import
Add a WIF import dialog to the QT wallet.
2021-05-24 14:36:10 +02:00
chromatic 0565a85c7c Add GUI to import private keys
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
2021-05-23 19:37:09 -07:00
chromatic 5040cd0d03 Skip expected remaining sync time without estimate
See GH#1902.
2021-05-21 09:03:41 -07:00
chromatic 44678e5442 Disallow negative progress increase per hour %
See GH#1902.
2021-05-21 09:03:41 -07:00
Patrick Lodder 5389fac4ea
Merge pull request #1976 from langerhans/1.14.4-travis-pgsql
Travis: switch back to trusty and remove useless repos
2021-05-20 20:49:11 +02:00
langerhans 29f46b2e73 Travis switch back to trusty and remove useless repos that may fail the build 2021-05-20 19:48:09 +02:00
rht 33b9f6cb5e
qa: Fix typos 2021-05-18 05:52:06 -04:00
Ross Nicoll c1c7eb0a2f
Merge pull request #1959 from xtemp3r/master
Fixing travis.yml build errors - replaced trusty with bionic in .travis.yml
2021-05-17 12:09:15 +01:00
Ross Nicoll b6b6f6151e
Merge pull request #1935 from creekhu/minor-fix-in-chinese-translation
trivial: a minor fix in Chinese translation and several styling fixes
2021-05-17 09:24:30 +01:00
Ross Nicoll 256afd61f7
Merge pull request #1956 from motz0815/patch-1
[Trivial] Fix German grammar error
2021-05-17 09:13:46 +01:00
motz0815 be643366de
Fix German grammar error
The sentence at line 890 isn't complete without the word "hat" at the end.
2021-05-16 20:12:22 +02:00
xt3r 88ede7a3f7 replaced trusty with bionic in .travis.yml 2021-05-16 19:22:07 +02:00
creekhu 4ef46f867a trivial: a minor fix in Chinese translation and several minor styling fixes 2021-05-15 21:12:11 -04:00
Ross Nicoll 63a2b61ef1
Merge pull request #1928 from Yhozen/remove-bitcoin-references
Authored-by: Florian Schade <f.schade@icloud.com>
2021-05-15 22:40:33 +01:00
Gabriel Pérez c0b831a35f revert 2021-05-14 15:42:41 -04:00
Gabriel Pérez 548ffd6ed2 Merge branch '1.14.4-dev' of github.com:dogecoin/dogecoin into remove-bitcoin-references 2021-05-14 12:59:02 -04:00
Gabriel Pérez abf2bfede4 Updating Dogecoin references in CONTRIBUTING 2021-05-14 12:37:05 -04:00
Matt Domko e6472f2b57
Update codeql-analysis.yml 2021-05-11 05:39:26 -07:00
Matt Domko ce8c876e30
Update codeql-analysis.yml 2021-05-11 04:24:20 -07:00
Matt Domko d16cfaf9c4
Update codeql-analysis.yml 2021-05-11 04:21:15 -07:00
Matt Domko 273327a378
Create codeql-analysis.yml 2021-05-11 03:54:53 -07:00
Ross Nicoll 4272f9bbb1
Merge pull request #1886 from fschade/patch-1
Mention wallet recovery
2021-05-08 19:26:27 +01:00
Ross Nicoll 7529f8ee12
Update .github/ISSUE_TEMPLATE.md 2021-05-08 18:33:55 +01:00
Florian Schade 348c51a201
Mention wallet recovery
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.
2021-05-07 09:59:42 +02:00
Patrick Lodder c36c7801fe
Merge pull request #1844 from pmzajaczkowski/fixing-polish-translations
Fixed typos and enhanced messages for Polish translation
2021-05-05 03:43:12 +02:00
Ross Nicoll e4a88648a3
Merge pull request #1867 from didix21/ut-replace-bitcoin-in-contribution-file
Replace Bitcoin by Dogecoin in CONTRIBUTING.md
2021-05-04 13:14:12 +01:00
Patrick Lodder 56890a560e
Merge pull request #1865 from MichDe/patch-1
Update README.md
2021-05-02 18:29:17 +02:00
Dídac Coll 2b41e21997 Replace Bitcoin by Dogecoin in CONTRIBUTING.md
Change CONTRIBUTING.md from rst format to md format
2021-05-02 11:13:38 +02:00
Piotr Zajączkowski 9b49fa8e11 Applied suggested change in translation (related to pruning message) 2021-05-02 01:44:52 +02:00
Piotr Zajączkowski 9147b41f2b Added .idea/ directory to .gitignore 2021-05-02 01:42:24 +02:00
Piotr Zajączkowski 09592a572d Fixed additional typo. Unified all 'dogecoin' to 'Dogecoin' occurrences in translations. 2021-05-02 01:42:05 +02:00
cg 5667d6586b optimise imgs (only src/qt/res/) 2021-05-01 19:52:25 +01:00
Mich De L'Orme ff2dd3e01d
Update README.md
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.
2021-05-01 11:36:47 -04:00
Patrick Lodder b9b293ae35
Merge pull request #1858 from eltociear/patch-3
Refactor: fix typo in validation.cpp
2021-04-29 15:54:39 +02:00
Ikko Ashimine acc3a19ff9
Refactor: fix typo in validation.cpp
inadvertantly -> inadvertently
2021-04-27 01:56:47 +09:00
Piotr Zajączkowski 7615b9a9e6
Fixed typos and enhanced messages for Polish translation
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.
2021-04-22 00:48:33 +02:00
Patrick Lodder 54ab96311d
Merge pull request #1835 from chromatic/fix-importprivkey-doc
Switch `bitcoinprivkey` to `dogecoinprivkey`
2021-04-19 15:33:20 +02:00
chromatic 3386274dcd Switch bitcoinprivkey to dogecoinprivkey 2021-04-18 10:47:16 -07:00
Michi Lumin 23226323c7 some updates to reflect modern WSL changes
Windows xcompile build on WSL 1 and 2 modernized some since WSL has evolved.
2021-04-18 19:02:31 +02:00
Michi Lumin 06763f4157 modernizing the windows xcompile process under WSL
WSL has changed some, this needs to be updated to reflect WSL1 vs 2
2021-04-18 19:02:31 +02:00
Michi Lumin 7558b5fdb8 Some doc updates to build on BigSur.
Some updates to help build easily on MacOS BigSur.
2021-04-18 19:02:31 +02:00
Patrick Lodder 881b10d750
Merge pull request #1834 from langerhans/1.14.4-fix-travis
Travis: Use minimal trusty image
2021-04-18 18:51:03 +02:00
Maximilian Keller 3401f27651 Attempt to use minimal Travis image 2021-04-18 17:19:18 +02:00
Michi Lumin ce265449c6
Merge pull request #1805 from patricklodder/1.14.4-paper-wallet-text-overflow
[bugfix] fix text overflow on paper wallet
2021-04-13 16:17:04 -06:00
Patrick Lodder dfb78d26dc
[bugfix] fix text overflow on paper wallet
- 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%
2021-03-20 01:35:00 +01:00
Patrick Lodder 8e7d8eed22
Merge pull request #1788 from patricklodder/1.14-fix-rpc-null-responses
QT: User-friendly interpretation of "null" responses in rpc console
2021-03-18 23:58:49 +01:00
Patrick Lodder 3cdddabe39
Merge pull request #1791 from DemonRx/rename-pixmaps
Rename pixmaps
2021-03-11 21:48:08 +01:00
Demon c42dba492b
Rename pixmaps 2021-03-11 05:24:25 -05:00
Patrick Lodder 843281ce87
[qt] User-friendly interpretation of null responses in rpc console
Translates "null" (UniValueNull) to "Empty response".
2021-03-11 10:02:18 +01:00
Patrick Lodder 354a6e3a12
Merge pull request #1785 from suprnurd/1.14-dev-fix-depends-links
Fix OpenSSL and QT depends links
2021-03-09 23:22:39 +01:00
Patrick Lodder 149d729b02
Merge pull request #1781 from DemonRx/remove-encoding-key
Remove deprecated encoding key in dogecoin-qt.desktop
2021-03-03 19:48:19 +01:00
Demon 96961861df remove-encoding-key 2021-03-03 12:57:43 -05:00
Patrick Lodder ebbc68e855
Merge pull request #1777 from patricklodder/1.14.4-open
open 1.14.4 for development
2021-03-01 04:26:53 +01:00
Patrick Lodder fcdf94ca2c
open 1.14.4 for development 2021-03-01 02:24:55 +01:00
Patrick Lodder f80bfe9068
Merge pull request #1769 from patricklodder/1.14.3-release-flag
mark 1.14.3 as release
2021-02-28 18:15:53 +01:00
Patrick Lodder 0170778a4c
Merge pull request #1775 from patricklodder/1.14.3-fix-contrib
1.14.3 release notes fix
2021-02-28 18:15:41 +01:00
Patrick Lodder 1847ca06e4
remove founder twitter from release notes 2021-02-28 17:02:55 +01:00
Patrick Lodder 86c682b375
add last 2 contributors to release notes 2021-02-28 17:02:11 +01:00
Patrick Lodder bf938187e7
Merge pull request #1774 from patricklodder/1.14.3-readme
Improve README.md
2021-02-28 16:53:15 +01:00
Patrick Lodder 2629fa792f
Update README.md
Co-authored-by: Ross Nicoll <ross.nicoll@r3.com>
2021-02-28 14:36:54 +01:00
fluteds acb11bf065
Improve README.md
- 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
2021-02-28 12:46:22 +01:00
Patrick Lodder 4229222073
Merge pull request #1771 from dogecoin/michilumin-key-add
michilumin key
2021-02-28 01:47:16 +01:00
Michi Lumin d6d0d95a2f
michilumin key
adding my key to repo
2021-02-27 17:45:40 -07:00
Ross Nicoll 4ffde07033
Merge pull request #1770 from patricklodder/1.14.3-url-sanity-check
[qt] only allow https explorer links
2021-02-27 22:59:23 +00:00
leuqarte 0d2398c1b5
Formatting in "Development Tips and Tricks" (#1766)
* Formatting in "Development Tips and Tricks"
2021-02-27 23:40:14 +01:00
Ross Nicoll bd905d1d08
1.14.3 release documentation (#1733)
* Update credits for 1.14.2 to 1.14.3
* Refresh release notes
* Refresh man pages
* Move 1.14.2 release notes to archive
* Remove Bitcoin 0.14.2 to 0.14.3 credits (covered in previous release notes)
2021-02-27 22:16:28 +00:00
Patrick Lodder b2211a4139
[qt] only allow https explorer links
As reported by Fabian Braeunlein of PS Positive Security GmbH
2021-02-27 22:53:15 +01:00
Ross Nicoll 80e9e800e1
Replace Bitcoin seed nodes with Dogecoin nodes (#1746) 2021-02-27 20:40:40 +00:00
Patrick Lodder 05c54fceca
mark 1.14.3 as release 2021-02-27 17:34:05 +01:00
Patrick Lodder 4dd49512e9
Merge pull request #1762 from DemonRx/ignore-proxy-connection-error
[netbase] Do not print an error on connection timeouts through proxy
2021-02-24 20:42:58 +01:00
Demon ce4f6974b0 ignore-proxy-connection-error 2021-02-23 23:31:02 -05:00
Patrick Lodder dd9edc86dc
Merge pull request #1757 from langerhans/1.14.3-listunspent-query
Add query options to listunspent RPC call
2021-02-23 00:36:54 +01:00
tnaka b3d9bbc7dc fixed listunspent rpc convert parameter 2021-02-22 22:23:14 +01:00
Pedro Branco 3c1fa13921 Add query options to listunspent rpc call 2021-02-22 22:23:09 +01:00
Patrick Lodder 18a55c271c
Merge pull request #1638 from patricklodder/1.14.3-locale-sorting
Locale independent sorting
2021-02-22 11:52:04 +01:00
Carsen Klock dda4b51d89
Update chainparams.cpp (#1751)
Removed Denarius (D) seeders for Dogecoin.
2021-02-21 08:19:17 +00:00
Ross Nicoll 0fce867c51
Bump version to 1.14.3 (#1745)
* Bump version to 1.14.3
* Update copyright year and release status
2021-02-18 07:59:35 +00:00
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
Patrick Lodder ed8864b6d2
Merge pull request #1741 from luisschubert/patch-1
Docs Update build-osx.md for Mac install
2021-02-16 14:35:24 +01:00
Luis-Johannes Schubert 11e99e42e8
Update build-osx.md for Mac install
--c++11 no longer needed and needs to be removed.
2021-02-15 21:28:43 -08: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
Patrick Lodder 5944fbd33c
Merge pull request #1731 from rnicoll/1.14-3-checkpoints
1.14.3 checkpoints
2021-02-14 17:06:21 +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
Max K b3b2f162c6
Merge pull request #1734 from patricklodder/fixate-bip65
Fixate BIP65 softfork heights
2021-02-14 14:29:01 +01: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 0fa6b5c912 Revert ltc_scrypt -> litecoin_scrypt 2021-02-08 09:05:07 +00: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 f6e7d736d3
Merge pull request #1661 from Vertian/1.14.3-dev-osx
Update package links for OSX cross compilation
2021-01-15 20:31:18 +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
Vertian 9327e1d779 Update package links for OSX cross compilation 2021-01-08 16:46:31 -06:00
Patrick Lodder 62976d939b
Merge pull request #1639 from nolim1t/patch-1
Much branding.. wow
2020-08-06 13:35:28 +02: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
BT 6edb354e66
Much branding.. wow
Change references in INSTALL.md from Bitcoin to Dogecoin
2020-07-28 12:36:16 +07: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
Max K b0d25579cb
Merge pull request #1636 from patricklodder/1.14-fix-tests
QA: Fix all the tests
2020-07-22 21:16:28 +02:00
Patrick Lodder 16e5ae5939
fix cents->coins in comment in wallet_tests.cpp 2020-07-22 21:12:23 +02:00
Max K 7f269c6c39
Merge pull request #1631 from m-primo/patch-1
README - window build notes file was not found
2020-07-22 20:13:15 +02:00
Max K e4364e1d0e
Merge pull request #1618 from marcuswin/patch-2
Fix links
2020-07-22 20:10:32 +02:00
Max K f933c83b75
Merge pull request #1605 from greenbigfrog/patch-1
Get rid of git merge leftover text
2020-07-22 20:07:31 +02:00
Max K 358b2734fb
Merge pull request #1548 from preserveddarnell/patch-1
Update README.md
2020-07-22 20:06:46 +02:00
Max K 29b800443c
Merge pull request #1635 from patricklodder/pl-new-key
New pgp key for patricklodder
2020-07-22 20:02:08 +02:00
Patrick Lodder 89c01f3866
rpc-tests: don't use binary.hex() or binary.fromhex()
To retain compatibility with multiple python3 versions
2020-07-22 13:51:27 +02:00
Patrick Lodder 31e6a818ec
rpc-tests: fix fundrawtransaction coin amounts to not spend dust 2020-07-22 13:51:16 +02:00
Patrick Lodder 9dced9cb98
rpc-tests: write credentials to dogecoin.conf, not bitcoin.conf 2020-07-22 13:51:08 +02:00
Patrick Lodder e3d075f710
rpc-tests: fix listtransactions to not spend dust 2020-07-22 13:51:00 +02:00
Patrick Lodder 01a71ec71d
rpc-tests: fix mempool_limit test
do more rounds of large tx creation to be sure to evict the
targeted tx
2020-07-22 13:49:54 +02:00
Patrick Lodder 022bcfb064
rpc-tests: fix importprunedfunds for use with dogecoin
- use non-dust outputs
- reverse the order of transactions to lowest-first, to not re-spend
  expected outputs for later tests.
2020-07-22 13:49:36 +02:00
Patrick Lodder d0afe42ed2
rpc-tests: fix auxpow calls to use .target instead of ._target
Tests weren't adapted to reflect RPC output
2020-07-22 13:49:05 +02:00
Patrick Lodder e896e90e6e
rpc-tests: revert from litecoin_scrypt to ltc_scrypt
This reflects the dependency installed in the dep script at
qa/pull-tester/install-deps.sh
2020-07-22 13:47:33 +02:00
Patrick Lodder 294d408d70
pull-tester: don't hard depend on python 3.6
every script depends on "python3" not "python3.6"
2020-07-22 13:46:52 +02:00
Patrick Lodder cb49441a25
Fix ltc_scrypt dependency for RPC tests
- 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
2020-07-22 13:46:43 +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
Patrick Lodder 971f696733
travis: fix warnings about sudo and env/matrix 2020-07-22 13:43:50 +02:00
Patrick Lodder 362784404e
New key for patricklodder as old one has expired. 2020-07-20 22:44:19 +02:00
Primo 42c93f32de
window build notes file was not found 2020-04-25 22:07:40 +02:00
Alan Rudolf 28d62c2b2b
update qt package download link 2020-03-31 13:11:31 -04:00
Alan Rudolf df1855ffe5
update openssl package download link 2020-03-31 13:11:11 -04: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
marcuswin 06005bd194
Fix links 2019-11-13 23:51:17 +03:00
langerhans 0b46a40ed1 Set next release version to 1.14.2 2019-11-03 19:45:02 +01: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
Jonathan 8877f8ed91
Get rid of git merge leftover text 2019-08-05 21:51:05 +02:00
Max K c348148022
Merge pull request #1601 from langerhans/1.14-supermajority-rpc
Fix RPC description of supermajority based forks
2019-07-14 20:53:40 +02:00
langerhans 2de4045585 Fix RPC description of supermajority based forks 2019-07-14 19:38:26 +02:00
langerhans 5d58c691ca Merge branch 'rnicoll-rnicoll/1.14-litecoin-scrypt' into 1.14-maint 2019-07-14 19:21:56 +02:00
langerhans 6eab99b581 Merge branch 'rnicoll-rnicoll/1590-rebase' into 1.14-maint 2019-07-14 19:20:13 +02:00
langerhans ae9065a17e Merge branch 'rnicoll-rnicoll/1591-rebase' into 1.14-maint 2019-07-14 19:17:14 +02:00
langerhans e1b456e562 Merge branch 'rnicoll-rnicoll/1.14-auxpow-target' into 1.14-maint 2019-07-14 19:14:53 +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
Alan Cramer 314d9b7f67 Updated to Dogecoin Key Values
Updating to match Dogecoin's key values.
2019-07-12 21:31:54 +00:00
Alan Cramer 0354bf7ef6 Updating Dogecoin references in Contrib files
Updating some missed Bitcoin data to Dogecoin branding and values in Contrib folder
2019-07-12 21:31:54 +00:00
Alan Cramer 190d1ab808 Updated Dogecoin references in Docs
Some docs still referencing Bitcoin and Bitcoin Core.  Updated to reflect Dogecoin branding.
2019-07-12 21:31:54 +00:00
Alan Cramer 5632a9341c Updated Linerarize data for Dogecoin
Example data was that of bitcoin.  Updated for Dogecoin values.
2019-07-12 21:30:48 +00:00
Ross Nicoll 776c2b3d2c Update to litecoin_scrypt
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.
2019-07-12 01:26:11 +00:00
Kent 13d1e0a803
Update README.md 2018-10-23 01:27:13 -04:00
Marco c0107cc33f Articols matter in Italian 2017-10-22 03:00:35 +02:00
466 changed files with 23675 additions and 8876 deletions

View file

@ -1,35 +0,0 @@
<!--- Remove sections that do not apply -->
This issue tracker is only for technical issues related to Dogecoin Core.
For general questions about Dogecoin please use one of the various communities, e.g. Reddit, IRC, Discord, etc.
### Describe the issue
### Can you reliably reproduce the issue?
#### If so, please list the steps to reproduce below:
1.
2.
3.
### Expected behaviour
Tell us what should happen
### Actual behaviour
Tell us what happens instead
### Screenshots.
If the issue is related to the GUI, screenshots can be added to this issue via drag & drop.
### What version of Dogecoin Core are you using?
List the version number/commit ID, and if it is an official binary, self compiled or a distribution package such as PPA.
### Machine specs:
- OS:
- CPU:
- RAM:
- Disk size:
- Disk Type (HD/SDD):
### Any extra information that might be useful in the debugging process.
This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred.

40
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,40 @@
---
name: 🐜 Bug Report
about: Create a report to help us improve
title: '[bug] '
---
<!-- Please make sure you are posting an technical issue related to Dogecoin Core. -->
<!-- For general questions about Dogecoin or wallet recovery please use one of the various communities:
* [Dogeducation on reddit](https://www.reddit.com/r/dogeducation/)
* [Discord](https://discord.com/invite/dogecoin) -->
<!-- ISSUES MISSING IMPORTANT INFORMATION MAY BE CLOSED WITHOUT INVESTIGATION. -->
# Bug Report
**Current behavior:**
<!-- Describe how the bug manifests. -->
**Expected behavior**
<!-- Describe what the behavior would be without the bug. -->
**Steps to reproduce:**
<!-- Please explain the steps required to duplicate the issue, especially if you are able to provide a sample application or sample code -->
**Screenshots**
<!-- If the issue is related to the GUI, screenshots can be added to this issue via drag & drop. -->
**Dogecoin Core version**
<!-- List the version number/commit ID, and if it is an official binary, self compiled or a distribution package such as PPA. -->
**Machine specs**
- OS:
- CPU:
- RAM:
- Disk size:
- Disk Type (HD/SDD):
**Extra information**
<!-- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->

View file

@ -0,0 +1,30 @@
---
name: 🚀 Feature Request
about: Suggest an idea for this project
title: '[feat] '
---
<!-- Please make sure you are posting an technical issue related to Dogecoin Core. -->
<!-- For general questions about Dogecoin or wallet recovery please use one of the various communities:
* [Dogeducation on reddit](https://www.reddit.com/r/dogeducation/)
* [Discord](https://discord.com/invite/dogecoin) -->
<!-- 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. -->

227
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,227 @@
name: Continuous Integration
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- 'doc/**'
- 'contrib/**'
- '**/*.md'
jobs:
build:
name: ${{ matrix.name }}
env:
MAKEJOBS: "-j3"
CHECK_DOC: "0"
CCACHE_SIZE: "100M"
CCACHE_TEMPDIR: /tmp/.ccache-temp
CCACHE_COMPRESS: "1"
PYTHON_DEBUG: "1"
WINEDEBUG: fixme-all
SDK_URL: https://bitcoincore.org/depends-sources/sdks
strategy:
fail-fast: false
matrix:
name:
- aarch64-linux
- armhf-linux
- i686-linux
- i686-win
- x86_64-linux-dbg
- x86_64-linux-nowallet
- x86_64-macos
- x86_64-win
- x86_64-linux-experimental
include:
- name: i686-linux
host: i686-pc-linux-gnu
os: ubuntu-18.04
packages: g++-multilib bc python3-zmq
run-tests: true
check-security: true
check-symbols: true
dep-opts: "NO_QT=1"
config-opts: "--enable-zmq --enable-glibc-back-compat LDFLAGS=-static-libstdc++"
goal: install
- name: armhf-linux
host: arm-linux-gnueabihf
os: ubuntu-18.04
packages: g++-arm-linux-gnueabihf
run-tests: false
check-security: true
check-symbols: false
dep-opts: "NO_QT=1"
config-opts: "--enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++"
goal: install
- name: aarch64-linux
host: aarch64-linux-gnu
os: ubuntu-18.04
packages: g++-aarch64-linux-gnu
run-tests: false
check-security: true
check-symbols: false
dep-opts: "NO_QT=1"
config-opts: "--enable-zmq --enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++"
goal: install
- name: x86_64-linux-nowallet
host: x86_64-unknown-linux-gnu
os: ubuntu-18.04
packages: python3
run-tests: true
check-security: true
check-symbols: true
dep-opts: "NO_WALLET=1"
config-opts: "--enable-gui=qt5 --enable-glibc-back-compat --disable-wallet LDFLAGS=-static-libstdc++"
goal: install
- name: x86_64-linux-dbg
host: x86_64-unknown-linux-gnu
os: ubuntu-18.04
packages: bc python3-zmq
run-tests: true
check-security: true
check-symbols: false
dep-opts: "DEBUG=1"
config-opts: "--enable-gui=qt5 --enable-zmq --enable-glibc-back-compat CPPFLAGS=-DDEBUG_LOCKORDER"
goal: install
- name: i686-win
host: i686-w64-mingw32
arch: "i386"
os: ubuntu-18.04
packages: python3 nsis g++-mingw-w64-i686 wine-stable bc wine-binfmt
postinstall: |
sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
sudo update-binfmts --import /usr/share/binfmts/wine
run-tests: true
check-security: true
check-symbols: false
dep-opts: ""
config-opts: "--enable-gui=qt5"
goal: install
- name: x86_64-win
host: x86_64-w64-mingw32
arch: "i386"
os: ubuntu-18.04
packages: python3 nsis g++-mingw-w64-x86-64 wine64 bc wine-binfmt
postinstall: |
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
sudo update-binfmts --import /usr/share/binfmts/wine
run-tests: true
check-security: true
check-symbols: false
dep-opts: ""
config-opts: "--enable-gui=qt5"
goal: install
- name: x86_64-macos
host: x86_64-apple-darwin11
os: ubuntu-18.04
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libtiff-tools libtinfo5 python3-setuptools xorriso libtinfo5
run-tests: false
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "--enable-gui=qt5 --disable-tests"
goal: deploy
sdk: 10.11
- name: x86_64-linux-experimental
host: x86_64-unknown-linux-gnu
os: ubuntu-20.04
packages: bc python3-zmq
run-tests: true
dep-opts: "AVX2=1"
config-opts: "--with-intel-avx2 --enable-gui=qt5 --enable-zmq --enable-glibc-back-compat --enable-reduce-exports"
goal: install
runs-on: ${{ matrix.os }}
steps:
- name: Add architecture
if: ${{ matrix.arch }}
run: |
sudo dpkg --add-architecture "${{ matrix.arch }}"
- name: Install packages
run: |
sudo apt-get update
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps bison
sudo apt-get install ${{ matrix.packages }}
- name: Post install
if: ${{ matrix.postinstall }}
run: ${{ matrix.postinstall }}
- name: Checkout
uses: actions/checkout@v2
- name: SDK cache
if: ${{ matrix.sdk }}
uses: actions/cache@v2
env:
cache-name: sdk
with:
path: ./depends/sdk-sources
key: ${{ matrix.name }}-${{ env.cache-name }}
- name: Install SDK
if: ${{ matrix.sdk }}
run: |
mkdir -p ./depends/sdk-sources
mkdir -p ./depends/SDKs
curl --location --fail $SDK_URL/MacOSX${{ matrix.sdk }}.sdk.tar.gz -o depends/sdk-sources/MacOSX${{ matrix.sdk }}.sdk.tar.gz
tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${{ matrix.sdk }}.sdk.tar.gz
- name: Dependency cache
uses: actions/cache@v2
env:
cache-name: depends
with:
path: ./depends/built
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('depends/packages/*') }}
- name: Build depends
run: |
make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }}
- name: CCache
uses: actions/cache@v2
env:
cache-name: ccache
with:
path: ~/.ccache
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('**/configure.ac') }}
- name: Build Dogecoin
run: |
depends/${{ matrix.host }}/native/bin/ccache --max-size=$CCACHE_SIZE
./autogen.sh
./configure --prefix=`pwd`/depends/${{ matrix.host }} ${{ matrix.config-opts }} --enable-reduce-exports || ( cat config.log && false)
make $MAKEJOBS ${{ matrix.goal }} || ( echo "Build failure. Verbose build follows." && make ${{ matrix.goal }} V=1 ; false )
- name: Run tests
if: ${{ matrix.run-tests }}
run: |
make check $MAKEJOBS VERBOSE=1
qa/pull-tester/install-deps.sh
qa/pull-tester/rpc-tests.py --coverage
- name: Check security
if: ${{ matrix.check-security }}
run: make -C src check-security
- name: Check symbols
if: ${{ matrix.check-symbols }}
run: make -C src check-symbols
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: dogecoin-${{ github.sha }}-${{ matrix.name }}
path: |
depends/${{ matrix.host }}/bin/dogecoin*
dist/Dogecoin-Qt.app

71
.github/workflows/codeql-analysis.yml vendored Normal file
View file

@ -0,0 +1,71 @@
# CodeQL GH Actions file
name: CodeQL
on:
push:
branches:
- '*-dev'
- '*-maint'
pull_request:
# The branches below must be a subset of the branches above
branches:
- '*-dev'
paths-ignore:
- '**/*.md'
- '**/*.txt'
- 'contrib'
- 'doc'
- 'share'
- 'qa'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-18.04
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Update system
run: |
sudo apt-get update --yes
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils --yes
- name: Dependency cache
uses: actions/cache@v2
env:
cache-name: depends
with:
path: ./depends/built
key: codeql-${{ env.cache-name }}-${{ hashFiles('depends/packages/*') }}
- name: Build depends
run: |
pushd depends
make -j4 HOST=x86_64-pc-linux-gnu
popd
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- name: Build Dogecoin
run: |
./autogen.sh
./configure --prefix=`pwd`/depends/x86_64-pc-linux-gnu
make -j4
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

15
.gitignore vendored
View file

@ -110,3 +110,18 @@ qa/cache/*
libbitcoinconsensus.pc
contrib/devtools/split-debug.sh
.idea/
.vscode/*
# Snapcraft
parts/
prime/
stage/
*.snap
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

View file

@ -1,76 +0,0 @@
sudo: required
dist: trusty
os: linux
language: generic
cache:
directories:
- depends/built
- depends/sdk-sources
- $HOME/.ccache
env:
global:
- MAKEJOBS=-j3
- RUN_TESTS=false
- CHECK_DOC=0
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
- CCACHE_SIZE=100M
- CCACHE_TEMPDIR=/tmp/.ccache-temp
- CCACHE_COMPRESS=1
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
- PYTHON_DEBUG=1
- WINEDEBUG=fixme-all
matrix:
# ARM
- HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
# Win32
- HOST=i686-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-i686 wine1.6 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
# 32-bit + dash
- HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc python3-zmq" DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash"
# Win64
- HOST=x86_64-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine1.6 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
# dogecoind
- HOST=x86_64-unknown-linux-gnu PACKAGES="bc python3-zmq" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER"
# No wallet
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3" DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
# Cross-Mac
- HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" OSX_SDK=10.11 GOAL="deploy"
before_install:
- 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
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
- depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
- mkdir build && cd build
- ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make distdir VERSION=$HOST
- cd dogecoin-$HOST
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
- if [ "$RUN_TESTS" = "true" ]; then make $MAKEJOBS check VERBOSE=1; fi
- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/rpc-tests.py --coverage; fi
after_script:
- echo $TRAVIS_COMMIT_RANGE
- echo $TRAVIS_COMMIT_LOG

View file

@ -1,22 +1,22 @@
Contributing to Bitcoin Core
============================
# Contributing to Dogecoin Core
The Bitcoin Core project operates an open contributor model where anyone is
welcome to contribute towards development in the form of peer review, testing
and patches. This document explains the practical process and guidelines for
contributing.
Dogecoin Core is open source software, and we would welcome contributions
which improve the state of the software. For those wanting to discuss changes,
or look for work that needs doing, please see:
Firstly in terms of structure, there is no particular concept of "Core
developers" in the sense of privileged people. Open source often naturally
revolves around meritocracy where longer term contributors gain more trust from
the developer community. However, some hierarchy is necessary for practical
purposes. As such there are repository "maintainers" who are responsible for
merging pull requests as well as a "lead maintainer" who is responsible for the
release cycle, overall merging, moderation and appointment of maintainers.
* [Help requests](https://github.com/dogecoin/dogecoin/labels/help%20wanted)
* [Projects](https://github.com/dogecoin/dogecoin/projects)
* [Dogecoindev on reddit](https://www.reddit.com/r/dogecoindev/)
## Branch Strategy
Contributor Workflow
--------------------
Dogecoin Core's default branch is intentionally a stable release, so that anyone
downloading the code and compiling it gets a stable release. Active development
occurs on branches named after the version they are targeting, for example the
1.14.4 branch is named `1.14.4-dev`. When raising PRs, please raise against the
relevant development branch and **not** against the `master` branch.
## Contributor Workflow
The codebase is maintained using the "contributor workflow" where everyone
without exception contributes patch proposals using "pull requests". This
@ -24,12 +24,15 @@ facilitates social contribution, easy testing and peer review.
To contribute a patch, the workflow is as follows:
- Fork repository
- Create topic branch
- Commit patches
- Fork the repository in GitHub, and clone it your development machine.
- Create a topic branch from the relevant development branch.
- Commit changes to the branch.
- Test your changes, which **must** include the unit and RPC tests passing.
- Push topic branch to your copy of the repository.
- Raise a Pull Request via GitHub.
The project coding conventions in the [developer notes](doc/developer-notes.md)
must be adhered to.
The coding conventions in the [developer notes](doc/developer-notes.md) must be
adhered to.
In general [commits should be atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention)
and diffs should be easy to read. For this reason do not mix any formatting
@ -42,60 +45,19 @@ in init.cpp") then a single title line is sufficient. Commit messages should be
helpful to people reading your code in the future, so explain the reasoning for
your decisions. Further explanation [here](http://chris.beams.io/posts/git-commit/).
If a particular commit references another issue, please add the reference, for
example `refs #1234`, or `fixes #4321`. Using the `fixes` or `closes` keywords
will cause the corresponding issue to be closed when the pull request is merged.
Please refer to the [Git manual](https://git-scm.com/doc) for more information
about Git.
- Push changes to your fork
- Create pull request
The title of the pull request should be prefixed by the component or area that
the pull request affects. Valid areas as:
- *Consensus* for changes to consensus critical code
- *Docs* for changes to the documentation
- *Qt* for changes to bitcoin-qt
- *Mining* for changes to the mining code
- *Net* or *P2P* for changes to the peer-to-peer network code
- *RPC/REST/ZMQ* for changes to the RPC, REST or ZMQ APIs
- *Scripts and tools* for changes to the scripts and tools
- *Tests* for changes to the bitcoin unit tests or QA tests
- *Trivial* should **only** be used for PRs that do not change generated
executable code. Notably, refactors (change of function arguments and code
reorganization) and changes in behavior should **not** be marked as trivial.
Examples of trivial PRs are changes to:
- comments
- whitespace
- variable names
- logging and messages
- *Utils and libraries* for changes to the utils and libraries
- *Wallet* for changes to the wallet code
Examples:
Consensus: Add new opcode for BIP-XXXX OP_CHECKAWESOMESIG
Net: Automatically create hidden service, listen on Tor
Qt: Add feed bump button
Trivial: Fix typo in init.cpp
If a pull request is specifically not to be considered for merging (yet) please
prefix the title with [WIP] or use [Tasks Lists](https://help.github.com/articles/basic-writing-and-formatting-syntax/#task-lists)
in the body of the pull request to indicate tasks are pending.
The body of the pull request should contain enough description about what the
patch does together with any justification/reasoning. You should include
references to any discussions (for example other tickets or mailing list
discussions).
discussions). At this stage one should expect comments and review from other
contributors. You can add more commits to your pull request by committing them
locally and pushing to your fork until you have satisfied feedback.
At this stage one should expect comments and review from other contributors. You
can add more commits to your pull request by committing them locally and pushing
to your fork until you have satisfied all feedback.
Squashing Commits
---------------------------
## Squashing Commits
If your pull request is accepted for merging, you may be asked by a maintainer
to squash and or [rebase](https://git-scm.com/docs/git-rebase) your commits
before it will be merged. The basic squashing workflow is shown below.
@ -117,122 +79,97 @@ Use the pull request that is already open (or was created earlier) to amend
changes. This preserves the discussion and review that happened earlier for
the respective change set.
The length of time required for peer review is unpredictable and will vary from
pull request to pull request.
The length of time required for peer review is unpredictable and will vary
between pull requests.
Pull Request Philosophy
-----------------------
## Pull Request Philosophy
Patchsets should always be focused. For example, a pull request could add a
feature, fix a bug, or refactor code; but not a mixture. Please also avoid super
pull requests which attempt to do too much, are overly large, or overly complex
Pull Requests should always be focused. For example, a pull request could add a
feature, fix a bug, or refactor code; but not a mixture. Please avoid submitting
pull requests that attempt to do too much, are overly large, or overly complex
as this makes review difficult.
###Features
### Features
When adding a new feature, thought must be given to the long term technical debt
and maintenance that feature may require after inclusion. Before proposing a new
feature that will require maintenance, please consider if you are willing to
maintain it (including bug fixing). If features get orphaned with no maintainer
in the future, they may be removed by the Repository Maintainer.
in the future, they may be removed.
###Refactoring
### Refactoring
Refactoring is a necessary part of any software project's evolution. The
following guidelines cover refactoring pull requests for the project.
Dogecoin Core is a direct fork of Bitcoin Core and therefore benefits from as
little refactoring as possible on code that is created upstream. If you see any
structural issues with upstream code, please propose these fixes for
[bitcoin/bitcoin](https://github.com/bitcoin/bitcoin) and future Dogecoin Core
releases will automatically benefit from these.
There are three categories of refactoring, code only moves, code style fixes,
code refactoring. In general refactoring pull requests should not mix these
three kinds of activity in order to make refactoring pull requests easy to
review and uncontroversial. In all cases, refactoring PRs must not change the
behaviour of code within the pull request (bugs must be preserved as is).
Project maintainers aim for a quick turnaround on refactoring pull requests, so
where possible keep them short, uncomplex and easy to verify.
When refactoring Dogecoin-specific code, please keep refactoring requests short,
low complexity and easy to verify.
"Decision Making" Process
-------------------------
## "Decision Making" Process
The following applies to code changes to the Bitcoin Core project (and related
projects such as libsecp256k1), and is not to be confused with overall Bitcoin
Network Protocol consensus changes.
The following applies to code changes to Dogecoin Core, and is not to be
confused with overall Dogecoin Network Protocol consensus changes. All consensus
changes **must** be ratified by miners; a proposal to implement protocol changes
does not guarantee activation on the mainnet, not even when a binary gets
released by maintainers.
Whether a pull request is merged into Bitcoin Core rests with the project merge
maintainers and ultimately the project lead.
Whether a pull request is merged into Dogecoin Core rests with the repository
maintainers.
Maintainers will take into consideration if a patch is in line with the general
principles of the project; meets the minimum standards for inclusion; and will
judge the general consensus of contributors.
principles of Dogecoin; meets the minimum standards for inclusion; and will
take into account the consensus among frequent contributors.
In general, all pull requests must:
- have a clear use case, fix a demonstrable bug or serve the greater good of
the project (for example refactoring for modularisation);
- be well peer reviewed;
- have unit tests and functional tests where appropriate;
Dogecoin;
- be peer reviewed;
- have unit tests and functional tests;
- follow code style guidelines;
- not break the existing test suite;
- where bugs are fixed, where possible, there should be unit tests
demonstrating the bug and also proving the fix. This helps prevent regression.
demonstrating the bug and also proving the fix. This helps prevent
regressions.
Patches that change Bitcoin consensus rules are considerably more involved than
normal because they affect the entire ecosystem and so must be preceded by
extensive mailing list discussions and have a numbered BIP. While each case will
be different, one should be prepared to expend more time and effort than for
other kinds of patches because of increased peer review and consensus building
requirements.
The following patch types are expected to have significant discussion before
approval and merge:
- Consensus rule changes (through softfork or otherwise)
- Policy changes
While each case will be different, one should be prepared to expend more time
and effort than for other kinds of patches because of increased peer review
and consensus building requirements.
###Peer Review
### Peer Review
Anyone may participate in peer review which is expressed by comments in the pull
request. Typically reviewers will review the code for obvious errors, as well as
test out the patch set and opine on the technical merits of the patch. Project
maintainers take into account the peer review when determining if there is
consensus to merge a pull request (remember that discussions may have been
spread out over GitHub, mailing list and IRC discussions). The following
language is used within pull-request comments:
request. Typically, reviewers will review the code for obvious errors, as well as
test out the patch set and opine on the technical merits of the patch.
Repository maintainers take into account the peer review when determining if
there is consensus to merge a pull request.
- ACK means "I have tested the code and I agree it should be merged";
- NACK means "I disagree this should be merged", and must be accompanied by
sound technical justification (or in certain cases of copyright/patent/licensing
issues, legal justification). NACKs without accompanying reasoning may be
disregarded;
- utACK means "I have not tested the code, but I have reviewed it and it looks
OK, I agree it can be merged";
- Concept ACK means "I agree in the general principle of this pull request";
- Nit refers to trivial, often non-blocking issues.
Reviewers should include the commit hash which they reviewed in their comments.
Project maintainers reserve the right to weigh the opinions of peer reviewers
Maintainers reserve the right to weigh the opinions of peer reviewers
using common sense judgement and also may weight based on meritocracy: Those
that have demonstrated a deeper commitment and understanding towards the project
that have demonstrated a deeper commitment and understanding towards Dogecoin
(over time) or have clear domain expertise may naturally have more weight, as
one would expect in all walks of life.
Where a patch set affects consensus critical code, the bar will be set much
higher in terms of discussion and peer review requirements, keeping in mind that
mistakes could be very costly to the wider community. This includes refactoring
of consensus critical code.
Where a patch set proposes to change the Dogecoin consensus, it must have been
discussed extensively, be accompanied by widely discussed documentation and have
a generally widely perceived technical consensus of being a worthwhile change,
based on the judgement of the maintainers.
Where a patch set proposes to change the Bitcoin consensus, it must have been
discussed extensively on the mailing list and IRC, be accompanied by a widely
discussed BIP and have a generally widely perceived technical consensus of being
a worthwhile change based on the judgement of the maintainers.
Release Policy
--------------
The project leader is the release manager for each Bitcoin Core release.
Copyright
---------
## Copyright
By contributing to this repository, you agree to license your work under the
MIT license unless specified otherwise in `contrib/debian/copyright` or at

View file

@ -1,6 +1,7 @@
The MIT License (MIT)
Copyright (c) 2009-2017 The Bitcoin Core developers
Copyright (c) 2013-2021 The Dogecoin Core developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View file

@ -1,5 +1,80 @@
Building Bitcoin
================
# Installing Dogecoin Core
See doc/build-*.md for instructions on building the various
elements of the Bitcoin Core reference implementation of Bitcoin.
### Pre-compiled binaries
The easiest way to install the latest version of the Dogecoin Core software is
by to download the latest precompiled binaries for your platform from the
[release page](https://github.com/dogecoin/dogecoin/releases). Currently,
binaries are released for the following platforms:
- Windows, 64-bit and 32-bit
- Linux, 64-bit and 32-bit
- MacOS, Intel 64-bit
- ARM, 64-bit and 32-bit Linux
These binaries are created and verified by multiple independent people, to
ensure honest and malware-free releases. See
[the gitian building documentation](doc/gitian-building.md) for more information
regarding that process.
### Compiling using packaged dependencies
It is possible to build your own copy of Dogecoin Core with the exact, tested,
dependencies, as used for the binary releases, by using the
[depends system](depends/description.md). Please refer to the
[depends README](depends/README.md) for instructions to build Dogecoin using
these dependencies.
### Compiling using system-provided libraries
The following are developer notes on how to build Dogecoin on your native
platform, using the dependencies as provided by your system's package manager.
They are not complete guides, but include notes on the necessary libraries,
compile flags, etc.
- [Unix Build Notes](doc/build-unix.md)
- [Windows Build Notes](doc/build-windows.md)
- [macOS Build Notes](doc/Building-Dogecoin-1.14-for-Mac.md)
### Testing
Unit tests can be compiled and ran with `make check`. Further details on running
and extending unit tests can be found in [/src/test/README.md](/src/test/README.md).
There are also [regression and integration tests](/qa) 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`
### Tips and tricks
**compiling for debugging**
Run `configure` with the `--enable-debug` option, then `make`. Or run `configure` with
`CXXFLAGS="-g -ggdb -O0"` or whatever debug flags you need.
**debug.log**
If the code is behaving strangely, take a look in the debug.log file in the data directory;
error and debugging messages are written there.
The `-debug=...` command-line option controls debugging; running with just `-debug` will turn
on all categories (and give you a very large debug.log file).
The Qt code routes `qDebug()` output to debug.log under category "qt": run with `-debug=qt`
to see it.
**testnet and regtest modes**
Run with the `-testnet` option to run with "play dogecoins" on the test network, if you
are testing multi-machine code that needs to operate across the internet.
If you are testing something that can run on one machine, run with the `-regtest` option.
In regression test mode, blocks can be created on-demand; see qa/rpc-tests/ for tests
that run in `-regtest` mode.
**DEBUG_LOCKORDER**
Dogecoin Core is a multithreaded application, and deadlocks or other multithreading bugs
can be very difficult to track down. Compiling with `-DDEBUG_LOCKORDER` (`configure
CXXFLAGS="-DDEBUG_LOCKORDER -g"`) inserts run-time checks to keep track of which locks
are held, and adds warnings to the debug.log file if inconsistencies are detected.

View file

@ -34,7 +34,7 @@ OSX_BACKGROUND_IMAGE_DPIS=36 72
OSX_DSSTORE_GEN=$(top_srcdir)/contrib/macdeploy/custom_dsstore.py
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/dogecoin.icns
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW
@ -48,7 +48,7 @@ DIST_CONTRIB = $(top_srcdir)/contrib/dogecoin-cli.bash-completion \
BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \
$(top_srcdir)/contrib/devtools/security-check.py
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/dogecoin.ico \
$(top_srcdir)/share/pixmaps/nsis-header.bmp \
$(top_srcdir)/share/pixmaps/nsis-wizard.bmp \
$(top_srcdir)/doc/README_windows.txt
@ -82,13 +82,13 @@ $(OSX_APP)/Contents/PkgInfo:
$(OSX_APP)/Contents/Resources/empty.lproj:
$(MKDIR_P) $(@D)
@touch $@
@touch $@
$(OSX_APP)/Contents/Info.plist: $(OSX_PLIST)
$(MKDIR_P) $(@D)
$(INSTALL_DATA) $< $@
$(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS)
$(OSX_APP)/Contents/Resources/dogecoin.icns: $(OSX_INSTALLER_ICONS)
$(MKDIR_P) $(@D)
$(INSTALL_DATA) $< $@
@ -101,7 +101,7 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings:
echo '{ CFBundleDisplayName = "$(PACKAGE_NAME)"; CFBundleName = "$(PACKAGE_NAME)"; }' > $@
OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \
$(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \
$(OSX_APP)/Contents/Resources/dogecoin.icns $(OSX_APP)/Contents/Info.plist \
$(OSX_APP)/Contents/MacOS/Dogecoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
osx_volname:

194
README.md
View file

@ -1,139 +1,105 @@
# Dogecoin Core [DOGE, Ð]
==========================
<h1 align="center">
Dogecoin Core [DOGE, Ð]
<br/><br/>
<img src="https://static.tumblr.com/ppdj5y9/Ae9mxmxtp/300coin.png" alt="Dogecoin" width="300"/>
</h1>
![Dogecoin](http://static.tumblr.com/ppdj5y9/Ae9mxmxtp/300coin.png)
<div align="center">
[![Build Status](https://travis-ci.org/dogecoin/dogecoin.svg?branch=1.14-dev)](https://travis-ci.org/dogecoin/dogecoin) [![tip for next commit](https://tip4commit.com/projects/702.svg)](https://tip4commit.com/github/dogecoin/dogecoin)
[![DogecoinBadge](https://img.shields.io/badge/Doge-Coin-yellow.svg)](https://dogecoin.com)
[![MuchWow](https://img.shields.io/badge/Much-Wow-yellow.svg)](https://dogecoin.com)
## What is Dogecoin? Such coin
Dogecoin is a cryptocurrency like Bitcoin, although it does not use SHA256 as its proof of work (POW). Taking development cues from Tenebrix and Litecoin, Dogecoin currently employs a simplified variant of scrypt.
</div>
http://dogecoin.com/
Select language: EN | [CN](./README_zh_CN.md)
## License Much license
Dogecoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more
information or see https://opensource.org/licenses/MIT.
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.
## Development and contributions omg developers
Development is ongoing, and the development team, as well as other volunteers, can freely work in their own trees and submit pull requests when features or bug fixes are ready.
For information about the default fees used on the Dogecoin network, please
refer to the [fee recommendation](doc/fee-recommendation.md).
#### Version strategy
**Website:** [dogecoin.com](https://dogecoin.com)
## Usage 💻
To start your journey with Dogecoin Core, see the [installation guide](INSTALL.md) and the [getting started](doc/getting-started.md) tutorial.
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.
### Such ports
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.
| Function | mainnet | testnet | regtest |
| :------- | ------: | ------: | ------: |
| P2P | 22556 | 44556 | 18444 |
| RPC | 22555 | 44555 | 18332 |
## Ongoing development - Moon plan 🌒
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.
Main development resources:
* [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.
* [Dogecoindev subreddit](https://www.reddit.com/r/dogecoindev/)
### Version strategy
Version numbers are following ```major.minor.patch``` semantics.
#### Branches
### Branches
There are 3 types of branches in this repository:
- **master:** Stable, contains the latest version of the latest *major.minor* release.
- **maintenance:** Stable, contains the latest version of previous releases, which are still under active maintenance. Format: ```<version>-maint```
- **development:** Unstable, contains new code for planned releases. Format: ```<version>-dev```
*Master and maintenance branches are exclusively mutable by release. Planned releases will always have a development branch and pull requests should be submitted against those. Maintenance branches are there for* ***bug fixes only,*** *please submit new features against the development branch with the highest version.*
*Master and maintenance branches are exclusively mutable by release. Planned*
*releases will always have a development branch and pull requests should be*
*submitted against those. Maintenance branches are there for **bug fixes only,***
*please submit new features against the development branch with the highest version.*
#### Contributions
## Contributing 🤝
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).
If you find a bug or experience issues with this software, please report it
using the [issue system](https://github.com/dogecoin/dogecoin/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5Bbug%5D+).
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`
Please see [the contribution guide](CONTRIBUTING.md) to see how you can
participate in the development of Dogecoin Core. There are often
[topics seeking help](https://github.com/dogecoin/dogecoin/labels/help%20wanted)
where your contributions will have high impact and get very appreciation. wow.
Changes should be tested by somebody other than the developer who wrote the
code. This is especially important for large or high-risk changes. It is useful
to add a test plan to the pull request description if testing the changes is
not straightforward.
## Communities 🚀🍾
## Very Much Frequently Asked Questions
You can join the communities on different social media.
To see what's going on, meet people & discuss, find the lastest meme, learn
about Dogecoin, give or ask for help, to share your project.
### How much doge can exist? So many puppies!
Early 2015 (approximately a year and a half after release) there will be approximately 100,000,000,000 coins.
Each subsequent block will grant 10,000 coins to encourage miners to continue to secure the network and make up for lost wallets on hard drives/phones/lost encryption passwords/etc.
Here are some places to visit:
### How to get doge? To the moon!
Dogecoin uses a simplified variant of the scrypt key derivation function as its proof of work with a target time of one minute per block and difficulty readjustment after every block. The block rewards are fixed and halve every 100,000 blocks. Starting with the 600,000th block, a permanent reward of 10,000 Dogecoin per block will be paid.
* [Dogecoin subreddit](https://www.reddit.com/r/dogecoin/)
* [Dogeducation subreddit](https://www.reddit.com/r/dogeducation/)
* [Discord](https://discord.gg/dogecoin)
* [Dogecoin Twitter](https://twitter.com/dogecoin)
Originally, a different payout scheme was envisioned with block rewards being determined by taking the maximum reward as per the block schedule and applying the result of a Mersenne Twister pseudo-random number generator to arrive at a number between 0 and the maximum reward. This was changed, starting with block 145,000, to prevent large pools from gaming the system and mining only high reward blocks. At the same time, the difficulty retargeting was also changed from four hours to once per block (every minute), implementing an algorithm courtesy of the DigiByte Coin development team, to lessen the impact of sudden increases and decreases of network hashing rate.
## Very Much Frequently Asked Questions ❓
The current block reward schedule:
Do you have a question regarding Dogecoin? An answer is perhaps already in the
[FAQ](doc/FAQ.md) or the
[Q&A section](https://github.com/dogecoin/dogecoin/discussions/categories/q-a)
of the discussion board!
199,999: 01,000,000 Dogecoin
100,000144,999: 0500,000 Dogecoin
145,000199,999: 250,000 Dogecoin
200,000299,999: 125,000 Dogecoin
300,000399,999: 62,500 Dogecoin
400,000499,999: 31,250 Dogecoin
500,000599,999: 15,625 Dogecoin
600,000+: 10,000 Dogecoin
The original block reward schedule, with one-minute block targets and four-hour difficulty readjustment:
199,999: 01,000,000 Dogecoin
100,000199,999: 0500,000 Dogecoin
200,000299,999: 0250,000 Dogecoin
300,000399,999: 0125,000 Dogecoin
400,000499,999: 062,500 Dogecoin
500,000599,999: 031,250 Dogecoin
600,000+: 10,000 Dogecoin
### Wow plz make dogecoind/dogecoin-cli/dogecoin-qt
The following are developer notes on how to build Dogecoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
- [OSX Build Notes](doc/build-osx.md)
- [Unix Build Notes](doc/build-unix.md)
- [Windows Build Notes](doc/build-msw.md)
### Such ports
RPC 22555
P2P 22556
![](http://dogesay.com/wow//////such/coin)
## Development tips and tricks
**compiling for debugging**
Run configure with the --enable-debug option, then make. Or run configure with
CXXFLAGS="-g -ggdb -O0" or whatever debug flags you need.
**debug.log**
If the code is behaving strangely, take a look in the debug.log file in the data directory;
error and debugging messages are written there.
The -debug=... command-line option controls debugging; running with just -debug will turn
on all categories (and give you a very large debug.log file).
The Qt code routes qDebug() output to debug.log under category "qt": run with -debug=qt
to see it.
**testnet and regtest modes**
Run with the -testnet option to run with "play dogecoins" on the test network, if you
are testing multi-machine code that needs to operate across the internet.
If you are testing something that can run on one machine, run with the -regtest option.
In regression test mode, blocks can be created on-demand; see qa/rpc-tests/ for tests
that run in -regtest mode.
**DEBUG_LOCKORDER**
Dogecoin Core is a multithreaded application, and deadlocks or other multithreading bugs
can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure
CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of which locks
are held, and adds warnings to the debug.log file if inconsistencies are detected.
## License - Much license ⚖️
Dogecoin Core is released under the terms of the MIT license. See
[COPYING](COPYING) for more information or see
[opensource.org](https://opensource.org/licenses/MIT)

125
README_zh_CN.md Normal file
View file

@ -0,0 +1,125 @@
# 狗狗币核心 Dogecoin Core [DOGE, Ð]
![Dogecoin](https://static.tumblr.com/ppdj5y9/Ae9mxmxtp/300coin.png)
[![Build Status](https://travis-ci.com/dogecoin/dogecoin.svg?branch=master)](https://travis-ci.com/dogecoin/dogecoin)
选择文档语言: [英文](../README.md) | 简体中文 | [其他语言...](./README_zh_CN.md)
尽管狗狗币不使用SHA256作为它的工作量证明POW狗狗币也是一款类似Bitcoin的加密货币。受到Tenebrix和Litecoin的影响狗狗币目前采用一种更简洁的加密方式。
- **网址:** [dogecoin.com.](https://dogecoin.com)
## 证书 炫酷的证书 ⚖️
狗狗币在MIT liscence的条款下发行。详情请参见
[COPYING](COPYING) 或者
[opensource.org](https://opensource.org/licenses/MIT)。
## 开发和贡献 omg 开发者
目前的研发还在进行中开发团队以及其他志愿者可以随意通过自己的代码库分支发布pull request。
#### 版本说明
版本号码遵循以下语法:```major.minor.patch```。
#### 代码库分支(branch)
本代码库有3个branch
- **master主代码库:** 稳定。包含最新版本的release以*major.minor*形式呈现。
- **maintenance维护代码库:** 稳定。包含正在维护中的上一个release的最新版本。格式 ```<version>-maint```
- **development正在开发代码库:** 不稳定。包含下一个release的最新代码。格式 ```<version>-dev```
*Master 和 maintenance 互不干扰。最新release永远包含一个development分支。新的 pull request 应该发布于此。Maintenance 分支**只能用于调试程序**。请将新开发的功能发布在 development 分支的最高版本。*
#### 贡献 ✍️
鼓励开发者为新代码来创建自己的[单元测试](src/test/README.md),或者为旧代码发布新的单元测试。用如下指令编译并运行单元测试(仅限于单元测试在配置中没有被禁用):`make check`。更多关于运行和开发单元测试的信息请查看:[/src/test/README.md](/src/test/README.md).
RPC界面上还有由Python编写的[回归和整合测试regression and integration tests](/qa) 可以在build服务器上自动运行。这些测试还可以通过以下指令来运行`qa/pull-tester/rpc-tests.py`(前提是已经安装了[测试依赖文件test dependencies](/qa))。
代码的改变还应该由除开发者之外的其他人员进行测试。这一点对于大段改动和高危变化尤其重要。建议在pull request的描述中加入测试文档(test plan),如果测试方式并不很直接。
## 灰常常见的问题 ❓
### 到底一共可以有多少狗狗币? 狗狗多多! 🐕
截至2015年初大概发行一年半的时间会有100,000,000,000狗狗币。
之后的每个区块block将会带来10,000狗狗币来激励矿工们持续输出增加挖矿的安全性并且对因丢失的钱包、硬盘、手机、密码等而丢失的狗狗币做出相应弥补。
### 挖矿须知 ⛏
狗狗币采用一种简化版的密钥派生函数作为它的工作量证明。目标时间为每分钟产出一个区块每产出一个区块后都会进行难度值调整。区块奖励是固定的且每产出100,000个区块就会减半。从第600,000个区块开始每产出一个区块的奖励会固定在10,000个狗狗币。
起初我们设想了一种不同的支付方式由Mersenne Twister伪随机数生成器在0到区块计划相应的最大区块奖励中生成一个随机数作为区块奖励。
然而在第145,000区块上为了防止大矿池钻空子只挖高奖励的区块这种方案就不适用了。与此同时难度值调整也从每4小时变为每个区块产生每分钟更改一次使用的是DigiByte Coin开发团队的一个算法以减少狗狗币网络中哈希率突然增大或减少带来的影响。
**目前的区块奖励机制:**
199,999: 01,000,000 Dogecoin
100,000144,999: 0500,000 Dogecoin
145,000199,999: 250,000 Dogecoin
200,000299,999: 125,000 Dogecoin
300,000399,999: 62,500 Dogecoin
400,000499,999: 31,250 Dogecoin
500,000599,999: 15,625 Dogecoin
600,000+: 10,000 Dogecoin
**原先的区块奖励机制(一分钟区块和四小时难度调整):**
199,999: 01,000,000 Dogecoin
100,000199,999: 0500,000 Dogecoin
200,000299,999: 0250,000 Dogecoin
300,000399,999: 0125,000 Dogecoin
400,000499,999: 062,500 Dogecoin
500,000599,999: 031,250 Dogecoin
600,000+: 10,000 Dogecoin
### 请编译我吧 / Wow plz make dogecoind/dogecoin-cli/dogecoin-qt
以下是开发者的笔记教你如何在你自己的平台上搭建狗狗币。这些不是什么权威指南但包含了必要的libary, 编译flag 等等。
- [OSX Build Notes](doc/build-osx.md)
- [Unix Build Notes](doc/build-unix.md)
- [Windows Build Notes](doc/build-windows.md)
### 端口们
- RPC 22555
- P2P 22556
## 开发贴士与技巧
**调试编译**
运行 `configure` 应用 `--enable-debug` 选项, 然后 `make`. 或者运行 `configure` 应用
`CXXFLAGS="-g -ggdb -O0"` 或者其他你需要的flag。
**debug.log**
如果代码表现得很诡异看一眼data路径下的debug.log错误信息和调试消息都在这里。
`-debug=...`这个选项代表调试模式带着这个flag去运行会打开所有的类别并输出一个非常大的debug.log文件
Qt代码把 `qDebug()` 放到qt类别下的debug.log文件里使用方式`-debug=qt`。
**测试链testnet和私有网络regtest模式**
如果你在通过因特网测试跨机代码,在测试链上运行`-testnet`来运行“开始使用狗狗币”。
如果你在测试单机代码,用`-regtest`运行。
在回归测试模式下区块可以随时被按需制造出来参见qa/rpc-tests/。
**DEBUG_LOCKORDER**
狗狗币核心是一个多线程应用,碰到死锁和其他多线程问题都会很难找到原因。如果在代码中发现了不一致的地方,使用-DDEBUG_LOCKORDER编译 (configure CXXFLAGS="-DDEBUG_LOCKORDER -g")会在运行时插入检查语句来检测哪些进程被锁定并把警告加入debug.log文件中。

View file

@ -1,11 +1,11 @@
AC_DEFUN([BITCOIN_FIND_BDB51],[
AC_DEFUN([BITCOIN_FIND_BDB53],[
AC_MSG_CHECKING([for Berkeley DB C++ headers])
BDB_CPPFLAGS=
BDB_LIBS=
bdbpath=X
bdb51path=X
bdb53path=X
bdbdirlist=
for _vn in 5.1 51 5 ''; do
for _vn in 5.3 53 5 ''; do
for _pfx in b lib ''; do
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
done
@ -15,8 +15,8 @@ AC_DEFUN([BITCOIN_FIND_BDB51],[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !((DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR > 5)
#error "failed to find bdb 5.1+"
#if !((DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR >= 3) || DB_VERSION_MAJOR > 5)
#error "failed to find bdb 5.3+"
#endif
]])],[
if test "x$bdbpath" = "xX"; then
@ -28,32 +28,32 @@ AC_DEFUN([BITCOIN_FIND_BDB51],[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !(DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR == 1)
#error "failed to find bdb 5.1"
#if !(DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR == 3)
#error "failed to find bdb 5.3"
#endif
]])],[
bdb51path="${searchpath}"
bdb53path="${searchpath}"
break
],[])
done
if test "x$bdbpath" = "xX"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([libdb_cxx headers missing, Dogecoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality)])
elif test "x$bdb51path" = "xX"; then
elif test "x$bdb53path" = "xX"; then
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdbpath}],db_cxx)
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)])
])
else
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb51path}],db_cxx)
bdbpath="${bdb51path}"
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb53path}],db_cxx)
bdbpath="${bdb53path}"
fi
AC_SUBST(BDB_CPPFLAGS)
# TODO: Ideally this could find the library version and make sure it matches the headers being used
for searchlib in db_cxx-5.1 db_cxx; do
for searchlib in db_cxx-5.3 db_cxx; do
AC_CHECK_LIB([$searchlib],[main],[
BDB_LIBS="-l${searchlib}"
break

View file

@ -2,10 +2,10 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 1)
define(_CLIENT_VERSION_MINOR, 14)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_REVISION, 5)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2019)
define(_COPYRIGHT_YEAR, 2021)
define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core and Dogecoin Core]])
AC_INIT([Dogecoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/dogecoin/dogecoin/issues],[dogecoin],[https://dogecoin.com/])
@ -177,6 +177,12 @@ AC_ARG_ENABLE([zmq],
[use_zmq=$enableval],
[use_zmq=yes])
AC_ARG_WITH([intel-avx2],
[AS_HELP_STRING([--with-intel-avx2],
[Build with intel avx2 (default is no)])],
[intel_avx2=$withval],
[intel_avx2=no])
AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], [])
AC_ARG_ENABLE(man,
@ -383,7 +389,7 @@ case $host in
fi
AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
CPPFLAGS="$CPPFLAGS -DMAC_OSX"
CPPFLAGS="$CPPFLAGS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0"
OBJCXXFLAGS="$CXXFLAGS"
;;
*linux*)
@ -487,6 +493,8 @@ if test x$use_glibc_compat != xno; then
[ fdelt_type="long int"])
AC_MSG_RESULT($fdelt_type)
AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
AX_CHECK_LINK_FLAG([[-Wl,--wrap=__divmoddi4]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=__divmoddi4"])
AX_CHECK_LINK_FLAG([[-Wl,--wrap=log2f]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=log2f"])
else
AC_SEARCH_LIBS([clock_gettime],[rt])
fi
@ -597,7 +605,7 @@ AC_SUBST(LIBMEMENV)
if test x$enable_wallet != xno; then
dnl Check for libdb_cxx only if wallet enabled
BITCOIN_FIND_BDB51
BITCOIN_FIND_BDB53
fi
dnl Check for libminiupnpc (optional)
@ -785,6 +793,16 @@ fi
fi
if test x$intel_avx2 = xyes; then
case $host in
x86_64-*-linux*)
AC_CHECK_LIB([IPSec_MB],[sha1_one_block_avx2],LIBS=-lIPSec_MB, AC_MSG_ERROR(IPSec_MB missing))
AC_CHECK_LIB([IPSec_MB],[sha256_one_block_avx2],LIBS=-lIPSec_MB, AC_MSG_ERROR(IPSec_MB missing))
AC_CHECK_LIB([IPSec_MB],[sha512_one_block_avx2],LIBS=-lIPSec_MB, AC_MSG_ERROR(IPSec_MB missing))
AC_DEFINE(USE_AVX2, 1, [Define this symbol if intel axv2 works])
esac
fi
if test x$use_pkgconfig = xyes; then
: dnl
m4_ifdef(
@ -1090,6 +1108,7 @@ AC_SUBST(BITCOIN_CLI_NAME)
AC_SUBST(BITCOIN_TX_NAME)
AC_SUBST(RELDFLAGS)
AC_SUBST(COMPAT_LDFLAGS)
AC_SUBST(ERROR_CXXFLAGS)
AC_SUBST(HARDENED_CXXFLAGS)
AC_SUBST(HARDENED_CPPFLAGS)

View file

@ -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.
### [Gitian-descriptors](/contrib/gitian-descriptors) ###
Notes on getting Gitian builds up and running using KVM.
### [Gitian-keys](/contrib/gitian-keys)
PGP keys used for signing Bitcoin Core [Gitian release](/doc/release-process.md) results.
PGP keys used for signing Dogecoin Core [Gitian release](/doc/release-process.md) results.
### [MacDeploy](/contrib/macdeploy) ###
Scripts and notes for Mac builds.
Scripts and notes for Mac builds.
### [RPM](/contrib/rpm) ###
RPM spec file for building bitcoin-core on RPM based distributions
RPM spec file for building dogecoin-core on RPM based distributions
### [Gitian-build](/contrib/gitian-build.sh) ###
Script for running full Gitian builds.
Test and Verify Tools
### [Snap](/contrib/snap) ###
snapcraft.yaml file for building and distributing dogecoin-core with Snapcraft.
Test and Verify Tools
---------------------
### [TestGen](/contrib/testgen) ###
Utilities to generate test vectors for the data-driven Bitcoin tests.
Utilities to generate test vectors for the data-driven Dogecoin tests.
### [Verify Binaries](/contrib/verifybinaries) ###
This script attempts to download and verify the signature file SHA256SUMS.asc from bitcoin.org.
This script attempts to download and verify the signature file SHA256SUMS.asc from dogecoin.com.

View file

@ -5,6 +5,7 @@ FORMS += \
../src/qt/forms/coincontroldialog.ui \
../src/qt/forms/editaddressdialog.ui \
../src/qt/forms/helpmessagedialog.ui \
../src/qt/forms/importkeysdialog.ui \
../src/qt/forms/intro.ui \
../src/qt/forms/openuridialog.ui \
../src/qt/forms/optionsdialog.ui \

View file

@ -15,7 +15,7 @@ To install:
If you build yourself, you will either need to modify the paths in
the .desktop file or copy or symlink your dogecoin-qt binary to `/usr/bin`
and the `../../share/pixmaps/bitcoin128.png` to `/usr/share/pixmaps`
and the `../../share/pixmaps/dogecoin128.png` to `/usr/share/pixmaps`
dogecoin-qt.protocol (KDE)

View file

@ -1,5 +1,4 @@
[Desktop Entry]
Encoding=UTF-8
Name=Dogecoin Core
Comment=Connect to the Dogecoin P2P Network
Comment[de]=Verbinde mit dem Dogecoin peer-to-peer Netzwerk

View file

@ -1,6 +1,6 @@
usr/local/bin/dogecoin-qt usr/bin
share/pixmaps/bitcoin32.xpm usr/share/pixmaps
share/pixmaps/bitcoin16.xpm usr/share/pixmaps
share/pixmaps/bitcoin128.png usr/share/pixmaps
share/pixmaps/dogecoin32.xpm usr/share/pixmaps
share/pixmaps/dogecoin16.xpm usr/share/pixmaps
share/pixmaps/dogecoin128.png usr/share/pixmaps
debian/dogecoin-qt.desktop usr/share/applications
debian/dogecoin-qt.protocol usr/share/kde4/services/
debian/dogecoin-qt.protocol usr/share/kde4/services/

View file

@ -1,4 +1,3 @@
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-

View file

@ -0,0 +1,47 @@
#!/bin/sh
# Copyright (c) 2017-2020 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
# This simple script checks for commits beginning with: scripted-diff:
# If found, looks for a script between the lines -BEGIN VERIFY SCRIPT- and
# -END VERIFY SCRIPT-. If no ending is found, it reads until the end of the
# commit message.
# The resulting script should exactly transform the previous commit into the current
# one. Any remaining diff signals an error.
export LC_ALL=C
if test -z $1; then
echo "Usage: $0 <commit>..."
exit 1
fi
RET=0
PREV_BRANCH=$(git name-rev --name-only HEAD)
PREV_HEAD=$(git rev-parse HEAD)
for commit in $(git rev-list --reverse $1); do
if git rev-list -n 1 --pretty="%s" $commit | grep -q "^scripted-diff:"; then
git checkout --quiet $commit^ || exit
SCRIPT="$(git rev-list --format=%b -n1 $commit | sed '/^-BEGIN VERIFY SCRIPT-$/,/^-END VERIFY SCRIPT-$/{//!b};d')"
if test -z "$SCRIPT"; then
echo "Error: missing script for: $commit"
echo "Failed"
RET=1
else
echo "Running script for: $commit"
echo "$SCRIPT"
(eval "$SCRIPT")
git --no-pager diff --exit-code $commit && echo "OK" || (echo "Failed"; false) || RET=1
fi
git reset --quiet --hard HEAD
else
if git rev-list "--format=%b" -n1 $commit | grep -q '^-\(BEGIN\|END\)[ a-zA-Z]*-$'; then
echo "Error: script block marker but no scripted-diff in title of commit $commit"
echo "Failed"
RET=1
fi
fi
done
git checkout --quiet $PREV_BRANCH 2>/dev/null || git checkout --quiet $PREV_HEAD
exit $RET

View file

@ -40,14 +40,16 @@ MAX_VERSIONS = {
'GCC': (4,4,0),
'CXXABI': (1,3,3),
'GLIBCXX': (3,4,13),
'GLIBC': (2,11)
'GLIBC': (2,11),
'V': (0,5,0) # xkb (qt only)
}
# See here for a description of _IO_stdin_used:
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261#109
# Ignore symbols that are exported as part of every executable
IGNORE_EXPORTS = {
b'_edata', b'_end', b'_init', b'__bss_start', b'_fini', b'_IO_stdin_used'
b'_edata', b'_end', b'_init', b'__bss_start', b'_fini', b'_IO_stdin_used',
b'stdin', b'stdout', b'stderr'
}
READELF_CMD = os.getenv('READELF', '/usr/bin/readelf')
CPPFILT_CMD = os.getenv('CPPFILT', '/usr/bin/c++filt')
@ -66,6 +68,8 @@ b'ld-linux.so.2', # 32-bit dynamic linker
b'libX11-xcb.so.1', # part of X11
b'libX11.so.6', # part of X11
b'libxcb.so.1', # part of X11
b'libxkbcommon.so.0', # keyboard keymapping
b'libxkbcommon-x11.so.0', # keyboard keymapping
b'libfontconfig.so.1', # font support
b'libfreetype.so.6', # font parsing
b'libdl.so.2' # programming interface to dynamic linker
@ -160,5 +164,3 @@ if __name__ == '__main__':
retval = 1
exit(retval)

View file

@ -1,4 +1,5 @@
# Copyright (c) 2016 The Bitcoin Core developers
# Copyright (c) 2021 The Dogecoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
@ -17,11 +18,11 @@ osx=true
SIGNER=
VERSION=
commit=false
url=https://github.com/bitcoin/bitcoin
url=https://github.com/dogecoin/dogecoin
proc=2
mem=2000
lxc=true
osslTarUrl=http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
osslTarUrl=https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/osslsigncode/1.7.1-1/osslsigncode_1.7.1.orig.tar.gz
osslPatchUrl=https://bitcoincore.org/cfields/osslsigncode-Backports-to-1.7.1.patch
scriptName=$(basename -- "$0")
signProg="gpg --detach-sign"
@ -31,7 +32,7 @@ commitFiles=true
read -d '' usage <<- EOF
Usage: $scriptName [-c|u|v|b|s|B|o|h|j|m|] signer version
Run this script from the directory containing the bitcoin, gitian-builder, gitian.sigs, and bitcoin-detached-sigs.
Run this script from the directory containing the dogecoin, gitian-builder, gitian.sigs, and dogecoin-detached-sigs.
Arguments:
signer GPG signer to sign each build assert file
@ -39,7 +40,7 @@ version Version number, commit, or branch to build. If building a commit or bra
Options:
-c|--commit Indicate that the version argument is for a commit or branch
-u|--url Specify the URL of the repository. Default is https://github.com/bitcoin/bitcoin
-u|--url Specify the URL of the repository. Default is https://github.com/dogecoin/dogecoin
-v|--verify Verify the gitian build
-b|--build Do a gitian build
-s|--sign Make signed binaries for Windows and Mac OSX
@ -179,8 +180,7 @@ done
if [[ $lxc = true ]]
then
export USE_LXC=1
export LXC_BRIDGE=lxcbr0
sudo ifconfig lxcbr0 up 10.0.2.2
export LXC_BRIDGE=br0
fi
# Check for OSX SDK
@ -232,8 +232,22 @@ echo ${COMMIT}
if [[ $setup = true ]]
then
sudo apt-get install ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm qemu-utils
git clone https://github.com/bitcoin-core/gitian.sigs.git
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
# GIT --date=format-local support
MIN_GIT_VERSION=2.7.0
LASTEST_GIT_VERSION=2.32.0
if ! (echo a version ${MIN_GIT_VERSION}; git --version) | sort -Vk3 | tail -1 | grep -q git; then
sudo apt-get install build-essential make libssl-dev libghc-zlib-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip
wget https://github.com/git/git/archive/v${LASTEST_GIT_VERSION}.zip -O v${LASTEST_GIT_VERSION}.zip
unzip v${LASTEST_GIT_VERSION}.zip
pushd ./git-${LASTEST_GIT_VERSION}
make -j "${proc}" prefix=/usr/local all
make -j "${proc}" prefix=/usr/local install
popd
fi
# GIT CLONE
git clone https://github.com/dogecoin/gitian.sigs.git
git clone https://github.com/dogecoin/dogecoin-detached-sigs.git
git clone https://github.com/devrandom/gitian-builder.git
pushd ./gitian-builder
if [[ -n "$USE_LXC" ]]
@ -247,7 +261,7 @@ then
fi
# Set up build
pushd ./bitcoin
pushd ./dogecoin
git fetch
git checkout ${COMMIT}
popd
@ -256,7 +270,7 @@ popd
if [[ $build = true ]]
then
# Make output folder
mkdir -p ./bitcoin-binaries/${VERSION}
mkdir -p ./dogecoin-binaries/${VERSION}
# Build Dependencies
echo ""
@ -266,7 +280,7 @@ then
mkdir -p inputs
wget -N -P inputs $osslPatchUrl
wget -N -P inputs $osslTarUrl
make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common
make -j "${proc}" -C ../dogecoin/depends download SOURCES_PATH=`pwd`/cache/common
# Linux
if [[ $linux = true ]]
@ -274,9 +288,9 @@ then
echo ""
echo "Compiling ${VERSION} Linux"
echo ""
./bin/gbuild -j ${proc} -m ${mem} --commit bitcoin=${COMMIT} --url bitcoin=${url} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../bitcoin-binaries/${VERSION}
./bin/gbuild -j ${proc} -m ${mem} --commit dogecoin=${COMMIT} --url dogecoin=${url} ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
mv build/out/dogecoin-*.tar.gz build/out/src/dogecoin-*.tar.gz ../dogecoin-binaries/${VERSION}
fi
# Windows
if [[ $windows = true ]]
@ -284,10 +298,10 @@ then
echo ""
echo "Compiling ${VERSION} Windows"
echo ""
./bin/gbuild -j ${proc} -m ${mem} --commit bitcoin=${COMMIT} --url bitcoin=${url} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
mv build/out/bitcoin-*-win-unsigned.tar.gz inputs/bitcoin-win-unsigned.tar.gz
mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../bitcoin-binaries/${VERSION}
./bin/gbuild -j ${proc} -m ${mem} --commit dogecoin=${COMMIT} --url dogecoin=${url} ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
mv build/out/dogecoin-*-win-unsigned.tar.gz inputs/dogecoin-win-unsigned.tar.gz
mv build/out/dogecoin-*.zip build/out/dogecoin-*.exe ../dogecoin-binaries/${VERSION}
fi
# Mac OSX
if [[ $osx = true ]]
@ -295,10 +309,10 @@ then
echo ""
echo "Compiling ${VERSION} Mac OSX"
echo ""
./bin/gbuild -j ${proc} -m ${mem} --commit bitcoin=${COMMIT} --url bitcoin=${url} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
mv build/out/bitcoin-*-osx-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../bitcoin-binaries/${VERSION}
./bin/gbuild -j ${proc} -m ${mem} --commit dogecoin=${COMMIT} --url dogecoin=${url} ../dogecoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-osx.yml
mv build/out/dogecoin-*-osx-unsigned.tar.gz inputs/dogecoin-osx-unsigned.tar.gz
mv build/out/dogecoin-*.tar.gz build/out/dogecoin-*.dmg ../dogecoin-binaries/${VERSION}
fi
popd
@ -325,27 +339,27 @@ then
echo ""
echo "Verifying v${VERSION} Linux"
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
# Windows
echo ""
echo "Verifying v${VERSION} Windows"
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
# Mac OSX
echo ""
echo "Verifying v${VERSION} Mac OSX"
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../dogecoin/contrib/gitian-descriptors/gitian-osx.yml
# Signed Windows
echo ""
echo "Verifying v${VERSION} Signed Windows"
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
# Signed Mac OSX
echo ""
echo "Verifying v${VERSION} Signed Mac OSX"
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
popd
fi
@ -360,10 +374,10 @@ then
echo ""
echo "Signing ${VERSION} Windows"
echo ""
./bin/gbuild -i --commit signature=${COMMIT} ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
mv build/out/bitcoin-*win64-setup.exe ../bitcoin-binaries/${VERSION}
mv build/out/bitcoin-*win32-setup.exe ../bitcoin-binaries/${VERSION}
./bin/gbuild -i --commit signature=${COMMIT} ../dogecoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-win-signer.yml
mv build/out/dogecoin-*win64-setup.exe ../dogecoin-binaries/${VERSION}
mv build/out/dogecoin-*win32-setup.exe ../dogecoin-binaries/${VERSION}
fi
# Sign Mac OSX
if [[ $osx = true ]]
@ -371,9 +385,9 @@ then
echo ""
echo "Signing ${VERSION} Mac OSX"
echo ""
./bin/gbuild -i --commit signature=${COMMIT} ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
mv build/out/bitcoin-osx-signed.dmg ../bitcoin-binaries/${VERSION}/bitcoin-${VERSION}-osx.dmg
./bin/gbuild -i --commit signature=${COMMIT} ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
mv build/out/dogecoin-osx-signed.dmg ../dogecoin-binaries/${VERSION}/dogecoin-${VERSION}-osx.dmg
fi
popd

View file

@ -2,21 +2,21 @@
name: "dogecoin-linux-1.14"
enable_cache: true
suites:
- "trusty"
- "bionic"
architectures:
- "amd64"
packages:
- "curl"
- "g++-aarch64-linux-gnu"
- "g++-4.8-aarch64-linux-gnu"
- "gcc-4.8-aarch64-linux-gnu"
- "g++-7-aarch64-linux-gnu"
- "gcc-7-aarch64-linux-gnu"
- "binutils-aarch64-linux-gnu"
- "g++-arm-linux-gnueabihf"
- "g++-4.8-arm-linux-gnueabihf"
- "gcc-4.8-arm-linux-gnueabihf"
- "g++-7-arm-linux-gnueabihf"
- "gcc-7-arm-linux-gnueabihf"
- "binutils-arm-linux-gnueabihf"
- "g++-4.8-multilib"
- "gcc-4.8-multilib"
- "g++-7-multilib"
- "gcc-7-multilib"
- "binutils-gold"
- "git-core"
- "pkg-config"
@ -24,6 +24,7 @@ packages:
- "libtool"
- "automake"
- "faketime"
- "bison"
- "bsdmainutils"
- "ca-certificates"
- "python"

View file

@ -1,7 +1,7 @@
---
name: "dogecoin-dmg-signer"
suites:
- "trusty"
- "bionic"
architectures:
- "amd64"
packages:

View file

@ -2,7 +2,7 @@
name: "dogecoin-osx-1.14"
enable_cache: true
suites:
- "trusty"
- "bionic"
architectures:
- "amd64"
packages:

View file

@ -1,7 +1,7 @@
---
name: "dogecoin-win-signer"
suites:
- "trusty"
- "bionic"
architectures:
- "amd64"
packages:
@ -11,7 +11,7 @@ remotes:
- "url": "https://github.com/dogecoin/dogecoin-detached-sigs.git"
"dir": "signature"
files:
- "osslsigncode-1.7.1.tar.gz"
- "osslsigncode_1.7.1.orig.tar.gz"
- "osslsigncode-Backports-to-1.7.1.patch"
- "dogecoin-win-unsigned.tar.gz"
script: |
@ -19,13 +19,13 @@ script: |
SIGDIR=${BUILD_DIR}/signature/win
UNSIGNED_DIR=${BUILD_DIR}/unsigned
echo "f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9 osslsigncode-1.7.1.tar.gz" | sha256sum -c
echo "f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9 osslsigncode_1.7.1.orig.tar.gz" | sha256sum -c
echo "a8c4e9cafba922f89de0df1f2152e7be286aba73f78505169bc351a7938dd911 osslsigncode-Backports-to-1.7.1.patch" | sha256sum -c
mkdir -p ${UNSIGNED_DIR}
tar -C ${UNSIGNED_DIR} -xf dogecoin-win-unsigned.tar.gz
tar xf osslsigncode-1.7.1.tar.gz
tar xf osslsigncode_1.7.1.orig.tar.gz
cd osslsigncode-1.7.1
patch -p1 < ${BUILD_DIR}/osslsigncode-Backports-to-1.7.1.patch

View file

@ -2,7 +2,7 @@
name: "dogecoin-win-1.14"
enable_cache: true
suites:
- "trusty"
- "bionic"
architectures:
- "amd64"
packages:
@ -21,6 +21,7 @@ packages:
- "zip"
- "ca-certificates"
- "python"
- "rename"
remotes:
- "url": "https://github.com/dogecoin/dogecoin.git"
"dir": "dogecoin"
@ -29,7 +30,7 @@ script: |
WRAP_DIR=$HOME/wrapped
HOSTS="i686-w64-mingw32 x86_64-w64-mingw32"
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests"
FAKETIME_HOST_PROGS="g++ ar ranlib nm windres strip objcopy"
FAKETIME_HOST_PROGS="ar ranlib nm windres strip objcopy"
FAKETIME_PROGS="date makensis zip"
HOST_CFLAGS="-O2 -g"
HOST_CXXFLAGS="-O2 -g"
@ -70,21 +71,13 @@ script: |
done
}
function create_per-host_linker_wrapper {
# This is only needed for trusty, as the mingw linker leaks a few bytes of
# heap, causing non-determinism. See discussion in https://github.com/bitcoin/bitcoin/pull/6900
function create_per-host_compiler_wrapper {
# -posix variant is required for c++11 threading.
for i in $HOSTS; do
mkdir -p ${WRAP_DIR}/${i}
for prog in collect2; do
echo '#!/bin/bash' > ${WRAP_DIR}/${i}/${prog}
REAL=$(${i}-gcc -print-prog-name=${prog})
echo "export MALLOC_PERTURB_=255" >> ${WRAP_DIR}/${i}/${prog}
echo "${REAL} \$@" >> $WRAP_DIR/${i}/${prog}
chmod +x ${WRAP_DIR}/${i}/${prog}
done
for prog in gcc g++; do
echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog}
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
echo "REAL=\`which -a ${i}-${prog}-posix | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
echo "export COMPILER_PATH=${WRAP_DIR}/${i}" >> ${WRAP_DIR}/${i}-${prog}
@ -98,7 +91,7 @@ script: |
export PATH_orig=${PATH}
create_global_faketime_wrappers "2000-01-01 12:00:00"
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
create_per-host_linker_wrapper "2000-01-01 12:00:00"
create_per-host_compiler_wrapper "2000-01-01 12:00:00"
export PATH=${WRAP_DIR}:${PATH}
cd dogecoin
@ -112,7 +105,7 @@ script: |
export PATH=${PATH_orig}
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
create_per-host_linker_wrapper "${REFERENCE_DATETIME}"
create_per-host_compiler_wrapper "${REFERENCE_DATETIME}"
export PATH=${WRAP_DIR}:${PATH}
# Create the release tarball using (arbitrarily) the first host

View file

@ -0,0 +1,53 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: Keybase OpenPGP JS 0.0.1
Comment: https://keybase.io/crypto
xsFNBFMO4sgBEAChyAICcaqIBhR0uych9PUiruFtARUZgmmgeB66DHESLjm/Lbb1
vjUT1GF00jd5Sb8ue4H/GL8q+Ngn9fiR5NtxfKY4+/5+RGbyl7y3SxvKSt09oilu
L4VyeB95OnoFNfLDzRMNfMEYbCWkJM9B+d1koE2R8Ehly45DuBn4OvnNWKu70Hyk
TozhCkpA9KiBXxOGyUiu3bhFQtchBaf9vaVUoxkv70iqZImtJlhqWJI52RauSck+
9mKURe7uH9JfdL6V2VcY2Mkz2xFPIXB1LkRhNZoUDtyYmwfUFYiz4qh/WoAogFw8
woEHySEpRxKw3ibMlRU7JYW+JHZf5mKzKpZT7ge6Tlv1fqAlLC0MaWCzSNev0nZ7
IOSELSJBZEpF9sknWSbL7RKwqMPRWby7LBSd1VsPzfJZevIraMHWWVPq78iU38k1
3wLwMaJrLvNkMz+5AZT7JPtvzzY5EPNTGdN9gI1G6Tb12BxkaYBpO/zLUCSRoNRi
bP63FvYHd2yIIMqXDVPwg4ckA6t2KIuzjif8wc0yOEK1t/dTjgEdxP0o73RFsqxN
lNaHFkwd+aOdLbBkHQN/e6D5ZqQT/Hy7U+cY8lor4RKrec+mnnBNOTdGTu7cCFyh
7cuOVKJlfKgXXQExBA1gxFTJvUiCyvfEfbWht7xCZvlY6mxl53n2ZMZ8SwARAQAB
zSxrZXliYXNlLmlvL21pY2hpICh2MC4wLjEpIDxtaWNoaUBrZXliYXNlLmlvPsLB
cwQQAQoAHQUCUw7iyAIbLwUJEswDAAMLCQcDFQoIAh4BAheAAAoJEFILU64p6Yhh
0sQP/17gVfuKU7Axwm5TxCcK4PLseqY3uqnc1ueERV7fCI56xIcqLgxUx8TD2jkQ
TL3s9a8l0y7TI8SbTjfYDsnV2oMeJ3qzZogMMIRf5zorwQmsfvJS2vggMYldCZ6T
Op05oVti6w3cIhU9P9Xaxsh/0Qf9SxB28HZnNOorMq8BlS/R3dI8evZ32jK4KxHt
JNyNNFGEPXrYOEuL/rxyYd81ODHsAO+xMGZV7H1D9ttfrQEA0sdpiE6KrxAH9ls8
KjP9TcJe8dggjmt5EAhsSDtExftu8xUUEVC7Q03GkfHg+LfHSAqK79FI39++coSf
QcKAgjReE5uYmqeMCrbcr4VXAAuo+3hMlH5JHIwfnv19KuVZz6xkUcD/BrrCU3Vn
IegO4yH1wdhqwnBzsqsmm2Ue1RaG9iXRxILyOPi3hIGXi4LlvZzxL0vGWMPKytlN
3AlZhrAY6SvtXbPFuU96xvnohvRVnnNPAYggBPCXv10QCL234DJvXtBEel6izEDl
gUtYASrwkyLp3m0DySoBavctntKFucv7x9jalsDOvRwCW7N7c0LfAd8RxiUdfmko
b5kw4jwdec6uHsvBVAb+xmx3KmSBfgDkoizCZvLaXBrxK9Kr1vkxPBI9fInqGCKa
0PCE3BrcBVaWSMTnIP5hDZfF2OmYpUxAJhOvhEH6E8VvnrswzsBNBFMO4sgBCACa
DB0nw4byoiMwUs9BkmV90n0hCWG20xlX0NKZFhIVewRVhVPeUWRSB4jhVJ78q4M6
lVidEBHwKpqDS2XcxRu3lUIWH2kQurVVfYakEtH+WO9IvB9y+5lMDswETkDSChH9
iFRuVwxDbo9knQBbmvzDMH1VtVy5YuJUlElxPgPb9a05/5EDs+T14gCEbiA7cGfD
ZRb5/siE6kNopJeMDaa8t+g7R5SlucQasYIchq6lIA03x66P7KcpI8z0WiH/4bqk
Qg+7uDcd0Hy681QES3XE0mlzcbpDLDDSP8EnXldq0aJRz7eI2WvBASehZebfFuru
3BICsCMkVuDnTIWhCKLJABEBAAHCwoQEGAEKAA8FAlMO4sgFCQHhM4ACGy4BKQkQ
UgtTrinpiGHAXSAEGQEKAAYFAlMO4sgACgkQ3A8+xoA/tFySegf/XwFCj8vsrliO
cNDEHwM/LBteipctcHg0imMuXSjnhwW2Wq8E+W8NfEKftxg+1o24GppYUoEDWSYM
jvy+G5woEYRGLDzI0s92Cx408yJbwQaNE4cp5przvfJ5IjV6f5NxizZ71byRRtd8
8MGFIUCtegX4nBwVhGhDj9Y27R4XxAzZR178yTGBSZ59rICAzHkT5Jaohr7K0XB2
iUyR6/cAxxEtu/+cbAQgQ+qYxW4/amOcuV63t6tB3nejAbP1PQDJdgzxGfCO7PX9
imsODNouDjfRfJoodS5aCp2DO4EYpGEtGYap0K1SIXSzIUs8vOyrxdK56BHPxDDQ
OXanAkmFq+UkD/4splgdyKgRqpQiZSdWJH7KBlaZQ3hQPHLqmo8uevvK7tVNvaqR
3c53QrWyFaWOIkRRufjkA31QQVANLI2vum606PquLzxtrqqddXKv1APlFs+Vryio
RXOUutgI4p0xizo/wx0M6hRKM72Fqp24Vb3HB04QzdDsB6AReOQbb0/avWU6wyTJ
IqDagzPZWdgPM2FnJjKwE0DMjbiUjYExKofuNlyCO4/16Q92HKRgNGy9hkYi1B6D
wf2LznY11T9O+PjIWwlx6RyMpY/NYDKP010Wp62o0/S48yVu7LE/0riyX0JT7hGt
fWK1+0HO6jlNZ8T3PgPQcJ24fyJTRc8jXoi8AUUyKm/IFIBsZndxUt34tA4IDh+r
e9sGOj3yU+OaKMdhy3qLz2qEdPO8fQB7XrmZLYvU9eLypK0for09ZNsmR8V6SIGy
49z+4K4bxS9+o5t0w8MWZ/d6UB/WO8+XzwGrMA4gWbc6DRo302oJA8YISN9fH123
Wr6XsokZYmdnr4FM+u3Bembn5E8vj2Va8hnqj6+Q+W8tA0t+r+FxMBRK3sQ7g7RN
2/6rBOkjI3bu3GJiytITP/QISicquVSJk/9GRDVJpAYbqiLuVWTi5cWTv7hbU6nJ
d19adzzCJGwf9fIpFhu5IoUdwcYaEnZHGvfOGRBYBToI3w+y50H3S1asCg==
=xHA/
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -1,38 +1,31 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQENBFObDPcBCADjZ5or5/p72Scw8n2znFaZT5W9vz9IcCT13fZGlN3QpNnHu772
obv6OrDpiLA7ltshD0RjebSYGlSWYG0UXiN13KM/BPiFdZx/lkS6NPEm78t9NQ36
IuqVXL8A4K+A2ihB92mfS+oaim8HmO/GmJm6dDgQlwadNBaPnLezBHNf5msoym0a
1x8hfY+3Fi7Kwz4hf8njO7cUze/av/7fGFzMCUc5aQpD2SNGNDt20EBjW8z3MCeL
6rCn2NYmDHrHgY3yBHQBkOWmZli6NEENCmbyr9Ab20GTeom4yq7enJ7lN/vmM3Cm
e060xH6/R2iEXrapQ8s90OtsoocZBtbc8v2NABEBAAG0QWdpdGh1Yi5jb20vcGF0
cmlja2xvZGRlciA8cGF0cmlja2xvZGRlckB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5j
b20+iQE+BBMBAgAoBQJTnUu7AhsjBQkJZgGABgsJCAcDAgYVCAIJCgsEFgIDAQIe
AQIXgAAKCRCxxgpl5eZNe1PZB/sGobt+xHMIj5yBFUesSjNHrJL/cnuQAN+2cl2Z
Y/zBo2iuVLfoC3TQohICVZjd4rh98yeim2ODZekb1HE9muXBblLSIK2QV1zwWNCX
beEJlXh7tNqjDpLSrhoyjPRBKuqYqnZJpdMLr/4CiT3Cit0AenCYH+rpHEcQVcYj
NWc92lCux7TPn9QYEdUO00hhQwh3SlSFMItGRkhplPuWwHbm4JEBw5Wah4tac+f8
MR4MEfwwY9Q4MbJNzYgtou2dIJrtIYrQz9NxKYM0MvBNpk8IdZ7T7aLKBC32e02r
243Mz/nTq75Ks0+lnqjoH3ihTIUoJhBFcVFJ9Nt21nRSLFtNtB1QYXRyaWNrIExv
ZGRlciA8cGF0QHBsZGRyLmV1PokBQQQTAQIAKwIbIwUJCWYBgAYLCQgHAwIGFQgC
CQoLBBYCAwECHgECF4AFAlOdS8oCGQEACgkQscYKZeXmTXue+wf5AQgW7rAO/0UO
1b+8CJIpmOdnAcTetR+1x3xTwnAIfrMIzKelLq4ddEy/dyRcTeYcHJENBztKqi+S
oGbE+FzwMabPdl3XerdU9l9mhjN6xO62NIjD/lrpv4i8Ce32mswYFCcQn0SgAw66
zisBTEff3XGcZgTZreEUdIIBijlRR5okbuOKmtLSSyc7mZ+2PsGnZ3x6sutWpPFb
xg/TY56JXOVG4pVXPmZ2SF2CYPFmK2hoGX17WCpU39HCKE0GdLGcTw2bmO3loE6y
Jlvmpaa/jjmGuWvTvGd571KFYsbW5nD32shoq1ejZqhvQLmFgAUC4YfyZ6MsiXO/
DWpOOa7zR7kBDQRTmwz3AQgA7E2xHtwG4oCWy1b1pDGrwn1NlyBSXq68pNGE3rsX
N7os84mzikBQFyLKJg1pjoTSkab/zXL6JC6YNO9/2mmTytsR57ICP0vCJ9Hm/dBp
plngVPS7Q1CbaNz6zAsOl61gb5lsYUIiqr0AZ7YcJy1rb9cg3b8q81OiRPlsFu0E
DejmKifvr2re59EuM61lHUQgeI8pJaja6wcY0lIJZqR/OHwWe7+/hr1zfEx2V7P6
J3/52RYmK6F6hkknHdh9aJwADa8XM+w9iDSXha95isg4Oe14TWMbE6bBwuqnOYR8
l5FfWrb5/KQrSiA0ngSAndkeX7K13GuuMqmKqQXlPpEBFQARAQABiQElBBgBAgAP
BQJTmwz3AhsMBQkJZgGAAAoJELHGCmXl5k17L2MIANjbWb2K+81Uganw/Iwp4Mgt
dtCXlw6F+fISFybGzvBOiKuHUyclcpzydsUqRb7yWGOkNvpTrtdFigU7wbqg5+Hr
xfJYjECjFmOIZjoLu0zAMtKcIEwj2B1GaU34xLgM6BaCj3NUSB8MFeXmkXfbF8Zd
iysI5sheancm/qbODka9wVeCdHxiGMpaZdOAoSP9IHIN5dcNiaaWCghT/jwnFlUR
UXUePECFVgVhHugLPsYwzF7YlObck7rRZoRUD6F8LRmgG3ORB+x1Tcml0oLySm9/
vH10auHHAmPGB2TPF2hSB/zlyblt/XQKj6pKdqWZN7AKACAbjc+uLw1tcF39Cyk=
=MdkT
mQENBF8V/EkBCAC8YTo6YJLNY0To+25b+dcSRcMCo/g9TJlraoJagO9Hr0Njbryg
jG5iptxi6UjDD+8xPK7YYRhaKyzJq1yTjGe5u5WEEtMfNaiVgA6dSEOXTdH4xT6q
v3VundebzZ7TFue7kj7fzEh7t9x2k5+RI2RvOs26ANEBKgJliQIZDXKOLcQuW7k9
9pWvqMWqRyn8WVGNf/UGBoFDcXQ1wo3h6m/LMJIO5L2IGlQWPmc8WT3uHJ/X/5Ln
slQ1ml7h+JjNwN0rAY/ZaJHSEi2y0RtLRzISP0EsA6EbqvJNGI8jqs5rpImgUn9U
8Q8Xz6hLPAiVTmteF63LlKo03wRcH8d/FVSvABEBAAG0N1BhdHJpY2sgTG9kZGVy
IDxwYXRyaWNrbG9kZGVyQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT6JAVQEEwEI
AD4WIQTcbvSov58bHk3h7lItOjRbmNDcHwUCXxX8SQIbAwUJA8JnAAULCQgHAgYV
CgkICwIEFgIDAQIeAQIXgAAKCRAtOjRbmNDcHwHQB/9mzj5kuBwPqTT93iec/zKM
5yRo3oINJOdXW1Mix3HI2xO0t/NnQFRkLxM/aAcsCFVm+ODcG+FBlcvy87MrEh9M
RTMDEx8K5WOK+pSMcEgWqXQb4P0QrEAcNQmdyUswnVyUU8DryB4zp0KwXTgrg8AR
V+6ebmMnXiAbTJkCvItJrA/JJpRa5hk5nl6ED4SRBrUiEOeFFrnTq8NlMgoRldyB
Mx7v5pSamUZh+ZLpEU7lWvOA5C/zo3iVF2ruZnyZPozP1hFORNuUbxnZEaBpwQKi
i1SMC3HOzh8EzatohbOW1rH8iki7IlG6a76kWNJABrsYBmDSOnj9crgvVNxNNHNt
uQENBF8V/EkBCADN8eWUf0OtQdthNoWhRgotz/EzLI9r3sVv2SqbA++rHW9TC7mB
Wl/3e5emXWgKI1EK1Poz5HeKnL3SRx3xizgBTK6+RNQK6svvaLwcx06y8pZP9RqX
jLaRR67fXZCL+ulPtTcbt/JwlaTaokwWsgfy3UZRcK33llLbvWFjht2OGfx8B6Z9
UFRxW4sP0HuE3RrnMATGymWvOZlwYDr73HltksnOEFkz4lVP5VK9kdbndQjIB3Cf
zw/waTqjX+xXjJsFMYZhEDARhP5BQIoQvEv8KRtptNoLJGFZ9RGf+fIHiar2GAZL
4WZbZ0IuGLj419TkgvsUkI83Bx97DkS5Xa+jABEBAAGJATwEGAEIACYWIQTcbvSo
v58bHk3h7lItOjRbmNDcHwUCXxX8SQIbDAUJA8JnAAAKCRAtOjRbmNDcH4iPCACB
3qf7roCdadPSQNRdt1z/97wjbAC9IUC0WPQMU8gsmF2AeFD6O7gM+vMYhOdkpk0l
86FsqgMpZ81mpkitY6XsXgaZmPCfDbe2ou1WuXGGv4TAk0TOOCzJptsoLhxF2sZK
hncnhcx3BxYLQd5YbA5bJRUFfLcY1aMx16NPMkiVyCqvtrg3h3ZsMm3sDPJXih5l
QeqBN6W9CeTaqQC2pv0vqBEFrBIRy38lr2tJTW+LGEjAHk2uZ5bXW0CXRQksfRVy
qGKl8R/YFYzOxElPomFm3bcAYC538E9vWCofiTaDJ72XMLG3nIGNPZz9RJuFvxs0
7E2Vs0AwJc9ZDM4fVMV4
=n+nj
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -0,0 +1,73 @@
# This variant of the unit file is for local installations that are installed with `make install`.
#
# The relevant paths are:
#
#/usr/local/bin/dogecoind
#/usr/local/etc/dogecoin/
#/var/local/dogecoin/
[Unit]
Description=Dogecoin's distributed currency daemon
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/dogecoind -conf=/usr/local/etc/dogecoin/dogecoin.conf -datadir=/var/local/dogecoin
KillSignal=SIGINT
Restart=always
RestartSec=5
TimeoutStopSec=60
TimeoutStartSec=5
StartLimitIntervalSec=120
StartLimitBurst=5
User=dogecoin
Group=dogecoin
### Restrict resource consumption
MemoryAccounting=yes
MemoryLimit=3g
### Restrict access to host file system.
#
# Hide the entire root file system by default, and *only* mount in exactly what is needed.
#
TemporaryFileSystem=/:ro
# Add core dependencies
BindReadOnlyPaths=/etc/ /lib/ /lib64/
# Add daemon paths
BindReadOnlyPaths=/usr/local/bin/dogecoind /usr/local/etc/dogecoin/
BindPaths=/var/local/dogecoin/
### Restrict access to system.
NoNewPrivileges=true
PrivateTmp=true
PrivateDevices=true
PrivateUsers=true
DevicePolicy=closed
ProtectHome=true
ProtectHostname=true
ProtectControlGroups=true
ProtectClock=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectKernelLogs=true
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
MemoryDenyWriteExecute=true
LockPersonality=true
# ProtectSystem=strict would normally be used, however it nullifies TemporaryFileSystem,
# since it remounts root as read only over the top.
# In this case, do not enable ProtectSystem.
#ProtectSystem=strict
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,74 @@
# This variant of the unit file is for "opt" add-on installations that do not form part of the default installation.
# (i.e. out of band installations by the user, not installed by a system package manager like "apt")
#
# The relevant paths are:
#
#/opt/dogecoin/dogecoind
#/etc/opt/dogecoin/
#/var/opt/dogecoin/
[Unit]
Description=Dogecoin's distributed currency daemon
After=network.target
[Service]
Type=simple
ExecStart=/opt/dogecoin/bin/dogecoind -conf=/etc/opt/dogecoin/dogecoin.conf -datadir=/var/opt/dogecoin
KillSignal=SIGINT
Restart=always
RestartSec=5
TimeoutStopSec=60
TimeoutStartSec=5
StartLimitIntervalSec=120
StartLimitBurst=5
User=dogecoin
Group=dogecoin
### Restrict resource consumption
MemoryAccounting=yes
MemoryLimit=3g
### Restrict access to host file system.
#
# Hide the entire root file system by default, and *only* mount in exactly what is needed.
#
TemporaryFileSystem=/:ro
# Add core dependencies
BindReadOnlyPaths=/etc/ /lib/ /lib64/
# Add daemon paths
BindReadOnlyPaths=/opt/dogecoin/ /etc/opt/dogecoin/
BindPaths=/var/opt/dogecoin/
### Restrict access to system.
NoNewPrivileges=true
PrivateTmp=true
PrivateDevices=true
PrivateUsers=true
DevicePolicy=closed
ProtectHome=true
ProtectHostname=true
ProtectControlGroups=true
ProtectClock=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectKernelLogs=true
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
MemoryDenyWriteExecute=true
LockPersonality=true
# ProtectSystem=strict would normally be used, however it nullifies TemporaryFileSystem,
# since it remounts root as read only over the top.
# In this case, do not enable ProtectSystem.
#ProtectSystem=strict
[Install]
WantedBy=multi-user.target

View file

@ -1,22 +1,73 @@
# This variant of the unit file is for package installations.
#
# The relevant paths are:
#
#/usr/bin/dogecoind
#/etc/dogecoin/
#/var/lib/dogecoin/
[Unit]
Description=Dogecoin's distributed currency daemon
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/dogecoind -conf=/etc/dogecoin/dogecoin.conf -datadir=/var/lib/dogecoin
KillSignal=SIGINT
Restart=always
RestartSec=5
TimeoutStopSec=60
TimeoutStartSec=5
StartLimitIntervalSec=120
StartLimitBurst=5
User=dogecoin
Group=dogecoin
Type=forking
PIDFile=/var/lib/dogecoind/dogecoind.pid
ExecStart=/usr/bin/dogecoind -daemon -pid=/var/lib/dogecoind/dogecoind.pid \
-conf=/etc/dogecoin/dogecoin.conf -datadir=/var/lib/dogecoind -disablewallet
### Restrict resource consumption
MemoryAccounting=yes
MemoryLimit=3g
Restart=always
### Restrict access to host file system.
#
# Hide the entire root file system by default, and *only* mount in exactly what is needed.
#
TemporaryFileSystem=/:ro
# Add core dependencies
BindReadOnlyPaths=/etc/ /lib/ /lib64/
# Add daemon paths
BindReadOnlyPaths=/usr/bin/dogecoind /etc/dogecoin/
BindPaths=/var/lib/dogecoin
### Restrict access to system.
NoNewPrivileges=true
PrivateTmp=true
TimeoutStopSec=60s
TimeoutStartSec=2s
StartLimitInterval=120s
StartLimitBurst=5
PrivateDevices=true
PrivateUsers=true
DevicePolicy=closed
ProtectHome=true
ProtectHostname=true
ProtectControlGroups=true
ProtectClock=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectKernelLogs=true
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
MemoryDenyWriteExecute=true
LockPersonality=true
# ProtectSystem=strict would normally be used, however it nullifies TemporaryFileSystem,
# since it remounts root as read only over the top.
# In this case, do not enable ProtectSystem.
#ProtectSystem=strict
[Install]
WantedBy=multi-user.target

View file

@ -1,5 +1,5 @@
# Linearize
Construct a linear, no-fork, best version of the Bitcoin blockchain. The scripts
Construct a linear, no-fork, best version of the Dogecoin blockchain. The scripts
run using Python 3 but are compatible with Python 2.
## Step 1: Download hash list
@ -11,7 +11,7 @@ Required configuration file settings for linearize-hashes:
Optional config file setting for linearize-hashes:
* RPC: `host` (Default: `127.0.0.1`)
* RPC: `port` (Default: `8332`)
* RPC: `port` (Default: `22555`)
* Blockchain: `min_height`, `max_height`
* `rev_hash_bytes`: If true, the written block hash list will be
byte-reversed. (In other words, the hash returned by getblockhash will have its
@ -20,7 +20,7 @@ standalone hash lists but safe to use with linearize-data.py, which will output
the same data no matter which byte format is chosen.
The `linearize-hashes` script requires a connection, local or remote, to a
JSON-RPC server. Running `bitcoind` or `bitcoin-qt -server` will be sufficient.
JSON-RPC server. Running `dogecoind` or `dogecoin-qt -server` will be sufficient.
## Step 2: Copy local block data
@ -38,7 +38,7 @@ will be printed.
respectively, to the current time and to the timestamp of the most recent block
written to the script's blockchain.
* `genesis`: The hash of the genesis block in the blockchain.
* `input`: bitcoind blocks/ directory containing blkNNNNN.dat
* `input`: dogecoind blocks/ directory containing blkNNNNN.dat
* `hashlist`: text file containing list of block hashes created by
linearize-hashes.py.
* `max_out_sz`: Maximum size for files created by the `output_file` option.

View file

@ -1,9 +1,9 @@
# bitcoind RPC settings (linearize-hashes)
# dogecoind RPC settings (linearize-hashes)
rpcuser=someuser
rpcpassword=somepassword
host=127.0.0.1
port=8332
#port=18332
port=22555
#port=44555
# bootstrap.dat hashlist settings (linearize-hashes)
max_height=313000
@ -11,14 +11,14 @@ max_height=313000
# bootstrap.dat input/output settings (linearize-data)
# mainnet
netmagic=f9beb4d9
genesis=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
input=/home/example/.bitcoin/blocks
netmagic=c0c0c0c0
genesis=1a91e3dace36e2be3bf030a65679fe821aa1d6ef92e7c9902eb318182c355691
input=/home/example/.dogecoin/blocks
# testnet
#netmagic=0b110907
#genesis=000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943
#input=/home/example/.bitcoin/testnet3/blocks
#genesis=bb0a78264637406b6360aad926284d544d7049f45189db5664f3c4d07350559e
#input=/home/example/.dogecoin/testnet3/blocks
# "output" option causes blockchain files to be written to the given location,
# with "output_file" ignored. If not used, "output_file" is used instead.

View file

@ -283,9 +283,9 @@ if __name__ == '__main__':
settings['rev_hash_bytes'] = settings['rev_hash_bytes'].lower()
if 'netmagic' not in settings:
settings['netmagic'] = 'f9beb4d9'
settings['netmagic'] = 'c0c0c0c0'
if 'genesis' not in settings:
settings['genesis'] = '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f'
settings['genesis'] = '1a91e3dace36e2be3bf030a65679fe821aa1d6ef92e7c9902eb318182c355691'
if 'input' not in settings:
settings['input'] = 'input'
if 'hashlist' not in settings:

View file

@ -115,7 +115,7 @@ if __name__ == '__main__':
if 'host' not in settings:
settings['host'] = '127.0.0.1'
if 'port' not in settings:
settings['port'] = 8332
settings['port'] = 22555
if 'min_height' not in settings:
settings['min_height'] = 0
if 'max_height' not in settings:

View file

@ -11,5 +11,5 @@ This script should not be run manually, instead, after building as usual:
During the process, the disk image window will pop up briefly where the fancy
settings are applied. This is normal, please do not interfere.
When finished, it will produce `Bitcoin-Core.dmg`.
When finished, it will produce `Dogecoin-Core.dmg`.

View file

@ -6,7 +6,7 @@
set -e
ROOTDIR=dist
BUNDLE="${ROOTDIR}/Bitcoin-Qt.app"
BUNDLE="${ROOTDIR}/Dogecoin-Qt.app"
CODESIGN=codesign
TEMPDIR=sign.temp
TEMPLIST=${TEMPDIR}/signatures.txt

18
contrib/nixos/shell.nix Normal file
View file

@ -0,0 +1,18 @@
{ pkgs ? import <nixpkgs> { } }:
with pkgs;
mkShell {
nativeBuildInputs = [
pkg-config
autoreconfHook
openssl
db5
util-linux
boost
zlib
libevent
miniupnpc
qt4
protobuf
qrencode
];
}

View file

@ -1,5 +1,5 @@
### QoS (Quality of service) ###
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. It limits outbound TCP traffic with a source or destination port of 8333, but not if the destination IP is within a LAN.
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Dogecoin network. It limits outbound TCP traffic with a source or destination port of 22556, but not if the destination IP is within a LAN.
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.
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.

View file

@ -44,16 +44,16 @@ fi
# ret=$?
#done
#limit outgoing traffic to and from port 8333. but not when dealing with a host on the local network
#limit outgoing traffic to and from port 22556. but not when dealing with a host on the local network
# (defined by $LOCALNET_V4 and $LOCALNET_V6)
# --set-mark marks packages matching these criteria with the number "2" (v4)
# --set-mark marks packages matching these criteria with the number "4" (v6)
# these packets are filtered by the tc filter with "handle 2"
# this filter sends the packages into the 1:11 class, and this class is limited to ${LIMIT}
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 8333 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 8333 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 22556 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
iptables -t mangle -A OUTPUT -p tcp -m tcp --sport 22556 ! -d ${LOCALNET_V4} -j MARK --set-mark 0x2
if [ ! -z "${LOCALNET_V6}" ] ; then
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --dport 8333 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --sport 8333 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --dport 22556 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
ip6tables -t mangle -A OUTPUT -p tcp -m tcp --sport 22556 ! -d ${LOCALNET_V6} -j MARK --set-mark 0x4
fi

View file

@ -243,20 +243,20 @@ done
%if %{_buildqt}
# qt icons
install -D -p share/pixmaps/bitcoin.ico %{buildroot}%{_datadir}/pixmaps/bitcoin.ico
install -D -p share/pixmaps/dogecoin.ico %{buildroot}%{_datadir}/pixmaps/dogecoin.ico
install -p share/pixmaps/nsis-header.bmp %{buildroot}%{_datadir}/pixmaps/
install -p share/pixmaps/nsis-wizard.bmp %{buildroot}%{_datadir}/pixmaps/
install -p %{SOURCE100} %{buildroot}%{_datadir}/pixmaps/bitcoin.svg
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin16.png -w16 -h16
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin32.png -w32 -h32
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin64.png -w64 -h64
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin128.png -w128 -h128
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/bitcoin256.png -w256 -h256
%{_bindir}/convert -resize 16x16 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin16.xpm
%{_bindir}/convert -resize 32x32 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin32.xpm
%{_bindir}/convert -resize 64x64 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin64.xpm
%{_bindir}/convert -resize 128x128 %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin128.xpm
%{_bindir}/convert %{buildroot}%{_datadir}/pixmaps/bitcoin256.png %{buildroot}%{_datadir}/pixmaps/bitcoin256.xpm
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin16.png -w16 -h16
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin32.png -w32 -h32
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin64.png -w64 -h64
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin128.png -w128 -h128
%{_bindir}/inkscape %{SOURCE100} --export-png=%{buildroot}%{_datadir}/pixmaps/dogecoin256.png -w256 -h256
%{_bindir}/convert -resize 16x16 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin16.xpm
%{_bindir}/convert -resize 32x32 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin32.xpm
%{_bindir}/convert -resize 64x64 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin64.xpm
%{_bindir}/convert -resize 128x128 %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin128.xpm
%{_bindir}/convert %{buildroot}%{_datadir}/pixmaps/dogecoin256.png %{buildroot}%{_datadir}/pixmaps/dogecoin256.xpm
touch %{buildroot}%{_datadir}/pixmaps/*.png -r %{SOURCE100}
touch %{buildroot}%{_datadir}/pixmaps/*.xpm -r %{SOURCE100}

View file

@ -127,10 +127,10 @@ def main():
g.write(' * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.\n')
g.write(' */\n')
with open(os.path.join(indir,'nodes_main.txt'),'r') as f:
process_nodes(g, f, 'pnSeed6_main', 8333)
process_nodes(g, f, 'pnSeed6_main', 22556)
g.write('\n')
with open(os.path.join(indir,'nodes_test.txt'),'r') as f:
process_nodes(g, f, 'pnSeed6_test', 18333)
process_nodes(g, f, 'pnSeed6_test', 44556)
g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n')
if __name__ == '__main__':

24
contrib/snap/README.md Normal file
View file

@ -0,0 +1,24 @@
All the commands I used for building and pushing to Snapcraft. I've only tested the amd64 .snap package, but anyone on amd64, arm64, or i686 should be able to build and/or install it for themselves with these instructions.
---
## Building Locally
```
sudo apt install snapd
sudo snap install --classic snapcraft
snapcraft
```
### To Install Locally
```
snap install \*.snap --devmode
```
### To Push to Snapcraft
```
snapcraft login
snapcraft register dogecoin-core
snapcraft push \*.snap --release=edge
sudo snap install dogecoin-core --channel=edge
```

View file

@ -0,0 +1,75 @@
name: dogecoin-core # you probably want to 'snapcraft register <name>'
version: '1.14.5'
summary: Reference client of Dogecoin, a peer-to-peer digital currency like Bitcoin.
description: |
Dogecoin is a cryptocurrency like Bitcoin, although it does not use SHA256 as its proof of work (POW). Taking development cues from Tenebrix and Litecoin, Dogecoin currently employs a simplified variant of scrypt. MIT licenced.
base: core18
grade: stable
confinement: strict
architectures:
- build-on: [amd64, i386, arm64]
apps:
d:
command: dogecoind
plugs: [home, removable-media, network, network-bind]
environment:
# Override HOME so the datadir is located at ~/snap/dogecoin-core/common/.dogecoin/ instead of ~/snap/dogecoin-core/current/.dogecoin/, and each new version of the snap won't have a different data directory: https://docs.snapcraft.io/environment-variables/7983
HOME: $SNAP_USER_COMMON
qt:
command: qt4-launch dogecoin-qt
plugs: [home, removable-media, network, network-bind, desktop, x11, unity7]
environment:
HOME: $SNAP_USER_COMMON
DISABLE_WAYLAND: 1
cli:
command: dogecoin-cli
plugs: [home, removable-media, network]
environment:
HOME: $SNAP_USER_COMMON
parts:
dogecoin-core:
plugin: nil
override-build: |
echo "Downloading files..."
wget https://github.com/dogecoin/dogecoin/releases/download/v${SNAPCRAFT_PROJECT_VERSION}/dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz
wget https://github.com/dogecoin/gitian.sigs/archive/refs/heads/master.zip
unzip master.zip
echo "Verifying secure hash matches signed values..."
checksum=$(sha256sum dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz)
if ! (grep -r $checksum * | grep dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz); then
echo "Secure hash not verified."
return
else
echo "Secure hash verified."
fi
tar -xvf dogecoin-${SNAPCRAFT_PROJECT_VERSION}-${SNAPCRAFT_ARCH_TRIPLET}.tar.gz
echo "Running tests..."
if ! (dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/test_dogecoin); then
echo "Dogecoin tests failed."
return
else
echo "Dogecoin tests passed."
fi
echo "Installing Dogecoin..."
install -m 0755 -D -t $SNAPCRAFT_PART_INSTALL/bin dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/dogecoind
install -m 0755 -D -t $SNAPCRAFT_PART_INSTALL/bin dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/dogecoin-qt
install -m 0755 -D -t $SNAPCRAFT_PART_INSTALL/bin dogecoin-${SNAPCRAFT_PROJECT_VERSION}/bin/dogecoin-cli
wget https://raw.githubusercontent.com/dogecoin/dogecoin/master/share/pixmaps/dogecoin128.png
install -m 0644 -D -t $SNAPCRAFT_PART_INSTALL/share/pixmaps dogecoin128.png
build-packages:
- unzip
- wget
stage-packages:
- libfreetype6
- libpng16-16
- libx11-xcb1
- libx11-6
- libfontconfig
qt4conf:
build-packages:
- dpkg-dev
plugin: make
source: https://github.com/kyrofa/qt4conf.git

View file

@ -19,11 +19,11 @@ from binascii import b2a_hex
# key types
PUBKEY_ADDRESS = 30
SCRIPT_ADDRESS = 5
PUBKEY_ADDRESS_TEST = 111
SCRIPT_ADDRESS = 22
PUBKEY_ADDRESS_TEST = 113
SCRIPT_ADDRESS_TEST = 196
PRIVKEY = 158
PRIVKEY_TEST = 239
PRIVKEY_TEST = 241
metadata_keys = ['isPrivkey', 'isTestnet', 'addrType', 'isCompressed']
# templates for valid sequences

View file

@ -6,6 +6,7 @@ SDK_PATH ?= $(BASEDIR)/SDKs
NO_QT ?=
NO_WALLET ?=
NO_UPNP ?=
AVX2 ?=
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
BUILD = $(shell ./config.guess)
@ -92,14 +93,19 @@ $(host_arch)_$(host_os)_id_string+=$(shell $(host_STRIP) --version 2>/dev/null)
qt_packages_$(NO_QT) = $(qt_packages) $(qt_$(host_os)_packages) $(qt_$(host_arch)_$(host_os)_packages)
wallet_packages_$(NO_WALLET) = $(wallet_packages)
upnp_packages_$(NO_UPNP) = $(upnp_packages)
avx2_packages_$(AVX2) = $(avx2_$(host_arch)_$(host_os)_packages)
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(qt_packages_) $(wallet_packages_) $(upnp_packages_)
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(avx2_packages_1) $(qt_packages_) $(wallet_packages_) $(upnp_packages_)
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
ifneq ($(qt_packages_),)
native_packages += $(qt_native_packages)
endif
ifneq ($(avx2_packages_1),)
native_packages += $(avx2_native_packages)
endif
all_packages = $(packages) $(native_packages)
meta_depends = Makefile funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
@ -119,11 +125,35 @@ $(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
$(AT)cd $(@D); $(foreach package,$^, tar xf $($(package)_cached); )
$(AT)touch $@
# $PATH is not preserved between ./configure and make by convention. Its
# modification and overriding at ./configure time is (as I understand it)
# supposed to be captured by the AC_{PROG_{,OBJ}CXX,PATH_{PROG,TOOL}} macros,
# which will expand the program names to their full absolute paths. The notable
# exception is command line overriding: ./configure CC=clang, which skips the
# program name expansion step, and works because the user implicitly indicates
# with CC=clang that clang will be available in $PATH at all times, and is most
# likely part of the user's system.
#
# Therefore, when we "seed the autoconf cache"/"override well-known program
# vars" by setting AR=<blah> in our config.site, either one of two things needs
# to be true for the build system to work correctly:
#
# 1. If we refer to the program by name (e.g. AR=riscv64-gnu-linux-ar), the
# tool needs to be available in $PATH at all times.
#
# 2. If the tool is _**not**_ expected to be available in $PATH at all times
# (such as is the case for our native_cctools binutils tools), it needs to
# be referred to by its absolute path, such as would be output by the
# AC_PATH_{PROG,TOOL} macros.
#
# Minor note: it is also okay to refer to tools by their absolute path even if
# we expect them to be available in $PATH at all times, more specificity does
# not hurt.
$(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_build_id)
$(AT)@mkdir -p $(@D)
$(AT)sed -e 's|@HOST@|$(host)|' \
-e 's|@CC@|$(toolchain_path)$(host_CC)|' \
-e 's|@CXX@|$(toolchain_path)$(host_CXX)|' \
-e 's|@CC@|$(host_CC)|' \
-e 's|@CXX@|$(host_CXX)|' \
-e 's|@AR@|$(toolchain_path)$(host_AR)|' \
-e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
-e 's|@NM@|$(toolchain_path)$(host_NM)|' \

View file

@ -1,3 +1,51 @@
### Prerequisites
The depends system is maintained and tested using Ubuntu Bionic. Both generic
apt packages, and packages specific to the target architecture are required to
successfully compile all dependencies. Listed packages are tested and known to
work.
#### Generic packages
```
sudo apt-get install autoconf automake binutils-gold ca-certificates curl \
faketime git-core libtool pkg-config python bison
```
#### Generic linux: i686-pc-linux-gnu and x86_64-linux-gnu
```
sudo apt-get install g++-7-multilib gcc-7-multilib
```
#### ARM7 32bit: arm-linux-gnueabihf
```
sudo apt-get install g++-arm-linux-gnueabihf g++-7-arm-linux-gnueabihf \
gcc-7-arm-linux-gnueabihf binutils-arm-linux-gnueabihf
```
#### ARM 64bit: aarch64-linux-gnu
```
sudo apt-get install g++-aarch64-linux-gnu g++-7-aarch64-linux-gnu \
gcc-7-aarch64-linux-gnu binutils-aarch64-linux-gnu
```
#### Windows: i686-w64-mingw32 and x86_64-w64-mingw32
```
sudo apt-get install g++ g++-mingw-w64 mingw-w64 nsis zip
```
#### macOS (Intel): x86_64-apple-darwin11
```
sudo apt-get install g++ cmake imagemagick fonts-tuffy libz-dev libbz2-dev \
libcap-dev librsvg2-bin libtiff-tools python python-dev \
python-setuptools
```
### Usage
To build dependencies for the current arch+OS:
@ -56,4 +104,3 @@ Additional targets:
- [description.md](description.md): General description of the depends system
- [packages.md](packages.md): Steps for adding packages

View file

@ -2,8 +2,12 @@ OSX_MIN_VERSION=10.8
OSX_SDK_VERSION=10.11
OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
LD64_VERSION=253.9
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
clang_prog=$(build_prefix)/bin/clang
clangxx_prog=$(clang_prog)++
darwin_CC=$(build_prefix)/bin/clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
darwin_CXX=$(clang_prog)++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
darwin_CFLAGS=-pipe
darwin_CXXFLAGS=$(darwin_CFLAGS)

View file

@ -1,8 +1,8 @@
package=bdb
$(package)_version=5.1.29
$(package)_version=5.3.28
$(package)_download_path=http://download.oracle.com/berkeley-db
$(package)_file_name=db-$($(package)_version).NC.tar.gz
$(package)_sha256_hash=08238e59736d1aacdd47cfb8e68684c695516c37f4fbe1b8267dde58dc3a576c
$(package)_sha256_hash=76a25560d9e52a198d37a31440fd07632b5f1f8f9f2b6d5438f4bc3e7c9013ef
$(package)_build_subdir=build_unix
define $(package)_set_vars
@ -24,7 +24,7 @@ define $(package)_config_cmds
endef
define $(package)_build_cmds
$(MAKE) libdb_cxx-5.1.a libdb-5.1.a
$(MAKE) libdb_cxx-5.3.a libdb-5.3.a
endef
define $(package)_stage_cmds

View file

@ -5,7 +5,7 @@ $(package)_file_name=$(package)-$($(package)_version).tar.bz2
$(package)_sha256_hash=3a3bb2c4e15ffb433f2032f50a5b5a92558206822e22bfe8cbe339af4aa82f88
define $(package)_set_vars
$(package)_config_opts=--without-zlib --without-png --disable-static
$(package)_config_opts=--without-zlib --without-png --without-harfbuzz --without-bzip2 --disable-static
$(package)_config_opts_linux=--with-pic
endef

View file

@ -0,0 +1,19 @@
package=intel-ipsec-mb
$(package)_version=1.0
$(package)_download_path=https://github.com/intel/intel-ipsec-mb/archive/refs/tags
$(package)_file_name=v$($(package)_version).tar.gz
$(package)_sha256_hash=03501aea472d3c8fdf8f1f207816eefeaf5e4ebbdc71d88dcb26b2519841bb74
$(package)_patches=remove_digest_init.patch
$(package)_dependencies=native_nasm
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/remove_digest_init.patch
endef
define $(package)_build_cmds
$(MAKE) NASM=$(build_prefix)/bin/nasm
endef
define $(package)_stage_cmds
$(MAKE) NASM=$(build_prefix)/bin/nasm PREFIX=$($(package)_staging_prefix_dir) SHARED=n NOLDCONFIG=y install
endef

View file

@ -1,15 +1,15 @@
package=libevent
$(package)_version=2.1.7
$(package)_version=2.1.11-stable
$(package)_download_path=https://github.com/libevent/libevent/archive/
$(package)_file_name=release-$($(package)_version)-rc.tar.gz
$(package)_sha256_hash=548362d202e22fe24d4c3fad38287b4f6d683e6c21503341373b89785fa6f991
$(package)_file_name=release-$($(package)_version).tar.gz
$(package)_sha256_hash=229393ab2bf0dc94694f21836846b424f3532585bac3468738b7bf752c03901e
define $(package)_preprocess_cmds
./autogen.sh
endef
define $(package)_set_vars
$(package)_config_opts=--disable-shared --disable-openssl --disable-libevent-regress
$(package)_config_opts=--disable-shared --disable-openssl --disable-libevent-regress --disable-samples
$(package)_config_opts_release=--disable-debug-mode
$(package)_config_opts_linux=--with-pic
endef

View file

@ -0,0 +1,31 @@
package=libxkbcommon
$(package)_version=0.8.4
$(package)_download_path=https://xkbcommon.org/download/
$(package)_file_name=$(package)-$($(package)_version).tar.xz
$(package)_sha256_hash=60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b
$(package)_dependencies=libxcb
define $(package)_set_vars
$(package)_config_opts = --enable-option-checking --disable-dependency-tracking
$(package)_config_opts += --disable-static --disable-docs
endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux
endef
define $(package)_config_cmds
$($(package)_autoconf)
endef
define $(package)_build_cmds
$(MAKE)
endef
define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef
define $(package)_postprocess_cmds
rm -rf lib/*.la
endef

View file

@ -1,9 +1,8 @@
package=native_ds_store
$(package)_version=1.1.0
$(package)_download_path=https://bitbucket.org/al45tair/ds_store/get
$(package)_download_file=v$($(package)_version).tar.bz2
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
$(package)_sha256_hash=921596764d71d1bbd3297a90ef6d286f718794d667e4f81d91d14053525d64c1
$(package)_download_path=https://github.com/al45tair/ds_store/archive/
$(package)_file_name=v$($(package)_version).tar.gz
$(package)_sha256_hash=a9f4c0755c6be7224ff7029e188dd262e830bb81e801424841db9eb0780ec8ed
$(package)_install_libdir=$(build_prefix)/lib/python/dist-packages
$(package)_dependencies=native_biplist

View file

@ -1,9 +1,9 @@
package=native_mac_alias
$(package)_version=1.1.0
$(package)_download_path=https://bitbucket.org/al45tair/mac_alias/get
$(package)_download_file=v$($(package)_version).tar.bz2
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
$(package)_sha256_hash=87ad827e66790028361e43fc754f68ed041a9bdb214cca03c853f079b04fb120
$(package)_download_path=https://github.com/al45tair/mac_alias/archive/
$(package)_download_file=v$($(package)_version).tar.gz
$(package)_file_name=mac_alias-$($(package)_version).tar.gz
$(package)_sha256_hash=b10cb44ecb64fc25283fae7a9cf365d2829377d84e37b9c21100aca8757509be
$(package)_install_libdir=$(build_prefix)/lib/python/dist-packages
$(package)_patches=python3.patch

View file

@ -0,0 +1,21 @@
package=native_nasm
$(package)_version=2.15.05
$(package)_download_path=http://nasm.us/pub/nasm/releasebuilds/$($(package)_version)
$(package)_file_name=nasm-$($(package)_version).tar.bz2
$(package)_sha256_hash=3c4b8339e5ab54b1bcb2316101f8985a5da50a3f9e504d43fa6f35668bee2fd0
define $(package)_config_cmds
$($(package)_autoconf)
endef
define $(package)_build_cmds
$(MAKE)
endef
define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef
define $(package)_postprocess_cmds
rm -rf share
endef

View file

@ -1,8 +1,10 @@
package=openssl
$(package)_version=1.0.1l
$(package)_download_path=https://www.openssl.org/source
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=b2cf4d48fe5d49f240c61c9e624193a6f232b5ed0baf010681e725963c40d1d4
$(package)_version=1.0.2
$(package)_version_suffix=u
$(package)_download_path=https://www.openssl.org/source/old/$($(package)_version)
$(package)_file_name=$(package)-$($(package)_version)$($(package)_version_suffix).tar.gz
$(package)_sha256_hash=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16
$(package)_patches=secure_getenv.patch
define $(package)_set_vars
$(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"
@ -57,12 +59,14 @@ $(package)_config_opts_i686_mingw32=mingw
endef
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/secure_getenv.patch && \
sed -i.old "/define DATE/d" util/mkbuildinf.pl && \
sed -i.old "s|engines apps test|engines|" Makefile.org
endef
define $(package)_config_cmds
./Configure $($(package)_config_opts)
./Configure $($(package)_config_opts) && \
make depend
endef
define $(package)_build_cmds

View file

@ -4,7 +4,7 @@ native_packages := native_ccache
qt_native_packages = native_protobuf
qt_packages = qrencode protobuf zlib
qt_x86_64_linux_packages:=qt expat dbus libxcb xcb_proto libXau xproto freetype fontconfig libX11 xextproto libXext xtrans
qt_x86_64_linux_packages:=qt expat dbus libxcb xcb_proto libXau xproto freetype fontconfig libX11 xextproto libXext xtrans libxkbcommon
qt_i686_linux_packages:=$(qt_x86_64_linux_packages)
qt_darwin_packages=qt
@ -14,6 +14,9 @@ wallet_packages=bdb
upnp_packages=miniupnpc
avx2_native_packages:=native_nasm
avx2_x86_64_linux_packages:=intel-ipsec-mb
darwin_native_packages = native_biplist native_ds_store native_mac_alias
ifneq ($(build_os),darwin)

View file

@ -1,11 +1,11 @@
PACKAGE=qt
$(package)_version=5.7.1
$(package)_download_path=http://download.qt.io/official_releases/qt/5.7/$($(package)_version)/submodules
$(package)_download_path=http://download.qt.io/new_archive/qt/5.7/$($(package)_version)/submodules
$(package)_suffix=opensource-src-$($(package)_version).tar.gz
$(package)_file_name=qtbase-$($(package)_suffix)
$(package)_sha256_hash=95f83e532d23b3ddbde7973f380ecae1bac13230340557276f75f2e37984e410
$(package)_dependencies=openssl zlib
$(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext
$(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext libxkbcommon
$(package)_build_subdir=qtbase
$(package)_qt_libs=corelib network widgets gui plugins testlib printsupport
$(package)_patches=mac-qmake.conf mingw-uuidof.patch pidlist_absolute.patch fix-xcb-include-order.patch fix_qt_pkgconfig.patch
@ -73,6 +73,7 @@ $(package)_config_opts += -prefix $(host_prefix)
$(package)_config_opts += -qt-libpng
$(package)_config_opts += -qt-libjpeg
$(package)_config_opts += -qt-pcre
$(package)_config_opts += -qt-harfbuzz
$(package)_config_opts += -system-zlib
$(package)_config_opts += -reduce-exports
$(package)_config_opts += -static
@ -89,8 +90,7 @@ $(package)_config_opts_darwin += -device-option MAC_TARGET=$(host)
$(package)_config_opts_darwin += -device-option MAC_LD64_VERSION=$(LD64_VERSION)
endif
$(package)_config_opts_linux = -qt-xkbcommon
$(package)_config_opts_linux += -qt-xcb
$(package)_config_opts_linux = -qt-xcb
$(package)_config_opts_linux += -system-freetype
$(package)_config_opts_linux += -no-sm
$(package)_config_opts_linux += -fontconfig

View file

@ -1,9 +1,9 @@
package=zeromq
$(package)_version=4.1.5
$(package)_download_path=https://github.com/zeromq/zeromq4-1/releases/download/v$($(package)_version)/
$(package)_version=4.3.4
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=04aac57f081ffa3a2ee5ed04887be9e205df3a7ddade0027460b8042432bdbcf
$(package)_patches=9114d3957725acd34aa8b8d011585812f3369411.patch 9e6745c12e0b100cd38acecc16ce7db02905e27c.patch
$(package)_sha256_hash=c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5
$(package)_patches=remove_libstd_link.patch clock-unused-nsecs.patch 0002-disable-pthread_set_name_np.patch
define $(package)_set_vars
$(package)_config_opts=--without-documentation --disable-shared --without-libsodium --disable-curve
@ -12,9 +12,10 @@ define $(package)_set_vars
endef
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/9114d3957725acd34aa8b8d011585812f3369411.patch && \
patch -p1 < $($(package)_patch_dir)/9e6745c12e0b100cd38acecc16ce7db02905e27c.patch && \
./autogen.sh
patch -p1 < $($(package)_patch_dir)/clock-unused-nsecs.patch && \
patch -p1 < $($(package)_patch_dir)/remove_libstd_link.patch && \
patch -p1 < $($(package)_patch_dir)/0002-disable-pthread_set_name_np.patch && \
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub config
endef
define $(package)_config_cmds
@ -22,7 +23,7 @@ define $(package)_config_cmds
endef
define $(package)_build_cmds
$(MAKE) libzmq.la
$(MAKE) ./src/libzmq.la
endef
define $(package)_stage_cmds
@ -30,5 +31,5 @@ define $(package)_stage_cmds
endef
define $(package)_postprocess_cmds
rm -rf bin share
rm -rf bin share lib/*.la
endef

View file

@ -1,4 +0,0 @@
These patches are to allow bdb-5.1.29 to compile using clang / c++11 under later MacOSX versions (Sierra+).
These patches must be applied to the bdb-5.1.29 source from Oracle, and then compiled, for the Mac client to build.
Note some of these exist in bdb.mk but we don't want to use the -stdlib=libstd++ flag that's indicated in there on OSX.

View file

@ -1,38 +0,0 @@
--- old-bdb/src/dbinc/atomic.h 2011-10-25 14:39:34.000000000 -0600
+++ new-bdb/src/dbinc/atomic.h 2018-06-01 19:59:37.000000000 -0600
@@ -70,7 +70,7 @@
* These have no memory barriers; the caller must include them when necessary.
*/
#define atomic_read(p) ((p)->value)
-#define atomic_init(p, val) ((p)->value = (val))
+#define atomic_init_db(p, val) ((p)->value = (val))
#ifdef HAVE_ATOMIC_SUPPORT
@@ -144,7 +144,7 @@
#define atomic_inc(env, p) __atomic_inc(p)
#define atomic_dec(env, p) __atomic_dec(p)
#define atomic_compare_exchange(env, p, o, n) \
- __atomic_compare_exchange((p), (o), (n))
+ __atomic_compare_exchange_db((p), (o), (n))
static inline int __atomic_inc(db_atomic_t *p)
{
int temp;
@@ -176,7 +176,7 @@
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
* which configure could be changed to use.
*/
-static inline int __atomic_compare_exchange(
+static inline int __atomic_compare_exchange_db(
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
{
atomic_value_t was;
@@ -206,7 +206,7 @@
#define atomic_dec(env, p) (--(p)->value)
#define atomic_compare_exchange(env, p, oldval, newval) \
(DB_ASSERT(env, atomic_read(p) == (oldval)), \
- atomic_init(p, (newval)), 1)
+ atomic_init_db(p, (newval)), 1)
#else
#define atomic_inc(env, p) __atomic_inc(env, p)
#define atomic_dec(env, p) __atomic_dec(env, p)

View file

@ -1,20 +0,0 @@
--- old-bdb/src/mp/mp_fget.c 2011-10-25 14:39:35.000000000 -0600
+++ new-bdb/src/mp/mp_fget.c 2018-06-01 20:01:48.000000000 -0600
@@ -629,7 +629,7 @@
/* Initialize enough so we can call __memp_bhfree. */
alloc_bhp->flags = 0;
- atomic_init(&alloc_bhp->ref, 1);
+ atomic_init_db(&alloc_bhp->ref, 1);
#ifdef DIAGNOSTIC
if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) {
__db_errx(env,
@@ -931,7 +931,7 @@
MVCC_MPROTECT(bhp->buf, mfp->pagesize,
PROT_READ);
- atomic_init(&alloc_bhp->ref, 1);
+ atomic_init_db(&alloc_bhp->ref, 1);
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
alloc_bhp->priority = bhp->priority;
alloc_bhp->pgno = bhp->pgno;

View file

@ -1,20 +0,0 @@
--- old-bdb/src/mp/mp_mvcc.c 2011-10-25 14:39:35.000000000 -0600
+++ new-bdb/src/mp/mp_mvcc.c 2018-06-01 20:02:45.000000000 -0600
@@ -276,7 +276,7 @@
#else
memcpy(frozen_bhp, bhp, SSZA(BH, buf));
#endif
- atomic_init(&frozen_bhp->ref, 0);
+ atomic_init_db(&frozen_bhp->ref, 0);
if (mutex != MUTEX_INVALID)
frozen_bhp->mtx_buf = mutex;
else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH,
@@ -428,7 +428,7 @@
#endif
alloc_bhp->mtx_buf = mutex;
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
- atomic_init(&alloc_bhp->ref, 1);
+ atomic_init_db(&alloc_bhp->ref, 1);
F_CLR(alloc_bhp, BH_FROZEN);
}

View file

@ -1,20 +0,0 @@
--- old-bdb/src/mp/mp_region.c 2011-10-25 14:39:35.000000000 -0600
+++ new-bdb/src/mp/mp_region.c 2018-06-01 20:03:28.000000000 -0600
@@ -229,7 +229,7 @@
MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0)
return (ret);
SH_TAILQ_INIT(&htab[i].hash_bucket);
- atomic_init(&htab[i].hash_page_dirty, 0);
+ atomic_init_db(&htab[i].hash_page_dirty, 0);
}
/*
@@ -275,7 +275,7 @@
hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID :
mtx_base + (i % dbenv->mp_mtxcount);
SH_TAILQ_INIT(&hp->hash_bucket);
- atomic_init(&hp->hash_page_dirty, 0);
+ atomic_init_db(&hp->hash_page_dirty, 0);
#ifdef HAVE_STATISTICS
hp->hash_io_wait = 0;
hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0;

View file

@ -1,11 +0,0 @@
--- old-bdb/src/mutex/mut_method.c 2011-10-25 14:39:35.000000000 -0600
+++ new-bdb/src/mutex/mut_method.c 2018-06-01 20:04:05.000000000 -0600
@@ -428,7 +428,7 @@
MUTEX_LOCK(env, mtx);
ret = atomic_read(v) == oldval;
if (ret)
- atomic_init(v, newval);
+ atomic_init_db(v, newval);
MUTEX_UNLOCK(env, mtx);
return (ret);

View file

@ -1,20 +0,0 @@
--- old-bdb/src/mutex/mut_tas.c 2011-10-25 14:39:35.000000000 -0600
+++ new-bdb/src/mutex/mut_tas.c 2018-06-01 20:04:25.000000000 -0600
@@ -48,7 +48,7 @@
#ifdef HAVE_SHARED_LATCHES
if (F_ISSET(mutexp, DB_MUTEX_SHARED))
- atomic_init(&mutexp->sharecount, 0);
+ atomic_init_db(&mutexp->sharecount, 0);
else
#endif
if (MUTEX_INIT(&mutexp->tas)) {
@@ -521,7 +521,7 @@
F_CLR(mutexp, DB_MUTEX_LOCKED);
/* Flush flag update before zeroing count */
MEMBAR_EXIT();
- atomic_init(&mutexp->sharecount, 0);
+ atomic_init_db(&mutexp->sharecount, 0);
} else {
DB_ASSERT(env, sharecount > 0);
MEMBAR_EXIT();

View file

@ -0,0 +1,13 @@
diff -dur a/lib/include/sha_generic.h b/lib/include/sha_generic.h
index 3752546..77efd91 100644
--- a/lib/include/sha_generic.h
+++ b/lib/include/sha_generic.h
@@ -308,7 +308,7 @@ void sha_generic_1block(const void *data, void *digest,
if (data == NULL || digest == NULL)
return;
#endif
- sha_generic_init(digest, sha_type);
+// sha_generic_init(digest, sha_type);
sha_generic_one_block(data, digest, is_avx, sha_type);
#ifdef SAFE_DATA
clear_scratch_gps();

View file

@ -0,0 +1,37 @@
Solves export of glibc 2.17 secure_getenv because we support down to 2.11
Patches openssl 1.0.2's usage of secure_getenv from glibc 2.17 to instead
always use the fallback OPENSSL_issetugid(), which essentially does the
same thing on linux, with the only difference that the glibc version makes
decisions on startup, whereas the openssl version does the same check each
time the environment is read.
glibc check: https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/enbl-secure.c;h=9e47526bd3e444e1a19a8ea9fd310b6f47c4db52;hb=HEAD
glibc implementation: https://sourceware.org/git/?p=glibc.git;a=blob;f=stdlib/secure-getenv.c;h=a394eebcf794c1279d66e5bcb71d4b15725e6e5a;hb=HEAD
openssl check: https://github.com/openssl/openssl/blob/OpenSSL_1_0_2u/crypto/uid.c
This patch can be removed when glibc 2.17 is the minimum version supported
Author: Patrick Lodder <patricklodder@users.noreply.github.com>
diff -dur a/crypto/getenv.c b/crypto/getenv.c
--- a/crypto/getenv.c 2019-12-20 13:02:41.000000000 +0000
+++ b/crypto/getenv.c 2021-09-20 03:02:04.125747397 +0000
@@ -16,16 +16,7 @@
char *ossl_safe_getenv(const char *name)
{
-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
-# if __GLIBC_PREREQ(2, 17)
-# define SECURE_GETENV
- return secure_getenv(name);
-# endif
-#endif
-
-#ifndef SECURE_GETENV
if (OPENSSL_issetugid())
return NULL;
return getenv(name);
-#endif
}

View file

@ -0,0 +1,29 @@
From 6e6b47d5ab381c3df3b30bb0b0a6cf210dfb1eba Mon Sep 17 00:00:00 2001
From: Cory Fields <cory-nospam-@coryfields.com>
Date: Mon, 5 Mar 2018 14:22:05 -0500
Subject: [PATCH] disable pthread_set_name_np
pthread_set_name_np adds a Glibc requirement on >= 2.12.
---
src/thread.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- zeromq-4.3.4-orig/src/thread.cpp 2021-01-03 21:46:01.000000000 +0000
+++ zeromq-4.3.4/src/thread.cpp 2021-07-01 22:42:49.850117319 +0100
@@ -393,6 +393,7 @@
return;
#endif
+#if 0
#if defined(ZMQ_HAVE_PTHREAD_SETNAME_1)
int rc = pthread_setname_np (_name);
if (rc)
@@ -408,6 +409,8 @@
#elif defined(ZMQ_HAVE_PTHREAD_SET_NAME)
pthread_set_name_np (pthread_self (), _name);
#endif
+#endif
+ return;
}
#endif

View file

@ -1,22 +0,0 @@
From 9114d3957725acd34aa8b8d011585812f3369411 Mon Sep 17 00:00:00 2001
From: Jeroen Ooms <jeroenooms@gmail.com>
Date: Tue, 20 Oct 2015 13:10:38 +0200
Subject: [PATCH] enable static libraries on mingw
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 393505b..e92131a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -265,7 +265,7 @@ case "${host_os}" in
libzmq_dso_visibility="no"
if test "x$enable_static" = "xyes"; then
- AC_MSG_ERROR([Building static libraries is not supported under MinGW32])
+ CPPFLAGS="-DZMQ_STATIC"
fi
# Set FD_SETSIZE to 1024

View file

@ -1,22 +0,0 @@
From 9e6745c12e0b100cd38acecc16ce7db02905e27c Mon Sep 17 00:00:00 2001
From: David Millard <dmillard10@gmail.com>
Date: Tue, 10 May 2016 13:53:53 -0700
Subject: [PATCH] Fix autotools for static MinGW builds
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 5a0fa14..def6ea7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -259,7 +259,7 @@ case "${host_os}" in
libzmq_dso_visibility="no"
if test "x$enable_static" = "xyes"; then
- CPPFLAGS="-DZMQ_STATIC"
+ CPPFLAGS="-DZMQ_STATIC $CPPFLAGS"
fi
# Set FD_SETSIZE to 1024

View file

@ -0,0 +1,11 @@
diff -dur a/src/clock.cpp b/src/clock.cpp
--- a/src/clock.cpp 2021-07-12 21:15:35.111146311 +0000
+++ b/src/clock.cpp 2021-07-12 21:22:09.059753013 +0000
@@ -194,6 +194,7 @@
#else
// Use POSIX gettimeofday function to get precise time.
+ LIBZMQ_UNUSED (nsecs_per_usec);
struct timeval tv;
int rc = gettimeofday (&tv, NULL);
errno_assert (rc == 0);

View file

@ -0,0 +1,25 @@
commit 47d4cd12a2c051815ddda78adebdb3923b260d8a
Author: fanquake <fanquake@gmail.com>
Date: Tue Aug 18 14:45:40 2020 +0800
Remove needless linking against libstdc++
This is broken for a number of reasons, including:
- g++ understands "static-libstdc++ -lstdc++" to mean "link against
whatever libstdc++ exists, probably shared", which in itself is buggy.
- another stdlib (libc++ for example) may be in use
See #11981.
diff --git a/src/libzmq.pc.in b/src/libzmq.pc.in
index 233bc3a..3c2bf0d 100644
--- a/src/libzmq.pc.in
+++ b/src/libzmq.pc.in
@@ -7,6 +7,6 @@ Name: libzmq
Description: 0MQ c++ library
Version: @VERSION@
Libs: -L${libdir} -lzmq
-Libs.private: -lstdc++ @pkg_config_libs_private@
+Libs.private: @pkg_config_libs_private@
Requires.private: @pkg_config_names_private@
Cflags: -I${includedir} @pkg_config_defines@

View file

@ -2,7 +2,7 @@
Note that this requires changes made by michilumin on the 1.14-dev branch as well as some changes to BDB.
Tested on OSX 10.11 El Capitan and 10.13 High Sierra.
Tested on OSX 10.11 El Capitan, 10.13 High Sierra and 11.1 Big Sur.
**Paper wallet printing support seems to work fine through this method as well.**
@ -25,7 +25,7 @@ Make sure frameworks dir is properly owned...
$sudo mkdir /usr/local/Frameworks
$sudo chown $(whoami):admin /usr/local/Frameworks
Install Brew.
Install Brew. (If you already have Brew installed, perform a 'brew update'.)
$/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
@ -40,43 +40,37 @@ Install Boost lib via Brew from source, and link it to be sure:
$brew install boost --build-from-source --HEAD
$brew link boost167
### Get, Patch And Compile BDB 5.1 ###
### Get, Patch And Compile BDB 5.3 ###
Download bdb 5.1.29 source from Oracle.
Download bdb 5.3.28 source from Oracle.
$curl -o db-5.1.29.tar.gz http://download.oracle.com/berkeley-db/db-5.1.29.tar.gz
$tar xvfz db-5.1.29.tar.gz
$cd db-5.1.29
$curl -o db-5.3.28.tar.gz http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz
$tar xvfz db-5.3.28.tar.gz
$cd db-5.3.28
Patch bdb 5.1.29 from our patchfiles
$cd src
$cd dbinc
$patch -b atomic.h ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/atomic.h.patch
$cd ..
$cd mp
$patch -b mp_fget.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mp_fget.c.patch
$patch -b mp_mvcc.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mp_mvcc.c.patch
$patch -b mp_region.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mp_region.c.patch
$cd ..
$cd mutex
$patch -b mut_method.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mut_method.c.patch
$patch -b mut_tas.c ~/dogecoin/depends/patches/bdb-5.1.29-clang-osx/mut_tas.c.patch
Build BDB 5.1.29
Build BDB 5.3.28
$cd ../..
$cd build_unix
$../dist/configure CXX=clang++ --enable-cxx
$make
$sudo mkdir /usr/local/BerkeleyDB.5.1
$sudo chown $(whoami):admin /usr/local/BerkeleyDB.5.1
$sudo mkdir /usr/local/BerkeleyDB.5.3
$sudo chown $(whoami):admin /usr/local/BerkeleyDB.5.3
$sudo make install
### Set some environment variables and links for bdb and openssl ###
$export LDFLAGS=-L/usr/local/BerkeleyDB.5.1/lib
$export CPPFLAGS=-I/usr/local/BerkeleyDB.5.1/include
$export LDFLAGS=-L/usr/local/BerkeleyDB.5.3/lib
$export CPPFLAGS=-I/usr/local/BerkeleyDB.5.3/include
_**NOTE:** for MacOS BigSur (11.1) or later, and possibly Catalina (10.15) you will also have to include the "OBJC_OLD_DISPATCH_PROTOTYPES=1" flag._
_So in this case you want the above export to be:_
$export CPPFLAGS="-I/usr/local/BerkeleyDB.5.3/include -DOBJC_OLD_DISPATCH_PROTOTYPES=1"
_(Note that the quotes are required.)_
$export INCPATHS=-I/usr/local/opt/openssl/include
$export LIBPATHS=-L/usr/local/opt/openssl/lib
$cd /usr/local/include

View file

@ -51,7 +51,7 @@ PROJECT_BRIEF = "P2P Digital Currency"
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
PROJECT_LOGO = doc/bitcoin_logo_doxygen.png
PROJECT_LOGO = doc/dogecoin_logo_doxygen.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is

54
doc/FAQ.md Normal file
View file

@ -0,0 +1,54 @@
## Very Much Frequently Asked Questions ❓
### How much doge can exist? So many puppies! 🐕
Early 2015 (approximately a year and a half after release) there were
approximately 100,000,000,000 coins.
Each subsequent block will grant 10,000 coins to encourage miners to continue to
secure the network and make up for lost wallets on hard drives/phones/lost
encryption passwords/etc.
### Such mining information ⛏
Dogecoin uses a simplified variant of the scrypt key derivation function as its
proof of work with a target time of one minute per block and difficulty
readjustment after every block. The block rewards are fixed and halve every
100,000 blocks. Starting with the 600,000th block, a permanent reward of
10,000 Dogecoin per block will be issued.
Originally, a different payout scheme was envisioned with block rewards being
determined by taking the maximum reward as per the block schedule and applying
the result of a Mersenne Twister pseudo-random number generator to arrive at a
number between 0 and the maximum reward.
This was changed starting with block 145,000, to prevent large pools from gaming
the system and mining only high reward blocks. At the same time, the difficulty
retargeting was also changed from four hours to once per block (every minute),
implementing an algorithm courtesy of the DigiByte Coin development team, to
lessen the impact of sudden increases and decreases of network hashing rate.
**The current block reward schedule:**
| Block | Reward in Dogecoin |
| :------------------- | -----------------: |
| 199,999 | 01,000,000 |
| 100,000144,999 | 0500,000 |
| 145,000199,999 | 250,000 |
| 200,000299,999 | 125,000 |
| 300,000399,999 | 62,500 |
| 400,000499,999 | 31,250 |
| 500,000599,999 | 15,625 |
| 600,000+ | 10,000 |
**The original block reward schedule, with one-minute block targets and
four-hour difficulty readjustment:**
| Block | Reward in Dogecoin |
| :------------------- | -----------------: |
| 199,999 | 01,000,000 |
| 100,000199,999 | 0500,000 |
| 200,000299,999 | 0250,000 |
| 300,000399,999 | 0125,000 |
| 400,000499,999 | 062,500 |
| 500,000599,999 | 031,250 |
| 600,000+ | 10,000 |

View file

@ -1,46 +1,6 @@
Dogecoin Core 0.14.2
=====================
Setup
---------------------
[Dogecoin Core](http://dogecoin.com/) is the reference Dogecoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions (which is currently several GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
Running
---------------------
The following are some helpful notes on how to run Dogecoin on your native platform.
### Unix
Unpack the files into a directory and run:
- `bin/dogecoin-qt` (GUI) or
- `bin/dogecoind` (headless)
### Windows
Unpack the files into a directory, and then run dogecoin-qt.exe.
### OS X
Drag Dogecoin-Core to your applications folder, and then run Dogecoin-Core.
### Need Help?
* See the documentation at the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page)
for help and more information.
* Ask for help on [#dogecoin](http://webchat.freenode.net?channels=dogecoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=dogecoin).
* Ask for help on the [BitcoinTalk](https://bitcointalk.org/) forums, in the [Dogecoin thread](https://bitcointalk.org/index.php?topic=361813.0).
Building
---------------------
The following are developer notes on how to build Dogecoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
- [OS X Build Notes](build-osx.md)
- [Unix Build Notes](build-unix.md)
- [Windows Build Notes](build-windows.md)
- [OpenBSD Build Notes](build-openbsd.md)
- [Gitian Building Guide](gitian-building.md)
Development
---------------------
The Dogecoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.

View file

@ -92,6 +92,6 @@ build process to remain somewhat deterministic. Here's how it works:
that have been previously (deterministically) built in order to create a
final dmg.
- The Apple keyholder uses this unsigned app to create a detached signature,
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/bitcoin-core/bitcoin-detached-sigs).
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/dogecoin/dogecoin-detached-sigs).
- Builders feed the unsigned app + detached signature back into Gitian. It
uses the pre-built tools to recombine the pieces into a deterministic dmg.

View file

@ -48,9 +48,9 @@ Other
### Assets Used
src/qt/res/icons/about.png
src/qt/res/icons/about_qt.png,
src/qt/res/icons/bitcoin.icns
src/qt/res/icons/bitcoin.ico,
src/qt/res/icons/bitcoin.png
src/qt/res/icons/dogecoin.icns
src/qt/res/icons/dogecoin.ico,
src/qt/res/icons/dogecoin.png
src/qt/res/icons/clock*.png,
src/qt/res/icons/connect*.png
src/qt/res/icons/eye_minus.png,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

20
doc/build-archlinux.md Normal file
View file

@ -0,0 +1,20 @@
Arch Linux build guide
-----------------------------------
***NOTE: This documentation is outdated and needs to be updated***
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
pacman -S git base-devel boost libevent python
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin/
./autogen.sh
./configure --disable-wallet --without-gui --without-miniupnpc
make check
Note:
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
As mentioned above, when maintaining portability of the wallet between the standard Dogecoin Core distributions and independently built
node software is desired, Berkeley DB 4.8 must be used.

20
doc/build-fedora.md Normal file
View file

@ -0,0 +1,20 @@
Fedora build dependencies
--------------------------
***NOTE: This documentation is outdated and needs to be updated***
Build requirements:
sudo dnf install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
Optional:
sudo dnf install miniupnpc-devel
To build with Qt 5 (recommended) you need the following:
sudo dnf install qt5-qttools-devel qt5-qtbase-devel protobuf-devel
libqrencode (optional) can be installed with:
sudo dnf install qrencode-devel

37
doc/build-freebsd.md Normal file
View file

@ -0,0 +1,37 @@
Building on FreeBSD
--------------------
**Last tested with:** 1.14.5-dev (as of 18dbe32)
**Tested on:** FreeBSD 11.4
Clang is installed by default as `cc` compiler, this makes it easier to get
started than on other distros. Installing dependencies:
pkg install autoconf automake libtool pkgconf
pkg install boost-libs openssl libevent
pkg install gmake
You need to use GNU make (`gmake`) instead of `make`.
(`libressl` instead of `openssl` will also work)
For the wallet (optional):
pkg install db5
As of writing, the default hardening routines will fail on the scrypt code, so
currently, no hardened executables can be built, and the `--disable-hardening`
flag is needed for successful compilation.
Then build using:
```bash
./autogen.sh
./configure --disable-hardening MAKE="gmake" \
CFLAGS="-I/usr/local/include" CXXFLAGS="-I/usr/local/include -I/usr/local/include/db5" \
LDFLAGS="-L/usr/local/lib -L/usr/local/lib/db5"
gmake
```
*Note on debugging*: The version of `gdb` installed by default is [ancient and considered harmful](https://wiki.freebsd.org/GdbRetirement).
It is not suitable for debugging a multi-threaded C++ program, not even for getting backtraces. Please install the package `gdb` and
use the versioned gdb command e.g. `gdb7111`.

23
doc/build-nixos.md Normal file
View file

@ -0,0 +1,23 @@
NixOS build guide
------------------------------
This guide lists the steps necessary to setup and build a full GUI distribution
of the latest changes on NixOS.
Clone and enter the repo:
$ git clone https://github.com/dogecoin/dogecoin
$ cd dogecoin
Enter the `nix-shell` environment with all the Dogecoin dependencies present:
$ nix-shell ./contrib/nixos/shell.nix
Run the build steps with flags necessary for NixOS:
$ ./autogen.sh
$ ./configure --with-incompatible-bdb --with-boost-libdir="$(nix eval --raw nixpkgs.boost.out)/lib" --with-gui
$ make
Start the GUI!
$ ./src/qt/dogecoin-qt

View file

@ -1,5 +1,8 @@
OpenBSD build guide
======================
***NOTE: This documentation is outdated and needs to be updated***
(updated for OpenBSD 6.0)
This guide describes how to build dogecoind and command-line utilities on OpenBSD.
@ -18,7 +21,7 @@ pkg_add automake # (select highest version, e.g. 1.15)
pkg_add python # (select highest version, e.g. 3.5)
```
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Dogecoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
GCC
-------
@ -39,7 +42,7 @@ Do not use `pkg_add boost`! The boost version installed thus is compiled using t
...
Segmentation fault (core dumped)
This makes it necessary to build boost, or at least the parts used by Bitcoin Core, manually:
This makes it necessary to build boost, or at least the parts used by Dogecoin Core, manually:
```
# Pick some path to install boost to, here we create a directory within the dogecoin directory
@ -108,7 +111,7 @@ The change will only affect the current shell and processes spawned by it. To
make the change system-wide, change `datasize-cur` and `datasize-max` in
`/etc/login.conf`, and reboot.
### Building Bitcoin Core
### Building Dogecoin Core
**Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.

View file

@ -16,8 +16,8 @@ Then install [Homebrew](https://brew.sh).
Dependencies
----------------------
brew install automake libtool boost --c++11 miniupnpc openssl pkg-config protobuf --c++11 qt5 libevent
brew install berkeley-db # You need to make sure you install a version >= 5.1.29, but as close to 5.1.29 as possible. Check the homebrew docs to find out how to install older versions.
brew install automake libtool boost miniupnpc openssl pkg-config protobuf qt5 libevent
brew install berkeley-db # You need to make sure you install a version >= 5.3.28, but as close to 5.3.28 as possible. Check the homebrew docs to find out how to install older versions.
If you want to build the disk image with `make deploy` (.dmg / optional), you need RSVG

View file

@ -1,35 +1,36 @@
UNIX BUILD NOTES
====================
Some notes on how to build Dogecoin Core in Unix.
# Unix Build of Dogecoin Core
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
This installation guide serves as a basis for all UNIX and UNIX-like operating
systems. All examples in this guide are illustrated using an Ubuntu/Debian OS,
and guides for different OSs can be found in separate documentation, as listed
below.
Note
---------------------
Always use absolute paths to configure and compile Dogecoin and the dependencies,
for example, when specifying the path of the dependency:
1. [Install dependencies](#install-dependencies)
* [Using packaged dependencies](#using-packaged-dependencies)
* [Ubuntu & Debian example](#ubuntu--debian-example)
2. [Build steps](#build-steps)
3. [Build configuration](#build-configuration)
* [Enable Qt GUI](#enable-qt-gui)
* [Wallet](#wallet)
* [Disable-wallet mode](#disable-wallet-mode)
* [Miniupnpc](#miniupnpc)
* [Security](#security)
* [Memory requirements](#memory-requirements)
4. [ARM Cross-compilation](#arm-cross-compilation)
5. OS-specific documentation:
* [Archlinux](build-archlinux.md)
* [Fedora](build-fedora.md)
* [FreeBSD](build-freebsd.md)
* [NixOs](build-nixos.md)
* [OpenBSD](build-openbsd.md)
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
## Install dependencies
Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures
the usage of the absolute path.
You must install required dependencies to build a basic Dogecoin daemon, optional dependencies may vary according to your requirements.
To Build
---------------------
Wallet is optional to run a node, see [Wallet](#wallet) section to enable them.
```bash
./autogen.sh
./configure
make
make install # optional
```
This will build Dogecoin-Qt as well if the dependencies are met.
Dependencies
---------------------
These dependencies are required:
**Required dependencies :**
Library | Purpose | Description
------------|------------------|----------------------
@ -37,12 +38,12 @@ These dependencies are required:
libboost | Utility | Library for threading, data structures, etc
libevent | Networking | OS independent asynchronous networking
Optional dependencies:
**Optional dependencies:**
Library | Purpose | Description
------------|------------------|----------------------
miniupnpc | UPnP Support | Firewall-jumping support
libdb5.1 | Berkeley DB | Wallet storage (only needed when wallet enabled)
libdb5.3 | Berkeley DB | Wallet storage (only needed when wallet enabled)
qt | GUI | GUI toolkit (only needed when GUI enabled)
protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when GUI enabled)
libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled)
@ -51,165 +52,127 @@ Optional dependencies:
For the versions used in the release, see [release-process.md](release-process.md) under *Fetch and build inputs*.
Memory Requirements
--------------------
### Using packaged dependencies
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
memory available when compiling Dogecoin Core. On systems with less, gcc can be
tuned to conserve memory with additional CXXFLAGS:
Dogecoin Core's released binaries are built using the "depends system", which
contains exact, tested versions of all dependencies. To create binaries that are
using only fully tested dependencies, see the documentation in the
[depends directory](../depends/README.md) and the
[Release process documentation](release-process.md).
./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
### Ubuntu & Debian example
Dependency Build Instructions: Ubuntu & Debian
----------------------------------------------
Build requirements:
**Required dependencies** :
```bash
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
```
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
**Optional dependencies** :
```bash
# Qt (required for dogecoin-qt GUI)
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev
Options when installing required Boost library files:
# BerkeleyDB (version 5.3)
sudo apt install libdb5.3++-dev libdb5.3++ libdb5.3-dev
1. On at least Ubuntu 14.04+ and Debian 7+ there are generic names for the
individual boost development packages, so the following can be used to only
install necessary parts of boost:
# ZMQ (provides ZMQ API 4.x)
sudo apt-get install libzmq3-dev
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
# Miniupnpc
sudo apt-get install libminiupnpc-dev
```
2. If that doesn't work, you can install all boost development packages with:
## Build steps
sudo apt-get install libboost-all-dev
According to installed dependencies, the following steps will compile `dogecoind`, `dogecoin-cli` and `dogecoin-qt`.
BerkeleyDB is required for the wallet.
```bash
./autogen.sh
./configure
make
make install # optional
```
See [Build configuration](#build-configuration) for extra settings.
sudo apt-get install libdb5.1-dev libdb5.1++-dev
## Build configuration
Note that if you have Berkeley DB 4.8 packages installed (i.e. for other
wallet software), they are incompatible with the packages for 5.1. You
will have to manually download 5.1 from
http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz and compile
it, install it to /usr/local where the configure script should locate it
automatically.
Configurations are done during the `./configure` step. Use `--help` to see all available options.
#### Enable Qt GUI
Create `dogecoin-qt`, the core wallet GUI.
```bash
./configure --with-gui
```
See the section "Disable-wallet mode" to build Dogecoin Core without wallet.
#### Wallet
BerkeleyDB is required for wallet functionality and use the `wallet.dat` file.
Optional (see --with-miniupnpc and --enable-upnp-default):
By default, **Dogecoin Core expect BerkeleyDB 5.3**.
You can use a different version by specifying `--with-incompatible-bdb` flag.
sudo apt-get install libminiupnpc-dev
If no package is available for your distribution in optional dependencies, you can build BerkeleyDB from source :
```bash
# Install script for BerkeleyDB 5.3
ZMQ dependencies (provides ZMQ API 4.x):
# BerkeleyDB installation directory
BDB_PREFIX=$(pwd)/bdb
mkdir $BDB_PREFIX
sudo apt-get install libzmq3-dev
# Fetch the source and verify shasum
wget 'http://download.oracle.com/berkeley-db/db-5.3.28.NC.tar.gz'
echo '76a25560d9e52a198d37a31440fd07632b5f1f8f9f2b6d5438f4bc3e7c9013efdb-5.3.28.NC.tar.gz' | sha256sum -c
Dependencies for the GUI: Ubuntu & Debian
-----------------------------------------
# Extract sources
tar -xzvf db-5.3.28.NC.tar.gz
cd db-5.3.28.NC/build_unix/
If you want to build Dogecoin-Qt, make sure that the required packages for Qt development
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass `--with-gui=qt4` to configure to choose Qt4.
To build without GUI pass `--without-gui`.
# Apply patch (see https://gist.github.com/danieldk/5700533)
sed -i 's/__atomic_compare_exchange/__atomic_compare_exchange_db/g' ../src/dbinc/atomic.h
To build with Qt 5 (recommended) you need the following:
# Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime
../dist/configure --prefix=$BDB_PREFIX --enable-cxx --disable-shared --with-pic
make install
```
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
Then use `LDFLAGS` and `CPPFLAGS` during configuration to link the database :
```bash
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/"
```
Alternatively, to build with Qt 4 you need the following:
#### Disable-wallet mode
When the intention is to run only a P2P node without a wallet, Dogecoin may be compiled in
disable-wallet mode with:
sudo apt-get install libqt4-dev libprotobuf-dev protobuf-compiler
```bash
./configure --disable-wallet
```
libqrencode (optional) can be installed with:
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
call, not `getwork`.
sudo apt-get install libqrencode-dev
Once these are installed, they will be found by configure and a dogecoin-qt executable will be
built by default.
Dependency Build Instructions: Fedora
-------------------------------------
Build requirements:
sudo dnf install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
Optional:
sudo dnf install miniupnpc-devel
To build with Qt 5 (recommended) you need the following:
sudo dnf install qt5-qttools-devel qt5-qtbase-devel protobuf-devel
libqrencode (optional) can be installed with:
sudo dnf install qrencode-devel
Notes
-----
The release is built with GCC and then "strip dogecoind" to strip the debug
symbols, which reduces the executable size by about 90%.
miniupnpc
---------
#### Miniupnpc
[miniupnpc](http://miniupnp.free.fr/) may be used for UPnP port mapping. It can be downloaded from [here](
http://miniupnp.tuxfamily.org/files/). UPnP support is compiled in and
turned off by default. See the configure options for upnp behavior desired:
--without-miniupnpc No UPnP support miniupnp not required
--disable-upnp-default (the default) UPnP support turned off by default at runtime
--enable-upnp-default UPnP support turned on by default at runtime
Berkeley DB
-----------
It is recommended to use Berkeley DB 5.1. If you have to build it yourself:
```bash
BITCOIN_ROOT=$(pwd)
# Pick some path to install BDB to, here we create a directory within the dogecoin directory
BDB_PREFIX="${BITCOIN_ROOT}/db5"
mkdir -p $BDB_PREFIX
# Fetch the source and verify that it is not tampered with
wget 'http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz'
echo '08238e59736d1aacdd47cfb8e68684c695516c37f4fbe1b8267dde58dc3a576c db-5.1.29.NC.tar.gz' | sha256sum -c
# -> db-5.1.29.NC.tar.gz: OK
tar -xzvf db-5.1.29.NC.tar.gz
# Build the library and install to our prefix
cd db-5.1.29.NC/build_unix/
# Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
make install
# Configure Dogecoin Core to use our own-built instance of BDB
cd $BITCOIN_ROOT
./autogen.sh
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)
--without-miniupnpc #No UPnP support miniupnp not required
--disable-upnp-default #(the default) UPnP support turned off by default at runtime
--enable-upnp-default #UPnP support turned on by default at runtime
```
**Note**: You only need Berkeley DB if the wallet is enabled (see the section *Disable-Wallet mode* below).
Boost
-----
If you need to build Boost yourself:
sudo su
./bootstrap.sh
./bjam install
Security
--------
#### Security
To help make your Dogecoin installation more secure by making certain attacks impossible to
exploit even if a vulnerability is found, binaries are hardened by default.
This can be disabled with:
Hardening Flags:
./configure --enable-hardening
./configure --disable-hardening
```bash
./configure --enable-hardening
./configure --disable-hardening
```
Hardening enables the following features:
@ -221,16 +184,15 @@ Hardening enables the following features:
randomly located as well.
On an AMD64 processor where a library was not compiled with -fPIC, this will cause an error
such as: "relocation R_X86_64_32 against `......' can not be used when making a shared object;"
such as: `relocation R_X86_64_32 against '......' can not be used when making a shared object;`
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
scanelf -e ./dogecoin
`scanelf -e ./dogecoin`
The output should contain:
TYPE
ET_DYN
`TYPE ET_DYN`
* Non-executable Stack
If the stack is executable, trivial stack-based buffer overflow exploits are possible if
@ -243,101 +205,39 @@ Hardening enables the following features:
`scanelf -e ./dogecoin`
the output should contain:
STK/REL/PTL
RW- R-- RW-
`STK/REL/PTL RW- R-- RW-`
The STK RW- means that the stack is readable and writeable, but not executable.
Disable-wallet mode
--------------------
When the intention is to run only a P2P node without a wallet, Dogecoin may be compiled in
disable-wallet mode with:
./configure --disable-wallet
In this case there is no dependency on Berkeley DB 4.8.
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
call, not `getwork`.
Additional Configure Flags
--------------------------
A list of additional configure flags can be displayed with:
./configure --help
The `STK RW-` means that the stack is readable and writeable, but not executable.
Setup and Build Example: Arch Linux
-----------------------------------
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
#### Memory Requirements
pacman -S git base-devel boost libevent python
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin/
./autogen.sh
./configure --disable-wallet --without-gui --without-miniupnpc
make check
C++ compilers are memory-hungry. It is recommended to have at
least 1.5 GB of memory available when compiling Dogecoin Core.
On systems with less, gcc can be tuned to conserve memory with additional CXXFLAGS:
Note:
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
As mentioned above, when maintaining portability of the wallet between the standard Dogecoin Core distributions and independently built
node software is desired, Berkeley DB 4.8 must be used.
```bash
./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
```
## ARM Cross-compilation
ARM Cross-compilation
-------------------
These steps can be performed on, for example, an Ubuntu VM. The depends system
will also work on other Linux distributions, however the commands for
installing the toolchain will be different.
Make sure you install the build requirements mentioned above.
Then, install the toolchain and curl:
sudo apt-get install g++-arm-linux-gnueabihf curl
```bash
sudo apt-get install g++-arm-linux-gnueabihf curl
```
To build executables for ARM:
cd depends
make HOST=arm-linux-gnueabihf NO_QT=1
cd ..
./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
make
```bash
cd depends
make HOST=arm-linux-gnueabihf NO_QT=1
cd ..
./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
make
```
For further documentation on the depends system see [README.md](../depends/README.md) in the depends directory.
Building on FreeBSD
--------------------
(Updated as of FreeBSD 11.0)
Clang is installed by default as `cc` compiler, this makes it easier to get
started than on [OpenBSD](build-openbsd.md). Installing dependencies:
pkg install autoconf automake libtool pkgconf
pkg install boost-libs openssl libevent
pkg install gmake
You need to use GNU make (`gmake`) instead of `make`.
(`libressl` instead of `openssl` will also work)
For the wallet (optional):
pkg install db5
This will give a warning "configure: WARNING: Found Berkeley DB other
than 4.8; wallets opened by this build will not be portable!", but as FreeBSD never
had a binary release, this may not matter. If backwards compatibility
with 4.8-built Dogecoin Core is needed follow the steps under "Berkeley DB" above.
Then build using:
./autogen.sh
./configure --with-incompatible-bdb BDB_CFLAGS="-I/usr/local/include/db5" BDB_LIBS="-L/usr/local/lib -ldb_cxx-5"
gmake
*Note on debugging*: The version of `gdb` installed by default is [ancient and considered harmful](https://wiki.freebsd.org/GdbRetirement).
It is not suitable for debugging a multi-threaded C++ program, not even for getting backtraces. Please install the package `gdb` and
use the versioned gdb command e.g. `gdb7111`.

View file

@ -1,7 +1,7 @@
WINDOWS BUILD NOTES
====================
Below are some notes on how to build Bitcoin Core for Windows.
Below are some notes on how to build Dogecoin Core for Windows.
Most developers use cross-compilation from Ubuntu to build executables for
Windows. This is also used to build the release binaries.
@ -26,18 +26,15 @@ Windows](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide).
To get the bash shell, you must first activate the feature in Windows.
1. Turn on Developer Mode
* Open Settings -> Update and Security -> For developers
* Select the Developer Mode radio button
* Restart if necessary
2. Enable the Windows Subsystem for Linux feature
* From Start, search for "Turn Windows features on or off" (type 'turn')
* Select Windows Subsystem for Linux (beta)
* Click OK
* Restart if necessary
1. Enable the Windows Subsystem for Linux feature
* Open the Windows Features dialog (`OptionalFeatures.exe`)
* Enable 'Windows Subsystem for Linux'
* Click 'OK' and restart if necessary
2. Install Ubuntu
* Open Microsoft Store and search for "Ubuntu 18.04" or use [this link](https://www.microsoft.com/store/productId/9N9TNGVNDL3Q)
* Click Install
3. Complete Installation
* Open a cmd prompt and type "bash"
* Accept the license
* Open a cmd prompt and type "Ubuntu1804"
* Create a new UNIX user account (this is a separate account from your Windows account)
After the bash shell is active, you can follow the instructions below, starting
@ -53,7 +50,13 @@ installing the toolchain will be different.
First, install the general dependencies:
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl
sudo apt update
sudo apt upgrade
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git
If you want to build with the wallet and Qt GUI you also want to install the following (this example is under Ubuntu):
sudo apt-get install libssl-dev libboost-all-dev qt5-default libprotobuf-dev libqrencode4 libdb++-dev libdb-dev miniupnpc
A host toolchain (`build-essential`) is necessary because some dependency
packages (such as `protobuf`) need to build host utilities that are used in the
@ -63,9 +66,35 @@ build process.
To build executables for Windows 64-bit, install the following dependencies:
sudo apt-get install g++-mingw-w64-x86-64 mingw-w64-x86-64-dev
sudo apt-get install g++-mingw-w64-x86-64
Then build using:
For Ubuntu 18.04 and 20.04, set the default mingw32 g++ compiler option to posix:
sudo update-alternatives --config x86_64-w64-mingw32-g++
...Choose the "posix" (vs 'auto' or 'win32') option, and continue.
Note that for WSL v1 the Dogecoin Core source path MUST be somewhere in the default mount file system, for
example /usr/src/dogecoin, AND not under, for example, /mnt/d/dogecoin.
If this is not the case the dependency autoconf scripts will fail (silently.)
This means you cannot use a directory that is located directly on the host Windows file system to perform the build.
If using WSL 1, you'll need to turn off WSL Support for Win32 applications temporarily, or you will get ABI errors and format errors for some .o files.
If using WSL 1 then build using:
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" # Temporarily Disable WSL support for Win32 applications.
cd depends
make HOST=x86_64-w64-mingw32
cd ..
./autogen.sh
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/
make
sudo bash -c "echo 1 > /proc/sys/fs/binfmt_misc/status" # Re-Enable WSL support for Win32 applications.
If using WSL 2 then you should be able to build just with:
cd depends
make HOST=x86_64-w64-mingw32
@ -73,7 +102,7 @@ Then build using:
./autogen.sh # not required when building from tarball
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/
make
## Building for 32-bit Windows
To build executables for Windows 32-bit, install the following dependencies:
@ -99,6 +128,6 @@ Installation
After building using the Windows subsystem it can be useful to copy the compiled
executables to a directory on the windows drive in the same directory structure
as they appear in the release `.zip` archive. This can be done in the following
way. This will install to `c:\workspace\bitcoin`, for example:
way. This will install to `c:\workspace\dogecoin`, for example:
make install DESTDIR=/mnt/c/workspace/bitcoin
make install DESTDIR=/mnt/c/workspace/dogecoin

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

71
doc/fee-recommendation.md Normal file
View file

@ -0,0 +1,71 @@
Dogecoin Fee Recommendation
----------------------------
_last updated for 1.14.5_
The Dogecoin chain has a relatively low block interval, 1 megabyte blockspace
and aims to provide a cheap means for people to transact. Therefore, the biggest
threat to the Dogecoin chain as a whole is spam and in 2014, a transaction fee
and dust disincentive were introduced, to combat on-chain spam.
Dogecoin Core implements a number of defaults into the software that reflect the
developers' recommendations towards fees and dust limits, that at the moment of
release represent the developers best estimate of how these limits should be
parametrized. The recommended defaults, as implemented in the Dogecoin Core
wallet, are:
- **0.01 DOGE per kilobyte** transaction fee
- **1.00 DOGE** dust limit (discard threshold)
- **0.001 DOGE** replace-by-fee increments
The wallet rejects transactions that have outputs under the dust limit, and
discards change to fee if it falls under this limit.
Note: The recommended dust limit is expected to be lowered in a follow-up
release, once enough miners and relay nodes have adopted newly introduced
relay dust limits touched upon below.
Note: In the past, Dogecoin has enforced a rounding function in the fee
mechanism. As of version 1.14.5, this is no longer the case, and fees are
calculated over the exact size of a transaction. For example, a 192 byte
transaction only has to pay `0.01 / 1000 * 192 = 0.00192` DOGE fee.
## Miner default inclusion policies
The default values for miners to include a transaction in a block has been set
to exactly the recommended fee of **0.01 DOGE/kB.** Dust limits are defined by
the miner's mempool policy, see below.
## Relay and mempool policies
The relay and mempool acceptance policies are lower than the recommendations
by default, to allow for a margin to change recommendations in the future (or
user preference) without the need for an adopted software release in advance.
This greatly simplifies future policy recommendations. As historically, most
relay nodes do not change these default settings, these often represent an
absolute mininum
### Transaction fee
The default minimum transaction fee for relay is set at **0.001 DOGE/kB**,
exactly one-tenth of the recommended fee. This gives miners and relay operators
a 10x downward margin to operate within from a spam management perspective.
### Dust limits
The mempool logic implements 2 dust limits, a hard dust limit under which a
transactions is considered non-standard and rejected, and a soft dust limit
that requires the limit itself to be added to the transaction fee, making the
output economically unviable.
- The hard dust limit is set at **0.001 DOGE** - outputs under this value are
invalid and rejected.
- The soft dust limit is set at **0.01 DOGE** - sending a transaction with outputs
under this value, are required to add 0.01 DOGE for each such output, or else
will be considered to have too low fee and be rejected.
### Replace-by-fee and mempool limiting increments
The increments used for replace-by-fee and limiting the mempool once it has
reached its locally defined maximum size, is by default set at one-tenth of
the relay fee, or **0.0001 DOGE**.

View file

@ -1,31 +1,75 @@
# Dogecoin Core file system
* banlist.dat: stores the IPs/Subnets of banned nodes
* dogecoin.conf: contains configuration settings for dogecoind or dogecoin-qt
* dogecoind.pid: stores the process id of dogecoind while running
* blocks/blk000??.dat: block data (custom, 128 MiB per file); since 0.8.0
* blocks/rev000??.dat; block undo data (custom); since 0.8.0 (format changed since pre-0.8)
* blocks/index/*; block index (LevelDB); since 0.8.0
* chainstate/*; block chain state database (LevelDB); since 0.8.0
* database/*: BDB database environment; only used for wallet since 0.8.0
* db.log: wallet database log file
* debug.log: contains debug information and general logging generated by dogecoind or dogecoin-qt
* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation; since 0.10.0
* mempool.dat: dump of the mempool's transactions; since 0.14.0.
* peers.dat: peer IP address database (custom format); since 0.7.0
* wallet.dat: personal wallet (BDB) with keys and transactions
* .cookie: session RPC authentication cookie (written at start when cookie authentication is used, deleted on shutdown): since 0.12.0
* onion_private_key: cached Tor hidden service private key for `-listenonion`: since 0.12.0
**Contents**
Only used in pre-0.8.0
---------------------
* blktree/*; block chain index (LevelDB); since pre-0.8, replaced by blocks/index/* in 0.8.0
* coins/*; unspent transaction output database (LevelDB); since pre-0.8, replaced by chainstate/* in 0.8.0
- [Data directory location](#data-directory-location)
- [Data directory layout](#data-directory-layout)
- [GUI settings](#gui-settings)
- [Legacy subdirectories and files](#legacy-subdirectories-and-files)
- [Notes](#notes)
Only used before 0.8.0
---------------------
* blkindex.dat: block chain index database (BDB); replaced by {chainstate/*,blocks/index/*,blocks/rev000??.dat} in 0.8.0
* blk000?.dat: block data (custom, 2 GiB per file); replaced by blocks/blk000??.dat in 0.8.0
## Data directory location
Only used before 0.7.0
---------------------
* addr.dat: peer IP address database (BDB); replaced by peers.dat in 0.7.0
The data directory is the default location where the Dogecoin Core files are stored.
1. The default data directory paths for supported platforms are:
Platform | Data directory path
---------|--------------------
Linux | `$HOME/.dogecoin/`
macOS | `$HOME/Library/Application Support/Dogecoin/`
Windows | `%APPDATA%\Dogecoin\` <sup>[\[1\]](#note1)</sup>
2. A custom data directory path can be specified with the `-datadir` option.
3. All content of the data directory, except for the `dogecoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ:
Chain | Data directory path
--------------|------------------------------
(default) | *path_to_datadir*`/`
`-testnet` | *path_to_datadir*`/testnet3/`
`-regtest` | *path_to_datadir*`/regtest/`
## Data directory layout
Subdirectory | File(s) | Description
-------------------|-----------------------|------------
`blocks/` | | Blocks directory
`blocks/index/` | LevelDB database | Block and transaction indices
`blocks/` | `blkNNNNN.dat` | Actual blocks (in network format, dumped in raw on disk, 128 MiB per file)
`blocks/` | `revNNNNN.dat` | Block undo data (custom format)
`chainstate/` | LevelDB database | Blockchain state, a.k.a UTXO database
`./` | `anchors.dat` | Anchor IP address database, created on shutdown and deleted at startup. Anchors are last known outgoing block-relay-only peers that are tried to re-connect to on startup
`./` | `banlist.dat` | Stores the IPs/subnets of banned nodes
`./` | `dogecoin.conf` | User-defined configuration settings for `dogecoind` or `dogecoin-qt`; can be specified by `-conf` option
`./` | `dogecoind.pid` | Stores the process ID (PID) of `dogecoind` or `dogecoin-qt` while running; can be specified by `-pid` option
`./` | `debug.log` | Contains debug information and general logging generated by `dogecoind` or `dogecoin-qt`
`./` | `fee_estimates.dat` | Stores statistics used to estimate smart transaction fees and priorities required for confirmation
`./` | `mempool.dat` | Dump of the mempool's transactions
`./` | `onion_private_key` | Cached Tor onion service private key for `-listenonion` option
`./` | `peers.dat` | Peer IP address database
`./` | `.cookie` | Session RPC authentication cookie; if used, created at start and deleted on shutdown; can be specified by `-rpccookiefile` option
`./` | `.lock` | Data directory lock file
`./` | `db.log` | BDB error file
`./` | `wallet.dat` | Personal wallet (a BDB database) with keys and transactions
`./` | `.walletlock` | BDB wallet lock file
## GUI settings
`dogecoin-qt` uses the [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored).
## Legacy subdirectories and files
These subdirectories and files are no longer used by Dogecoin Core:
Path | Description
---------------|-------------
`blktree/` | Blockchain index; replaced by `blocks/index/` in 1.10.0
`coins/` | Unspent transaction output database; replaced by `chainstate/` in 1.10.0
`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`} in 1.10.0
`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat` in 1.10.0
`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in 1.7.0
## Notes
<a name="note1">1</a>. The `/` (slash, U+002F) is used as the platform-independent path component separator in this document.

386
doc/getting-started.md Normal file
View file

@ -0,0 +1,386 @@
## Getting started
This tutorial will help you to go through the basics to use Dogecoin Core after you completed the [installation instructions](/INSTALL.md). You now have `dogecoind` or `dogecoin-qt` executables available to run a node, and `dogecoin-cli`/`dogecoin-tx` tools to help you transact DOGE.
> **Note:** For simplicity, this guide assumes that executables can be found under the `PATH` environment variable.
If needed, you can specify their location by typing `PATH=$PATH:/path/to/executables`, or prepend the full path to the command like:
> ```console
> shibetoshi:~$ /path/to/dogecoin-cli [arguments ...]
> ```
### Table of contents
1. [Starting a dogecoin node](#starting-a-dogecoin-node)
2. [Introduction to the JSON-RPC API](#introduction-to-the-json-rpc-api)
* [Creating a wallet](#creating-a-wallet)
* [Verifying your balance](#verifying-your-balance)
* [Sending transactions](#sending-transactions)
* [Inspecting blocks and transactions](#inspecting-blocks-and-transactions)
3. [Node configuration](#node-configuration)
* [Mainnet, testnet and regtest](#mainnet-testnet-and-regtest)
* [Data directory](#data-directory)
* [RPC credentials](#rpc-credentials)
* [Ports](#ports)
* [Memory](#memory)
* [Troubleshooting](#troubleshooting)
## Starting a Dogecoin node
To start your node, you can run an headless server using `dogecoind`:
```console
shibetoshi:~$ dogecoind -daemon
```
Or you can use the Graphical User Interface (GUI), `dogecoin-qt`:
```console
shibetoshi:~$ dogecoin-qt
```
Detailed logging is recorded in `debug.log`, located in the [data directory](#data-directory).
*Use `-help` to see all available options for each executable.*
Your node is now running and starts with a *synchronization process* that downloads the entire blockchain from other nodes. This operation will take many hours to complete, but you are now part of the Dogecoin network!
> **Note:** The rest of this guide assumes the use of an headless node. The RPC server is not exposed with `dogecoin-qt` until you activate the `-server` option as a startup argument, but inside the GUI application, you can use all the commands explored below (without `dogecoin-cli`) by going to `Help -> Debug window` and inside the popup window selecting the tab `Console`.
## Introduction to the JSON-RPC API
Dogecoin Core exposes a JSON-RPC interface that allows you to request information about the network, blockchain and individual transactions, send transactions to the networks and manage your wallet.
The Dogecoin Core installation provides the `dogecoin-cli` tool to interact with the JSON-RPC from the command line, and the interface is exposed over HTTP on port `22555`, so that other tools and libraries can interact with it.
To have an overview of the available commands, use the `help` command:
```console
#List all commands
shibetoshi:~$ dogecoin-cli help
#Get help for a specific command
shibetoshi:~$ dogecoin-cli help COMMAND
```
Some commands are different, but it's possible to use the [bitcoin RPC API documentation](https://developer.bitcoin.org/reference/rpc/).
### Creating a wallet
To receive DOGE, you need an address that is securely derived from a private key through a series of automatic, cryptographic operations. The *address* can be shared with anyone to receive DOGE, but the *private key* is sensitive information that allows anyone that knows it to spend the DOGE on the associated address.
By default, the Dogecoin Core software will automatically create an address for you and securely store the private key in the wallet file.
You can list wallet addresses using `getaddressesbyaccount`:
```console
shibetoshi:~$ dogecoin-cli getaddressesbyaccount ""
[
"DA2fBazU8Y4epNJ2fQRZCcWpxKZY9HrhLN"
]
```
Using `getnewaddress` will generate a new wallet address:
```console
shibetoshi:~$ dogecoin-cli getnewaddress
DNnGtXk9khadE7EKCmQzxjnehenX92PKAv
```
Private keys are stored in the `wallet.dat` file. You can use `backupwallet` to save a copy:
```console
shibetoshi:~$ dogecoin-cli backupwallet /path/of/wallet/backup
```
**Tip:** Dogecoin addresses start with the letter `D`.
You now have two wallet addresses to share with other people to receive DOGE! Consider avoiding [address reuse](https://en.bitcoin.it/wiki/Address_reuse) for anonymity and security reasons.
### Verifying your balance
The total balance of all addresses held in your wallet can be found with the `getbalance` command.
```console
#Syntax
shibetoshi:~$ dogecoin-cli getbalance "*" minconf
```
`minconf` stands for minimum confirmations.
For example, to see current balance with transaction having at least 5 confirmations:
```console
shibetoshi:~$ dogecoin-cli getbalance "*" 5
421.552000
```
### Sending transactions
Dogecoin implements the [Unspent Transaction Output (UTXO)](https://en.wikipedia.org/wiki/Unspent_transaction_output) model to track which amounts of coin belong to an address. Owning DOGE means that you know the private key(s) to addresses that are associated with unspent outputs. To spend them, you have to compose a new transaction that spends the value from currently unspent outputs to new outputs.
##### sendtoaddress
It's possible to use a single command to create, sign and send a transaction :
```console
#Syntax
shibetoshi:~$ dogecoin-cli sendtoaddress address amount
#Example
shibetoshi:~$ dogecoin-cli sendtoaddress nWSYUqtimF7B6qW4GBdczaG6jvqKutS1Nh 420
```
So much spending power !
Alternatively, four commands are needed to manually create a transaction: `listunspent`, `createrawtransaction`, `signrawtransaction` and `sendrawtransaction`.
##### listunspent
This displays a list of UTXOs associated to addresses kept in the wallet.
```console
#Syntax
shibetoshi:~$ dogecoin-cli listunspent minconf maxconf '["address", ...]'
#Example
shibetoshi:~$ dogecoin-cli listunspent 1 9999999 '["nnJDY1xCRgWQc7vBXHUPMPsEynuZW23Y3P"]'
[
{
"txid": "b869ed6606d52e6446dc12db02cf868ab693dd5b9f661116269536f0f8fa2433",
"vout": 0,
"address": "nnJDY1xCRgWQc7vBXHUPMPsEynuZW23Y3P",
"account": "",
"scriptPubKey": "76a914c6977da37560e1432c2e14e16952981a4c272cac88ac",
"amount": 100.00000000,
"confirmations": 1355,
"spendable": true,
"solvable": true
}
]
```
The `minconf` and `maxconf` parameters filter the minimum and maximum number of [confirmations](https://www.pcmag.com/encyclopedia/term/bitcoin-confirmation) of the UTXO returned.
> **Note:** The example address starts with `n` instead of `D`, because it uses [testnet](#mainnet-testnet-and-regtest).
##### createrawtransaction
You can now build a new transaction using the available UTXOs from above.
```console
#Syntax
shibetoshi:~$ utxos_to_use='
[
{
"txid": "id",
"vout": n
},
...
]'
shibetoshi:~$ dogecoin-cli createrawtransaction "$utxos_to_use" '{"address":amount, ...}'
#Example
shibetoshi:~$ utxos_to_use='
[
{
"txid": "b869ed6606d52e6446dc12db02cf868ab693dd5b9f661116269536f0f8fa2433",
"vout": 0
}
]'
shibetoshi:~$ dogecoin-cli createrawtransaction "$utxos_to_use" '{"nWSYUqtimF7B6qW4GBdczaG6jvqKutS1Nh":69, "nnJDY1xCRgWQc7vBXHUPMPsEynuZW23Y3P": 30.999}'
01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b80000000000ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000
```
You can combine multiple UTXO and send it to multiple recipients by extending the `utxos_to_use` and recipient JSON structures.
> **Tip:** The transaction returned is encoded in hexadecimal encoding. You can use `dogecoin-cli decoderawtransaction` or `dogecoin-tx -json` to convert the content to JSON format.
##### signrawtransaction
Before sending a transaction, it must be signed by the private key that the address was derived from. Dogecoin Core will automatically use the correct private key when spending UTXO known to the wallet.
```console
#Syntax
shibetoshi:~$ dogecoin-cli signrawtransaction encoded_transaction
#Example
shibetoshi:~$ dogecoin-cli signrawtransaction "01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b80000000000ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000"
{
"hex": "01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b8000000006a47304402200e1bf722d4335179de170f7c762755b463b3f7b8f026f30950f701bc834f0e6e022036295fdd5e607ca41c4e0e62e59d0911b607bfabedde2424665ffae13564d0e001210388f8f226d12eccd3ba93c1454ec4498b065cea96e29b918fbdb517872ebbf581ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000",
"complete": true
}
```
##### sendrawtransaction
Finally, broadcast the transaction to the network so that it can be included in a block by miners:
```console
#Syntax
shibetoshi:~$ dogecoin-cli sendrawtransaction signed_transaction
#Example
shibetoshi:~$ dogecoin-cli sendrawtransaction 01000000013324faf8f03695261611669f5bdd93b68a86cf02db12dc46642ed50666ed69b8000000006a47304402200e1bf722d4335179de170f7c762755b463b3f7b8f026f30950f701bc834f0e6e022036295fdd5e607ca41c4e0e62e59d0911b607bfabedde2424665ffae13564d0e001210388f8f226d12eccd3ba93c1454ec4498b065cea96e29b918fbdb517872ebbf581ffffffff0200a5459b010000001976a91418a89ee36293f15c4db4c01173babd579243161188ac60b8c4b8000000001976a914c6977da37560e1432c2e14e16952981a4c272cac88ac00000000
b4fae2a43cb35f8016a547e9658e061f1da4a043efafecc42f739d46d95dee21
```
### Inspecting blocks and transactions
Blocks and transactions are identified by unique *hashes*.
Let's find the *[coinbase transaction](https://www.javatpoint.com/coinbase-transaction)* of block 69.
> **Note:** To be able to query transactions not related to your own wallet, like in this example, you will need to enable the `-txindex` option. This options requires the Dogecoin Core software to re-index the entire blockchain, and can take up to several hours.
First, request the information about block 69:
```console
#Find block hash from his height
shibetoshi:~$ dogecoin-cli getblockhash 69
3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b
#Get block data
shibetoshi:~$ dogecoin-cli getblock 3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b
{
"hash": "3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b",
"confirmations": 7816,
"strippedsize": 190,
"size": 190,
"weight": 760,
"height": 69,
"version": 1,
"versionHex": "00000001",
"merkleroot": "695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db",
"tx": [
"695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db"
],
"time": 1386475225,
"mediantime": 1386475209,
"nonce": 3923708672,
"bits": "1e0ffff0",
"difficulty": 0.000244140625,
"chainwork": "0000000000000000000000000000000000000000000000000000000004600460",
"previousblockhash": "ffa69e04f928b84f19d84da25fb544340e54dca6c03c33930da245719e61c5ea",
"nextblockhash": "44bf8abbbb96d4dcfb95df563e606c37987133ea3e013b23bbddde8d7f905fdd"
}
```
The `tx` field contains a list of all transactions included in this block. Only one transaction exist in block 69, the coinbase transaction.
We can see the entire transaction by querying for its identifier:
```console
#Syntax
shibetoshi:~$ dogecoin-cli getrawtransaction txid verbose
#Example
shibetoshi:~$ dogecoin-cli getrawtransaction 695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db 1
{
"hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0e04d9eea3520101062f503253482fffffffff0100ac6156be23000023210340a42a5ad6c4c0cd5ae539657032e0a359bd3e0f95771f34d71691b13460a624ac00000000",
"txid": "695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db",
"hash": "695ce4208fa7a87ef9e99805b0910dc129058ecdceb5cef7e25f71dcdc7936db",
"size": 109,
"vsize": 109,
"version": 1,
"locktime": 0,
"vin": [
{
"coinbase": "04d9eea3520101062f503253482f",
"sequence": 4294967295
}
],
"vout": [
{
"value": 393004.00000000,
"n": 0,
"scriptPubKey": {
"asm": "0340a42a5ad6c4c0cd5ae539657032e0a359bd3e0f95771f34d71691b13460a624 OP_CHECKSIG",
"hex": "210340a42a5ad6c4c0cd5ae539657032e0a359bd3e0f95771f34d71691b13460a624ac",
"reqSigs": 1,
"type": "pubkey",
"addresses": [
"D5TjotnkoXekNQBCn54CBWxjEzCJMMe7WS"
]
}
}
],
"blockhash": "3d2def20cd0d3aca148741ef469bda11647a3040d7669c82745d03c728706a8b",
"confirmations": 3964556,
"time": 1386475225,
"blocktime": 1386475225
}
```
The `vout` structure will give you information about where the transaction output.
## Node configuration
There are many parameters that can be configured to tune your node to your liking. There are two ways to change the configuration.
Using `dogecoind -help` will display all available configuration parameters that can be added as arguments:
**Command example :**
```console
shibetoshi:~$ dogecoind -daemon -paytxfee=0.01 -sendfreetransactions=1 -maxconnections=150
```
Configuration can be persisted by creating a `dogecoin.conf` file. Create it in the directory defined with the `datadir` setting, `$HOME/.dogecoin` by default, or specify the file location with `-conf`.
**dogecoin.conf example :**
```
daemon=1
server=1
listen=1
paytxfee=0.01
sendfreetransactions=1
maxconnections=150
```
You can see a more concrete example [here](/contrib/debian/examples/dogecoin.conf).
### Mainnet, testnet and regtest
When trying out new things, for example to test your application that interacts with the Dogecoin chain, it is recommended to not use the main Dogecoin network. Multiple networks are built-in for this purpose.
**Mainnet** : The main network where real transaction operate.
**Testnet** : The test network, with peers.
**Regtest** : The regression test network, to test with only local peers and create blocks on-demand.
When not specifying any network, *Mainnet* is the network used by default. To enable *testnet*, use the `dogecoind -testnet`.
To enable *regtest*, use the `-regtest` option.
> **Tip:** Remember to specify the network when you want to use `dogecoin-cli`.
### Data directory
The data directory is the location where Dogecoin Core files are stored, including the wallet, log files and blocks. You can modify the location with the `-datadir` setting.
**Default location :**
Platform | Data directory path
---------|--------------------
Linux | `$HOME/.dogecoin`
macOS | `$HOME/Library/Application Support/Dogecoin`
Windows | `%APPDATA%\Dogecoin`
You may need to specify `-datadir` also when using `dogecoin-cli`.
See the [full documentation on file system](files.md) for more information.
### RPC credentials
Authentication is required to interact with the RPC interface. When no credentials are provided, Dogecoin uses a [random cookie](https://bitcoin.org/en/release/v0.12.0#rpc-random-cookie-rpc-authentication) that gets generated when the software is launched. It's possible to define your own credentials using `rpcuser` and `rpcpassword` parameters.
### Ports
A node can expose 2 different ports: one port for the **Peer to Peer Network** (P2P) to communicate with other nodes, and a second port for access to the RPC API. By default, the ports are configured as follows:
| Function | mainnet | testnet | regtest |
| :------- | ------: | ------: | ------: |
| P2P | 22556 | 44556 | 18444 |
| RPC | 22555 | 44555 | 18332 |
To configure them use the `-port` and `-rpcport` parameters.
### Memory
Running Dogecoin Core can require a lot of memory, so in some situations it may be necessary to optimize its usage. You can find more information about reducing the memory footprint in the [related guide](reduce-memory.md).
### Troubleshooting
By default, Dogecoin Core keeps detailed logs in the `debug.log` file, located in the `datadir`. Alternatively, the `-printtoconsole` parameter displays the log interactively to the terminal instead.
To get more verbose log output, you can enable debug mode by using the `-debug=<topic>` parameter to increase logic for a specific topic, or use `-debug=all` to see detailed logs on all topics.

View file

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH BITCOIN-CLI "1" "June 2017" "dogecoin-cli v0.14.2.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
.TH DOGECOIN-CLI "1" "November 2021" "dogecoin-cli v1.14.5.0" "User Commands"
.SH NAME
dogecoin-cli \- manual page for dogecoin-cli v0.14.2.0
dogecoin-cli \- manual page for dogecoin-cli v1.14.5.0
.SH DESCRIPTION
Dogecoin Core RPC client version v0.14.2.0
Dogecoin Core RPC client version v1.14.5.0
.SS "Usage:"
.TP
dogecoin\-cli [options] <command> [params]
@ -71,7 +71,7 @@ Timeout during HTTP requests (default: 900)
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
(recommended for sensitive information such as passphrases)
.SH COPYRIGHT
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
Please contribute if you find Dogecoin Core useful. Visit
<https://dogecoin.com> for further information about the software.
@ -83,4 +83,5 @@ or <https://opensource.org/licenses/MIT>
This product includes software developed by the OpenSSL Project for use in the
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
Eric Young and UPnP software written by Thomas Bernard.
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
provided by Anacoluthia.

View file

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH BITCOIN-QT "1" "June 2017" "dogecoin-qt v0.14.2.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
.TH DOGECOIN-QT "1" "November 2021" "dogecoin-qt v1.14.5.0" "User Commands"
.SH NAME
dogecoin-qt \- manual page for dogecoin-qt v0.14.2.0
dogecoin-qt \- manual page for dogecoin-qt v1.14.5.0
.SH DESCRIPTION
Dogecoin Core version v0.14.2.0 (64\-bit)
Dogecoin Core version v1.14.5.0
Usage:
.IP
dogecoin\-qt [command\-line options]
@ -17,6 +17,10 @@ Print this help message and exit
.IP
Print version and exit
.HP
\fB\-alerts\fR
.IP
Receive and display P2P network alerts (default: 1)
.HP
\fB\-alertnotify=\fR<cmd>
.IP
Execute command when a relevant alert is received or we see a really
@ -25,14 +29,14 @@ long fork (%s in cmd is replaced by message)
\fB\-blocknotify=\fR<cmd>
.IP
Execute command when the best block changes (%s in cmd is replaced by
block hash)
block hash, %i is replaced by block number)
.HP
\fB\-assumevalid=\fR<hex>
.IP
If this block is in the chain assume that it and its ancestors are valid
and potentially skip their script verification (0 to verify all,
default:
ca5eb72f1e0d160f1481f74d56d7cc4a27d91aa585ba012da8018a5fe934d61b,
77e3f4a4bcb4a2c15e8015525e3d15b466f6c022f6ca82698f329edef7d9777e,
testnet:
6943eaeaba98dc7d09f7e73398daccb4abcabb18b66c8c875e52b07638d93951)
.HP
@ -63,7 +67,7 @@ Keep the transaction memory pool below <n> megabytes (default: 300)
\fB\-mempoolexpiry=\fR<n>
.IP
Do not keep transactions in the mempool longer than <n> hours (default:
336)
24)
.HP
\fB\-blockreconstructionextratxn=\fR<n>
.IP
@ -72,7 +76,7 @@ Extra transactions to keep in memory for compact block reconstructions
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-3\fR to 16, 0 = auto, <0 =
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-pid=\fR<file>
@ -88,7 +92,7 @@ blocks if a target size in MiB is provided. This mode is
incompatible with \fB\-txindex\fR and \fB\-rescan\fR. Warning: Reverting this
setting requires re\-downloading the entire blockchain. (default:
0 = disable pruning blocks, 1 = allow manual pruning via RPC,
>550 = automatically prune block files to stay under the
>2200 = automatically prune block files to stay under the
specified target size in MiB)
.HP
\fB\-reindex\-chainstate\fR
@ -278,19 +282,24 @@ Do not load the wallet and disable wallet RPC calls
.IP
Set key pool size to <n> (default: 100)
.HP
\fB\-discardthreshold=\fR<amt>
.IP
The minimum transaction output size (in DOGE) used to validate wallet
transactions and discard change (to fee) (default: 1.00)
.HP
\fB\-fallbackfee=\fR<amt>
.IP
A fee rate (in DOGE/kB) that will be used when fee estimation has
insufficient data (default: 1.00)
insufficient data (default: 0.01)
.HP
\fB\-mintxfee=\fR<amt>
.IP
Fees (in DOGE/kB) smaller than this are considered zero fee for
transaction creation (default: 1.00)
transaction creation (default: 0.01)
.HP
\fB\-paytxfee=\fR<amt>
.IP
Fee (in DOGE/kB) to add to transactions you send (default: 0.00)
Fee (in DOGE/kB) to add to transactions you send (default: 0.01)
.HP
\fB\-rescan\fR
.IP
@ -390,13 +399,13 @@ Prepend debug output with timestamp (default: 1)
\fB\-minrelaytxfee=\fR<amt>
.IP
Fees (in DOGE/kB) smaller than this are considered zero fee for
relaying, mining and transaction creation (default: 1.00)
relaying, mining and transaction creation (default: 0.001)
.HP
\fB\-maxtxfee=\fR<amt>
.IP
Maximum total fees (in DOGE) to use in a single wallet transaction or
raw transaction; setting this too low may abort large
transactions (default: 400.00)
transactions (default: 100.00)
.HP
\fB\-printtoconsole\fR
.IP
@ -414,6 +423,16 @@ Use the test chain
.PP
Node relay options:
.HP
\fB\-dustlimit=\fR<amt>
.IP
Amount under which a transaction output is considered dust, in DOGE
(default: 0.01)
.HP
\fB\-harddustlimit=\fR<amt>
.IP
Amount under which a transaction output is considered non\-standard and
will not be accepted or relayed, in DOGE (default: 0.001)
.HP
\fB\-bytespersigop\fR
.IP
Equivalent bytes per sigop in transactions for relay and mining
@ -450,7 +469,7 @@ Set maximum size of high\-priority/low\-fee transactions in bytes
\fB\-blockmintxfee=\fR<amt>
.IP
Set lowest fee rate (in DOGE/kB) for transactions to be included in
block creation. (default: 0.00001)
block creation. (default: 0.01)
.PP
RPC server options:
.HP
@ -531,7 +550,7 @@ Show splash screen on startup (default: 1)
.IP
Reset all settings changed in the GUI
.SH COPYRIGHT
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
Please contribute if you find Dogecoin Core useful. Visit
<https://dogecoin.com> for further information about the software.
@ -543,4 +562,5 @@ or <https://opensource.org/licenses/MIT>
This product includes software developed by the OpenSSL Project for use in the
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
Eric Young and UPnP software written by Thomas Bernard.
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
provided by Anacoluthia.

View file

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH BITCOIN-TX "1" "June 2017" "dogecoin-tx v0.14.2.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
.TH DOGECOIN-TX "1" "November 2021" "dogecoin-tx v1.14.5.0" "User Commands"
.SH NAME
dogecoin-tx \- manual page for dogecoin-tx v0.14.2.0
dogecoin-tx \- manual page for dogecoin-tx v1.14.5.0
.SH DESCRIPTION
Dogecoin Core dogecoin\-tx utility version v0.14.2.0
Dogecoin Core dogecoin\-tx utility version v1.14.5.0
.SS "Usage:"
.TP
dogecoin\-tx [options] <hex\-tx> [commands]
@ -107,7 +107,7 @@ set=NAME:JSON\-STRING
.IP
Set register NAME to given JSON\-STRING
.SH COPYRIGHT
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
Please contribute if you find Dogecoin Core useful. Visit
<https://dogecoin.com> for further information about the software.
@ -119,4 +119,5 @@ or <https://opensource.org/licenses/MIT>
This product includes software developed by the OpenSSL Project for use in the
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
Eric Young and UPnP software written by Thomas Bernard.
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
provided by Anacoluthia.

View file

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH BITCOIND "1" "June 2017" "dogecoind v0.14.2.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
.TH DOGECOIND "1" "November 2021" "dogecoind v1.14.5.0" "User Commands"
.SH NAME
dogecoind \- manual page for dogecoind v0.14.2.0
dogecoind \- manual page for dogecoind v1.14.5.0
.SH DESCRIPTION
Dogecoin Core Daemon version v0.14.2.0
Dogecoin Core Daemon version v1.14.5.0
.SS "Usage:"
.TP
dogecoind [options]
@ -18,6 +18,10 @@ Print this help message and exit
.IP
Print version and exit
.HP
\fB\-alerts\fR
.IP
Receive and display P2P network alerts (default: 1)
.HP
\fB\-alertnotify=\fR<cmd>
.IP
Execute command when a relevant alert is received or we see a really
@ -26,14 +30,14 @@ long fork (%s in cmd is replaced by message)
\fB\-blocknotify=\fR<cmd>
.IP
Execute command when the best block changes (%s in cmd is replaced by
block hash)
block hash, %i is replaced by block number)
.HP
\fB\-assumevalid=\fR<hex>
.IP
If this block is in the chain assume that it and its ancestors are valid
and potentially skip their script verification (0 to verify all,
default:
ca5eb72f1e0d160f1481f74d56d7cc4a27d91aa585ba012da8018a5fe934d61b,
77e3f4a4bcb4a2c15e8015525e3d15b466f6c022f6ca82698f329edef7d9777e,
testnet:
6943eaeaba98dc7d09f7e73398daccb4abcabb18b66c8c875e52b07638d93951)
.HP
@ -68,7 +72,7 @@ Keep the transaction memory pool below <n> megabytes (default: 300)
\fB\-mempoolexpiry=\fR<n>
.IP
Do not keep transactions in the mempool longer than <n> hours (default:
336)
24)
.HP
\fB\-blockreconstructionextratxn=\fR<n>
.IP
@ -77,7 +81,7 @@ Extra transactions to keep in memory for compact block reconstructions
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-3\fR to 16, 0 = auto, <0 =
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-pid=\fR<file>
@ -93,7 +97,7 @@ blocks if a target size in MiB is provided. This mode is
incompatible with \fB\-txindex\fR and \fB\-rescan\fR. Warning: Reverting this
setting requires re\-downloading the entire blockchain. (default:
0 = disable pruning blocks, 1 = allow manual pruning via RPC,
>550 = automatically prune block files to stay under the
>2200 = automatically prune block files to stay under the
specified target size in MiB)
.HP
\fB\-reindex\-chainstate\fR
@ -283,19 +287,24 @@ Do not load the wallet and disable wallet RPC calls
.IP
Set key pool size to <n> (default: 100)
.HP
\fB\-discardthreshold=\fR<amt>
.IP
The minimum transaction output size (in DOGE) used to validate wallet
transactions and discard change (to fee) (default: 1.00)
.HP
\fB\-fallbackfee=\fR<amt>
.IP
A fee rate (in DOGE/kB) that will be used when fee estimation has
insufficient data (default: 1.00)
insufficient data (default: 0.01)
.HP
\fB\-mintxfee=\fR<amt>
.IP
Fees (in DOGE/kB) smaller than this are considered zero fee for
transaction creation (default: 1.00)
transaction creation (default: 0.01)
.HP
\fB\-paytxfee=\fR<amt>
.IP
Fee (in DOGE/kB) to add to transactions you send (default: 0.00)
Fee (in DOGE/kB) to add to transactions you send (default: 0.01)
.HP
\fB\-rescan\fR
.IP
@ -395,13 +404,13 @@ Prepend debug output with timestamp (default: 1)
\fB\-minrelaytxfee=\fR<amt>
.IP
Fees (in DOGE/kB) smaller than this are considered zero fee for
relaying, mining and transaction creation (default: 1.00)
relaying, mining and transaction creation (default: 0.001)
.HP
\fB\-maxtxfee=\fR<amt>
.IP
Maximum total fees (in DOGE) to use in a single wallet transaction or
raw transaction; setting this too low may abort large
transactions (default: 400.00)
transactions (default: 100.00)
.HP
\fB\-printtoconsole\fR
.IP
@ -419,6 +428,16 @@ Use the test chain
.PP
Node relay options:
.HP
\fB\-dustlimit=\fR<amt>
.IP
Amount under which a transaction output is considered dust, in DOGE
(default: 0.01)
.HP
\fB\-harddustlimit=\fR<amt>
.IP
Amount under which a transaction output is considered non\-standard and
will not be accepted or relayed, in DOGE (default: 0.001)
.HP
\fB\-bytespersigop\fR
.IP
Equivalent bytes per sigop in transactions for relay and mining
@ -455,7 +474,7 @@ Set maximum size of high\-priority/low\-fee transactions in bytes
\fB\-blockmintxfee=\fR<amt>
.IP
Set lowest fee rate (in DOGE/kB) for transactions to be included in
block creation. (default: 0.00001)
block creation. (default: 0.01)
.PP
RPC server options:
.HP
@ -510,7 +529,7 @@ option can be specified multiple times
.IP
Set the number of threads to service RPC calls (default: 4)
.SH COPYRIGHT
Copyright (C) 2013-2017 The Dogecoin Core and Dogecoin Core developers
Copyright (C) 2013-2021 The Bitcoin Core and Dogecoin Core developers
Please contribute if you find Dogecoin Core useful. Visit
<https://dogecoin.com> for further information about the software.
@ -522,4 +541,5 @@ or <https://opensource.org/licenses/MIT>
This product includes software developed by the OpenSSL Project for use in the
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
Eric Young and UPnP software written by Thomas Bernard.
Eric Young and UPnP software written by Thomas Bernard. Paper wallet art
provided by Anacoluthia.

Some files were not shown because too many files have changed in this diff Show more