14586 Commits

Author SHA1 Message Date
GaloisField2718
1864886c70
Add gen-dogecoin-conf.sh script into contrib/devtools and store the example conf file generated into ./share 2024-07-16 16:49:47 -04:00
chromatic
2fcaf1310c
Merge pull request #3576 from patricklodder/bugfix/maskpow
validation: avoid masking of difficulty adjustment errors
2024-07-14 17:04:30 -07:00
chromatic
5788fb8f15
Merge pull request #3575 from patricklodder/perf/orphantx-interrupt
net: improve orphan processing
2024-07-14 11:21:11 -07:00
chromatic
7c004f4bd5
Merge pull request #3574 from patricklodder/qa/p2p-getdata
qa: add getdata test
2024-07-14 11:20:57 -07:00
chromatic
fea6eeaec5
Merge pull request #3572 from patricklodder/qa/fix-walletnotify
qa: fix walletnotify test
2024-07-14 11:20:44 -07:00
chromatic
cf2c9bac23
Merge pull request #3313 from patricklodder/1.14.7-fix-lock-debugging
refactor: fix undefined behavior and cleanup lock debugging code
2024-07-14 08:29:49 -07:00
Old Dip Tracker
777a84f8f7
Merge pull request #3565 from qlpqlp/1.15.0-dev-pt_PT-Readme-Translation
Added pt_PT Readme
2024-07-13 03:37:14 +02:00
Patrick Lodder
3a1519a901
qa: fix walletnotify test
1. Allow more time for notifications to be delivered under load
2. Assure that in a non-hostile reorg the tracked transaction
   isn't mined prematurely by mining 80-bytes blocks
3. Test all 4 messages for the doublespend scenario at once to
   not error out when the conflict races the new transaction

This allows us to more strictly test the reorg behavior while
reducing race issues
2024-07-10 22:09:00 -04:00
inevitable360
872b61ade3 Updated typos
Updated typos thanks to @vhs94
Added pt_PT Readme

Co-Authored-By: Victor Hugo Ramos <victor.santana@juntossomosmais.com.pt>
2024-07-09 22:38:56 +01:00
chromatic
d099258fdc
Merge pull request #3568 from patricklodder/net/inv-buffer
p2p: reduce amount of getheaders sent per inv
2024-07-07 16:55:23 -07:00
chromatic
63d2d8a2d7
Merge pull request #3567 from patricklodder/bugfix/timedata
bugfix: avoid the use of abs in time data
2024-07-07 16:55:10 -07:00
Patrick Lodder
215fc33d08
validation: avoid masking of difficulty adjustment errors
Currently difficulty adjustment violations are not reported for
chains that branch off before the last checkpoint. Change this
by moving the checkpoint check after the difficulty check.

Backported from: 85c82b50
Original Author: Pieter Wuille <pieter.wuille@gmail.com>
2024-07-03 17:31:22 -04:00
Pieter Wuille
9f2ab9ed6c
Interrupt orphan processing after every transaction
This makes orphan processing work like handling getdata messages:
After every actual transaction validation attempt, interrupt
processing to deal with messages arriving from other peers.

Cherry-picked from: 866c8058a
2024-07-03 16:30:01 -04:00
Patrick Lodder
0e4df473f6
p2p: simplify orphan processing
Reduces complexity in processing of orphans when receiving tx
messages over p2p. and isolate the functionality in its own
function ProcessOrphanTx

Backported from: 9453018f
                 6e051f3d
Original Author: Pieter Wuille <pieter.wuille@gmail.com>
2024-07-03 16:29:48 -04:00
Patrick Lodder
cedbbeba96
p2p: enforce cs_main lock when requesting headers 2024-07-03 14:01:44 -04:00
Patrick Lodder
3e64e6f226
p2p: Only send a getheaders for one block in an INV
Headers-first is the primary method of announcement on the network.
If a node fell back sending blocks by inv, it's probably for a
re-org. The final block hash provided should be the highest, so
send a getheaders and then fetch the blocks we need to catch up.

Backported from: 74673663
Original Author: John Newbery <john@johnnewbery.com>
2024-07-03 14:01:36 -04:00
Patrick Lodder
846812cdde
cleanup: remove BOOST_FOREACH from timedata.cpp 2024-07-03 12:35:17 -04:00
Pieter Wuille
f88f9ddee2
Avoid the use of abs64 in timedata
Cherry-picked from: d1292f25
2024-07-03 12:16:46 -04:00
Patrick Lodder
f68998b0b1
qa: add getdata test
Tests that an invalid GETDATA doesn't prevent processing of future
messages

Backported from: 2f032556
Co-authored-by: Amiti Uttarwar <amiti@uttarwar.org>
Co-authored-by: John Newbery <john@johnnewbery.com>
2024-07-03 11:21:58 -04:00
Old Dip Tracker
962b0205f4
Merge pull request #3194 from thisiskeanyvy/master
Translation and addition of the README.md file in French
2024-06-29 16:30:52 +02:00
thisiskeanyvy
a9e6621935
Translation and addition of the README.md file in French (fr/README.md) 2024-06-28 00:04:47 +02:00
chromatic
2a16b17825
Merge pull request #3459 from patricklodder/1.15.0-organize-intl-docs
Organize internationalized documentation
2024-06-25 17:12:30 -07:00
chromatic
fdf534c133
Merge pull request #3561 from patricklodder/compat/std17
build: allow c++17 standard to be used for compilation
2024-06-25 06:59:28 -07:00
Old Dip Tracker
929078f842
Merge pull request #3514 from chromatic/1.15.0-rename-qa-dogecoin-constants
Change Bitcoin to Dogecoin in qa/ files
2024-06-25 02:55:06 +02:00
Patrick Lodder
09f92efee3
doc: hierarchical link international docs
Removes crosslinking of documentation in favor of a link hierarchy:

- main README.md links to doc/intl/README.md
- doc/intl/README.md links to individual translated documents

This reduces conflicts between translations.
2024-06-24 13:29:19 -04:00
Patrick Lodder
268a412a9b
doc: move internationalized docs 2024-06-24 13:29:18 -04:00
Patrick Lodder
83af7b3b6e
doc: Organize documentation internationalization 2024-06-24 13:29:18 -04:00
chromatic
e2b3c7eabb
Merge pull request #3393 from patricklodder/1.14.7-blockstats-dust
Add dust metrics to getblockstats
2024-06-23 18:11:16 -07:00
Patrick Lodder
4196748d27
build: allow c++17 standard to be used for compilation
This will allow compiling with the c++17 standard, which on some
distributions (macOS, FreeBSD) is required when using system
dependencies.

The ./configure script will now allow specifying --enable-c++17 to
enable c++17. The default remains c++11, and c++14 also remains
available.
2024-06-23 17:51:52 -04:00
chromatic
1cabf8dfb1 Change Bitcoin to Dogecoin in qa/ files
This changes all occurrences of `BITCOIN` to `DOGECOIN` and `bitcoind`
to `dogecoind` in all files in `qa/`. It does not change copyright
information.
2024-06-22 09:07:27 -07:00
chromatic
5bbb1fa1d8
Merge pull request #3557 from patricklodder/doc/security
doc: add security policy
2024-06-22 08:58:12 -07:00
chromatic
2e37a3a1ba
Merge pull request #3560 from patricklodder/compat/shuffle
random: use std::shuffle instead of std::random_shuffle
2024-06-22 00:13:50 -07:00
Patrick Lodder
caa79bd1a1
random: use std::shuffle instead of std::random_shuffle
random_shuffle is deprecated since c++11 and removed in c++17. Use
the shuffle function instead, now that we have a standardized
interface available on FastRandomContext.

This enables c++17 compilation
2024-06-20 10:32:21 -04:00
Old Dip Tracker
da22f3312d
Merge pull request #3521 from xanimo/1.15.0-dev-next-random-pre-14955
backport: random.h/.cpp cherry-picks
2024-06-20 15:20:35 +02:00
Pieter Wuille
47b48521bb
Make FastRandomContext support standard C++11 RNG interface
This makes it possible to plug it into the various standard C++11 random
distribution algorithms and other functions like std::shuffle.

Cherry-picked from: 1ec1602a4549f6b68586cead8eff701bceb624f5
2024-06-18 16:38:09 -07:00
Aaron Clauson
3606c85c7d
Minimal code changes to allow msvc compilation.
-add msvc ssize_t definition in compat.h
-change NUM_OS_RANDOM_BYTES to int from ssize_t in random.h

Includes squashed commit: f7dc99244c8e78dbd0196f612690efcc449c37dc

Inspired by: fbf327b13868861c2877c5754caf5a9816f2603c
2024-06-18 16:06:52 -07:00
Dag Robole
90d1972d81
Fix resource leak
Cherry-picked from: a8ae0b252a2007568e77f5aca1c7fa3ec5941b72
2024-06-18 15:19:51 -07:00
Pieter Wuille
60bd389823
Use rdrand as entropy source on supported platforms
Includes squashed commits:
5155d1101eb4fc9d4d797b583bb29f71807bd10b
a9e82f6512662054f64ed2bde590b2bb0831fc9d
674848fe1c43fb88870cf5ba16fca4e2524da793

Cherry-picked from: cb24c8539d1098d1a61605b452ecfa11a693320d
2024-06-18 15:19:25 -07:00
Pieter Wuille
23bc7a072e
Use sanity check timestamps as entropy
Cherry-picked from: 2c0a6f157da3c6bb3b0a1e77f003caf0d9cb9d6c
2024-06-18 14:37:52 -07:00
Pieter Wuille
4a3c6ddc11
Test that GetPerformanceCounter() increments 2024-06-18 14:37:51 -07:00
Pieter Wuille
930acbfe49
Use hardware timestamps in RNG seeding 2024-06-18 14:37:44 -07:00
Old Dip Tracker
5ac4640a48
Merge pull request #3511 from xanimo/1.15.0-dev-91e3035-10321
backport: Use FastRandomContext for all tests
2024-06-15 15:26:16 +02:00
xanimo
d693d4a008
random: getentropy on macOS does not need unistd.h
change sys/random.h to random.h in AC_MSG_CHECK
remove definitions that are applicable to macos which include unistd.h
additionally change comparator argument from NULL to nullptr when evaluating &getentropy

Inspired by: c13c97dbf846cf0e6a5581ac414ef96a215b0dc6
2024-06-13 11:44:33 -07:00
James Hilliard
743c3acd3d
Check if sys/random.h is required for getentropy on OSX.
Cherry-picked from: ee2d10ad0c0e04d0b9da4535a6fff265ac2501e5
2024-06-13 11:42:50 -07:00
Pieter Wuille
265f258540
scripted-diff: Use new naming style for insecure_rand* functions
-BEGIN VERIFY SCRIPT-
sed -i 's/\<insecure_randbits(/InsecureRandBits(/g' src/test/*.cpp src/test/*.h src/wallet/test/*.cpp
sed -i 's/\<insecure_randbool(/InsecureRandBool(/g' src/test/*.cpp src/test/*.h src/wallet/test/*.cpp
sed -i 's/\<insecure_randrange(/InsecureRandRange(/g' src/test/*.cpp src/test/*.h src/wallet/test/*.cpp
sed -i 's/\<insecure_randbytes(/InsecureRandBytes(/g' src/test/*.cpp src/test/*.h src/wallet/test/*.cpp
sed -i 's/\<insecure_rand256(/InsecureRand256(/g' src/test/*.cpp src/test/*.h src/wallet/test/*.cpp
sed -i 's/\<insecure_rand(/InsecureRand32(/g' src/test/*.cpp src/test/*.h src/wallet/test/*.cpp
sed -i 's/\<seed_insecure_rand(/SeedInsecureRand(/g' src/test/*.cpp src/test/*.h src/wallet/test/*.cpp
-END VERIFY SCRIPT-

Cherry-picked from: e945848582160b23fa0bc6f797e2bd8ac676ee0e
2024-06-13 11:42:49 -07:00
Pieter Wuille
7abc3c6c6d
scripted-diff: Use randbits/bool instead of randrange where possible
-BEGIN VERIFY SCRIPT-
sed -i 's/insecure_randbits(1)/insecure_randbool()/g' src/test/*_tests.cpp
sed -i 's/insecure_randrange(2)/insecure_randbool()/g' src/test/*_tests.cpp
sed -i 's/insecure_randrange(4)/insecure_randbits(2)/g' src/test/*_tests.cpp
sed -i 's/insecure_randrange(32)/insecure_randbits(5)/g' src/test/*_tests.cpp
sed -i 's/insecure_randrange(256)/insecure_randbits(8)/g' src/test/*_tests.cpp
-END VERIFY SCRIPT-

Cherry-picked from: 2fcd9cc86bfce944e3312e9a24685403250f3bdc
2024-06-13 11:42:49 -07:00
Pieter Wuille
046cbb0091
Use randbits instead of ad-hoc emulation in prevector tests
Cherry-picked from: 2ada67852174a76753080d65a7adbe27241a9caa
2024-06-13 11:42:49 -07:00
Pieter Wuille
9fa9876e4c
Replace rand() & ((1 << N) - 1) with randbits(N)
Cherry-picked from: 5f0b04eedc5bbdb9319c9f1f1a6c599337f5bbe3
2024-06-13 11:42:48 -07:00
Pieter Wuille
a36981dec6
Replace more rand() % NUM by randranges
Cherry-picked from: 3ecabae36364e905e7821fba3e60aa7f8418de6c
2024-06-13 11:42:48 -07:00
Pieter Wuille
fe5b701634
scripted-diff: use insecure_rand256/randrange more
-BEGIN VERIFY SCRIPT-
sed -i "s/\<GetRandHash(/insecure_rand256(/" src/test/*_tests.cpp
sed -i "s/\<GetRand(/insecure_randrange(/" src/test/*_tests.cpp src/test/test_bitcoin.cpp
sed -i 's/\<insecure_rand() % \([0-9]\+\)/insecure_randrange(\1)/g' src/test/*_tests.cpp
-END VERIFY SCRIPT-

Cherry-picked from: efee1db21a652019e0ab18fffc233d91bb7f1816
2024-06-13 11:42:48 -07:00