Age | Commit message (Collapse) | Author |
|
a84650ebd5ac2cbb49f14eb7c98736a3f8215bf1 util: Fix ReadBinaryFile reading beyond maxsize (klementtan)
Pull request description:
Currently `ReadBinaryFile` will read beyond `maxsize` if `maxsize` is not a multiple of `128` (size of buffer)
This is due to `fread` being called with `count = 128` instead of `count = min(128, maxsize - retval.size()` at every iteration
The following unit test will fail:
```cpp
BOOST_AUTO_TEST_CASE(util_ReadWriteFile)
{
fs::path tmpfolder = m_args.GetDataDirBase();
fs::path tmpfile = tmpfolder / "read_binary.dat";
std::string expected_text(300,'c');
{
std::ofstream file{tmpfile};
file << expected_text;
}
{
// read half the contents in file
auto [valid, text] = ReadBinaryFile(tmpfile, expected_text.size() / 2);
BOOST_CHECK_EQUAL(text.size(), 150);
}
}
```
Error:
```
test/util_tests.cpp:2593: error: in "util_tests/util_ReadWriteFile": check text.size() == 150 has failed [256 != 150]
```
ACKs for top commit:
laanwj:
Code review ACK a84650ebd5ac2cbb49f14eb7c98736a3f8215bf1
theStack:
Code-review ACK a84650ebd5ac2cbb49f14eb7c98736a3f8215bf1
Tree-SHA512: 752eebe58bc2102dec199b6775f8c3304d899f0ce36d6a022a58e27b076ba945ccd572858b19137b769effd8c6de73a9277f641be24dfb17657fb7173ea0eda0
|
|
0189df1d3171082caf743ef3b0968f43c71303f5 build, mac: Include arch in codesignature tarball (Andrew Chow)
6e9308c6d4ed9fbf909c7234ae31245747183be3 guix: use latest signapple (Andrew Chow)
Pull request description:
Since we have two architectures for Mac binaries, having the architecture in the code signature tarball generated by `detached-sig-create.sh` allows us to avoid accidentally overwriting an existing code signature tarball during the code signing process.
ACKs for top commit:
fanquake:
ACK 0189df1d3171082caf743ef3b0968f43c71303f5
Tree-SHA512: 7e0d282e4ced1094f36f1d26ff6e18d53449561ab3a1a95ac69eb5ff3d7b33ee4bd8fad004884806064a29541c47f9e5879c2a1fd0f54453413245bdcf53c4c7
|
|
settings.json
5b1aae12ca4a99c6b09349981a4902717a6a5d3e qt: Avoid crash on startup if int specified in settings.json (Ryan Ofsky)
84b0973e35dae63cd1b60199b481e24d54e58c97 test: Add tests for GetArg methods / settings.json type coercion (Ryan Ofsky)
Pull request description:
Should probably add this change to 23.x as suggested by Luke https://github.com/bitcoin/bitcoin/issues/24457#issuecomment-1059825678. If settings like `prune` are added to `settings.json` in the future, it would be preferable for 23.x releases to respect the setting instead of crash.
---
Fix GUI startup crash reported by Rspigler in https://github.com/bitcoin/bitcoin/issues/24457 that happens if `settings.json` contains an integer value for any of the configuration options which GUI settings can currently clash with (-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy, -proxy, -onion, -onion, -lang, and -prune).
The fix is a one-line change in `ArgsManager::GetArg`. The rest of the PR just adds a regression test for the GUI and unit tests for ArgsManager::GetArg methods.
ACKs for top commit:
laanwj:
Code review ACK 5b1aae12ca4a99c6b09349981a4902717a6a5d3e
achow101:
ACK 5b1aae12ca4a99c6b09349981a4902717a6a5d3e
jonatack:
Code review ACK 5b1aae12ca4a99c6b09349981a4902717a6a5d3e
Tree-SHA512: 958991b4bead9b82a3879fdca0f8d6405e2a212b7c46cf356f078843a4f156e27fd75fc46e2013aa5159582ead06d343c1ed248d678b3e5bbd312f247e37894c
|
|
|
|
|
|
for coinstatsindex
691d45fdc83ec14f87a400f548553168ac70263f Add coinstatsindex_unclean_shutdown test (Ryan Ofsky)
eb6cc05da32c5bde122725a0bc907d3767a791cd index: Commit DB_MUHASH and DB_BEST_BLOCK to disk together (Martin Zumsande)
Pull request description:
Fixes #24076
Coinstatsindex currently writes the MuHash (`DB_MUHASH`) to disk in `CoinStatsIndex::WriteBlock()` and `CoinStatsIndex::ReverseBlock()`, but the best synced block is written in `BaseIndex::Commit()`. These are called at different points in time, both during the ThreadSync phase, and also after the initial sync is finished and validation callbacks (`BlockConnected()` vs `ChainStateFlushed()`) perform the syncing.
As a result, the index DB is temporarily in an inconsistent state, and if bitcoind is terminated uncleanly (so that there is no time to call `Commit()` by receiving an interrupt or by flushing the chainstate) this leads to problems:
On the next startup, `Init()` will read the best block and a MuHash that corresponds to a different (higher) block. Indexing will be picked up at the the best block processing some blocks again, but since MuHash is a rolling hash, it will process some utxos twice and the muhashes for all future blocks will be wrong, as was observed in #24076.
Fix this by always committing `DB_MUHASH` together with `DB_BEST_BLOCK`.
Note that the block data for the index is still written at different times, but this does not corrupt the index - at worst, these entries will be processed another time and overwritten after an unclean shutdown and restart.
ACKs for top commit:
ryanofsky:
Code review ACK 691d45fdc83ec14f87a400f548553168ac70263f. Only change since last review is adding test
fjahr:
ACK 691d45fdc83ec14f87a400f548553168ac70263f
Tree-SHA512: e1c3b5f06fa4baacd1b070abb0f8111fe2ea4a001ca8b8bf892e96597cf8b5d5ea10fa8fb837cfbf46648f052c742d912add4ce26d4406294fc5fc20809a0e1b
|
|
generate different addrs
db27ac935480aeec40a1cfc9d5f10a48be55d61b tests: Ensure sorted/multi_a descriptors always generate different addrs (Andrew Chow)
Pull request description:
Sometimes the multi_a and sortedmulti_a descriptors will produce some of the same addresses in the tests. This causes the wallets to start generating addresses at a different index as they detect that one of the addresses is used. This subsequently causes a test failure.
To avoid this problem, use descriptors that will produce unique addresses by putting one of the multi_a in a different branch.
ACKs for top commit:
ajtowns:
ACK db27ac935480aeec40a1cfc9d5f10a48be55d61b
theStack:
Tested ACK db27ac935480aeec40a1cfc9d5f10a48be55d61b
Tree-SHA512: 0f57822bf4c7c79da304f092d7d43d6118e78a087cbeb0766fbbf634dc27911ae723d5d41350884d3b63a24d3b3817944f7e5fa534afb849161dd008a1e4a62f
|
|
builds
bb12870bac230960bbe2df35f579570e465d8ea4 guix: only use native GCC 7 toolchain for Linux builds (fanquake)
Pull request description:
The macOS and Windows builds do not require a GCC 7 toolchain, and this
is actually causing build issues, i.e #24211. So switch to using a GCC
10 native toolchain for both. We can't switch to using a GCC 7+ native
toolchain for Linux without patching around glibc build issues (something
to look at for a future change).
Fixes #24211.
Guix Builds (on x86_64):
```bash
bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
6fece1c8ed69bd724c76dfd768f03b1d43c9dfb1767f0fad743fb3e068ce8f7f guix-build-bb12870bac23/output/aarch64-linux-gnu/SHA256SUMS.part
555c1245581eff3013a2b56a3c7acb2923de9117dd5d108d4b7954e22f386dd1 guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu-debug.tar.gz
e8f10a3791a4245566dab8253b76dcac3354bdfad9b9575743e937b52e364494 guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu.tar.gz
c4339db89259e5a8e5666fc807c198a49162d500c2143f8a1dc86e6e7ca32bbc guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part
6123682411cbb16bfa41d31cb4a9673744ad8c09b6f8586a4dfda08bc5f7a682 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz
3dcd70f65dd3dfd7385ac6715244fb6c696257e622220310abae7279cbd2a3a4 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz
47c5235cce1e3e2e88a461e48e54a29dffb7ac0d8b57955f4e6977273af113f3 guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part
3584eec693b82b1b4e81094132a9a5e3ebf4a72a3c3cfe9914f24da62c2e2014 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz
4a6e561abfc3f69e57a05fc278d75b6f58f82dec50b9b3acbf9745706be91d60 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
36a88bc090927493ed31635e1412dc01a81fb034d612c21ebb8b8602b7529ad2 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9 guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz
b676ae5d37fdac267c82bcc57d76e25694f2ee2292f4d012648a0e496104f48d guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part
00cad11e137030b1165437a91d4e9f2827b1abe54b5ff14709abeab0a33711b8 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz
e715686469924452e1d35b93a64aa1fe1a85f5592757e8c24feda03db821fc48 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz
20547e405ab88d84a228563ec7aaa965515b2714f65cc16f3288f8c885fe39db guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part
707d2f14a7b73cc73710297d4d8f1773864c27a5e44ef45a97c0437ce4b291e0 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz
6930ddbb6d5aebfd901ec30ad68749338265d43b73ad11015a320af37620d6e9 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz
2af7a3a50622ed1b2b271b655b8319f1b34f605f97381a66ee4625c1864cc3e2 guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part
0e9e0878e446af7cd33782cf6d8a0cfb163b1ade7c87d5a6c6d7c315436bbb31 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz
6c8994f11fadbfda8fc9c57deeaf67568b8368084c7959a56aabde89c99033d1 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz
5214d7276030ea9721b2f8ed715308d2e3bf46158ddc030c7aa6f40098e3bc9b guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part
5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
3a26d5e127fd2a723601fe14855b49cdb39c6fe6f407ca0d84a833eac6e4f47d guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz
056a78e9f0aaed10aa7d734746d3adb27bb8ea0856829e7fedd2cb02f1234c62 guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part
77a493b1e5409d422b2006d46bf9de1e151485fc65680e4d4dd07c28a0264c51 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz
ccef5699e8a6153dbf35deb35f9d63439a5ef19234b9923840fe23780d41a983 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz
0d64b0f1797f2b25eb7be65045f25b0297409250e8cc298a711a790b69534066 guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part
471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz
be7af6c54a52b58f696a9cabda21ec9c9748150b5874b21d4377199db7d70b7b guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip
d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe
43a038525f2383fdb9ed7f0d0d709d7f353933f3bf066779bc27503282acc0c5 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip
```
Guix Builds (on arm64 [skipping aarch64 HOST](https://github.com/bitcoin/bitcoin/issues/22458)):
```bash
root@3b26b9608b88:/bitcoin# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
9da540efe1e32ea74c1da5b9d17436d4de75f5d2b370d09cfdb06b044b3c816a guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part
ade319778d571de3727600d2bbbccbdb35cdaa138f2a941e0be58d94899b2ce5 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz
1bd1790c002a40b6db1378f5344e7e34df0cd0fd7f29dbe98db5397b52b9dde9 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz
e457b5f6a30d713faa521969d2f8b56e3176f63c3e116c4d149b63f9fa0de80f guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part
13f1b769c6af61ee4ef057f36715d63390c42ae29fae301f6cf65bdf644c6adf guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz
278c0c1134aed42e575d8af2c328a26e88765f0b0686e06cea1c884bd821cd28 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
6b5602fe63b9fb546ba0897bf5563714fad83e4c3a0cb285ed4961ec1a5e488d guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9 guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz
0292906278db266a67f5c780af12a2c91ec62007c6a72e6c8b37463701d838cb guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part
83362d3d84b00674359df9300729e1a2b3cf14cf2b9b71b9bb46fe9610ab0e6d guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz
3d5a538d28ccb97a239da358d1390add1d20e4c4d89e873a29aed3f92728e532 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz
8eb7194b2019b5ddb12f88fee8a76d8923bd0883de817c3bf396ea16e5b0543e guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part
3ec4a6cff3c974a1603276e5d75bc398522d543b6f9770a74c9a7acf6dc79c82 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz
5b5eeb539362d6664a007d4856b5779a55ab714a96134749b5cfe870a4b5a7f9 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz
3201f796777a9fc029dddc085489afcf14b68cf77b0511d3b52cc336fb58baad guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part
a46286b4d94de7189c93682d37c8bd3910f5ca2f612fc939b6e8ff3e56a4feff guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz
e88fd7b312879fd7dc254674532535a05efaeb7167145541440289d45ec9ba17 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz
31659aa39146ad25631cc2030b415bec6892fa9cffebfd8c6da2d9b0c552773b guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part
5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg
7a75daff1427fa8839f35ce84fda19c95a6c82365937dc67f988bc8853fc1948 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz
92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz
bbc0c2fc3b142191ea5403095b9da1691073375b178e06eea68736c3a4b8477f guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part
121fc43297b045af7fbe3904a1df94ff55e4908344eb97d48e50091216ecfdc2 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz
b2fbab5153a52f82390c67e6a14187eb791a3f052cedca0183b81e939932618f guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz
4ffca23b6d93ed888b7ac5a54eb1c06bd04f304f336361655033796f3117d145 guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part
471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz
b226fe0f139bc2c4773e67784fc928874cba2ec0322d5da9a60fe5e6fd440f95 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip
d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe
a435f9e1637281a8c6b174ec5dbc729ae35cca64928a42e435d57fb3292b9f3f guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip
```
ACKs for top commit:
dongcarl:
Code Review ACK bb12870bac230960bbe2df35f579570e465d8ea4
hebasto:
ACK bb12870bac230960bbe2df35f579570e465d8ea4, I have reviewed the code and it looks OK, I agree it can be merged.
Tree-SHA512: 304d1e76b5e74e4f5a946ae29208d695f558891eca6e711c0cb528133896ceca2147f1cdc4c39e5155ef90652555c1e6de52efcb93f1124bf2dde8d9201b630d
|
|
`UnloadBlockIndex`
7a68fe4831787a66986a76306180c7876ecba37f bitcoin-chainstate: Lock cs_main to UnloadBlockIndex (Carl Dong)
Pull request description:
This was introduced because of a silent merge conflict.
ACKs for top commit:
promag:
ACK 7a68fe4831787a66986a76306180c7876ecba37f
jonatack:
ACK 7a68fe4831787a66986a76306180c7876ecba37f
Tree-SHA512: 4c135efd68604452485a129e731675ff5917c157a70c77dd702211d9902c21b3b29380a881723f43ecba4762bc864b036881bb502b3b792e581565dcaa7a7ed4
|
|
40894f6771682b242b3f4c8ca2839513cb6f0eed guix: use latest upstream signapple (fanquake)
cbc3f63f4184336521b981087840f3f16a1cd11d guix: use latest upstream python-certvalidator (fanquake)
Pull request description:
Update our signapple and python-certvalidator dependencies to the latest available versions. The latest signapple includes [improvements for signing M1 binaries](https://github.com/achow101/signapple/commit/bf4d906220a23f905ea8c371a50b1178796327ba) and [better error output](https://github.com/achow101/signapple/commit/9f42f3c8295d4107ee7a22e523ec17449a936f43) when applying signatures (i.e applying the wrong signature type to a binary).
Guix Build (x86_64):
```bash
bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
53d4207c9aaa3fd1a596796566d88e9d77bbf4bc85a1772e2f6cc5c5ebd9eca8 guix-build-40894f677168/output/aarch64-linux-gnu/SHA256SUMS.part
4a472d63838e6b27317cb3d2bea72a9b4e5c6ee70b4b0e5191b343e3daad73cf guix-build-40894f677168/output/aarch64-linux-gnu/bitcoin-40894f677168-aarch64-linux-gnu-debug.tar.gz
45307531316cc4b7915cff2764af1e713711f0ac1dbce55f5a5c9434a080a29d guix-build-40894f677168/output/aarch64-linux-gnu/bitcoin-40894f677168-aarch64-linux-gnu.tar.gz
57fbc2a5ccb4ac77ce6bfba073d0bc4d561cdbe552abd0d322dbd52bce7f9392 guix-build-40894f677168/output/arm-linux-gnueabihf/SHA256SUMS.part
d30b9a815a87af37814a7b8ccb39551fafe9f9d587182a154e14597393417e41 guix-build-40894f677168/output/arm-linux-gnueabihf/bitcoin-40894f677168-arm-linux-gnueabihf-debug.tar.gz
7b103a83aa181374941785427a96a15063ae757f15913b7a7b1401d70da781a3 guix-build-40894f677168/output/arm-linux-gnueabihf/bitcoin-40894f677168-arm-linux-gnueabihf.tar.gz
b5c9eed6a1b9e728217c1e9d96af6d11332f4d6b74f5482d972fccb2e6c35a2b guix-build-40894f677168/output/arm64-apple-darwin/SHA256SUMS.part
81915be1d32a6fb81b45f0f128ecc68e0bba75c5c719d5bf3d5e4f512f436631 guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-arm64-apple-darwin.tar.gz
185643a4bdf915c3968c1265c3aedb3f8865904cddaaee1bf02c8ce08cb7d8cc guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-osx-unsigned.dmg
d9de7d15ebca380ec65e39f362a051994d515944665e535929fead0c1b6d6b56 guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-osx-unsigned.tar.gz
ca94146ac95f623ba5b63d52dfc8b5909fd9a1a406fff447cad83b059b191a49 guix-build-40894f677168/output/dist-archive/bitcoin-40894f677168.tar.gz
e1637718b3d605896c9cfb8c309207acc8ac406acb2d9a3b6d8c83edba196c7c guix-build-40894f677168/output/powerpc64-linux-gnu/SHA256SUMS.part
559f5376dd7a5c59b620f2e64290c265ef1a70c0cdc94c5d7468e3d51b418c12 guix-build-40894f677168/output/powerpc64-linux-gnu/bitcoin-40894f677168-powerpc64-linux-gnu-debug.tar.gz
44f34dfc2fddeabfbb75b301d7cd9282283aa4c1b1f60815536eaa40c8faf136 guix-build-40894f677168/output/powerpc64-linux-gnu/bitcoin-40894f677168-powerpc64-linux-gnu.tar.gz
d4904f60f22656abaf1b1e933cf321207dbf1902149f68a4857909c38b0d861c guix-build-40894f677168/output/powerpc64le-linux-gnu/SHA256SUMS.part
76e76b99721cec1d382a190d3fd5315e8b70e07686681f30ace13f7f252ac2b7 guix-build-40894f677168/output/powerpc64le-linux-gnu/bitcoin-40894f677168-powerpc64le-linux-gnu-debug.tar.gz
4c3e5d1f62c21fe2dc47ceba3fa067ef7d3c1fa1914a6d37a8ba1262a82c54f1 guix-build-40894f677168/output/powerpc64le-linux-gnu/bitcoin-40894f677168-powerpc64le-linux-gnu.tar.gz
816f2d6b0705ec5e07a408ed3a97a07066189b9a89489e7ce67b4cb73a503bb9 guix-build-40894f677168/output/riscv64-linux-gnu/SHA256SUMS.part
42a9b52da8829a77cde4bae92b81f914c1da81cc39c6312b17dcdc13b2ea5273 guix-build-40894f677168/output/riscv64-linux-gnu/bitcoin-40894f677168-riscv64-linux-gnu-debug.tar.gz
b8e1ee469c77860998d4eb71166f22d83ad2487573b4b59600f42f25926431ed guix-build-40894f677168/output/riscv64-linux-gnu/bitcoin-40894f677168-riscv64-linux-gnu.tar.gz
bd5b059d432b7f387f47feff4feaf6730d13cfed68298cdcf7282fb1a4e5a9e7 guix-build-40894f677168/output/x86_64-apple-darwin/SHA256SUMS.part
ff7a2b16ea40cf60c9ddb88eef60c36354b72f3ea1e9cac2609d876ad3d85149 guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx-unsigned.dmg
71416640e454374a2165992c4e9caf11ffc2129ef1e7fa15c26bf8d712e4c20c guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx-unsigned.tar.gz
82755c00fd33f1c5afa40ef3148e3d802c387b4b64593215f54362167d43eb95 guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx64.tar.gz
824c65decc1169c94d68eaf2c91fec9d76a14521daffcf0ef4cf952c0ca2f27e guix-build-40894f677168/output/x86_64-linux-gnu/SHA256SUMS.part
dbff4685658ab2e26bb90ed3a454559a41bb579730f13012335f52fd8e7f664c guix-build-40894f677168/output/x86_64-linux-gnu/bitcoin-40894f677168-x86_64-linux-gnu-debug.tar.gz
32e9f8988b7e6f663d38f84160e00580adeb1915367afefed0a44c76ffcc4ab8 guix-build-40894f677168/output/x86_64-linux-gnu/bitcoin-40894f677168-x86_64-linux-gnu.tar.gz
e3d09fa9e5054f4801ec1ebb530f0990b9675a3e99ffee6bb36b524f37acca13 guix-build-40894f677168/output/x86_64-w64-mingw32/SHA256SUMS.part
3ed8d3f5d9d935d015429962d305781cefcc7bd2616fda105f4f14a088f5e9a4 guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win-unsigned.tar.gz
bf55846641b6877c5d8415ecbd172a061c7dc822b119247a0f6594d4bd1a8d90 guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64-debug.zip
70a10d7d0843bb4b2dde80a0d0d1543e26d9eb7a38185adf3b51001e107f414e guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64-setup-unsigned.exe
264a12164944ec803e330248365704b7ca47b9ed81882f73c3c6ec71a65806e0 guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64.zip
```
ACKs for top commit:
achow101:
ACK 40894f6771682b242b3f4c8ca2839513cb6f0eed
Tree-SHA512: 0d2e49829bb70fba0abd96288a922c945474ef071eefc7c35c2713046016ca95e154a2f9fb9ba73a49a9cc7ef42d74e94aad111164103fa65e464a8cbeadac73
|
|
This was introduced because of a silent merge conflict.
|
|
7abd8b21ba34f6a42db2cd2d59a4c0e08561f609 doc: include wtxid in TransactionDescriptionString (brunoerg)
2d596bce6fefeff6033b21b391e81f1dda846937 doc: add wtxid info in release-notes (brunoerg)
a5b66738f19a0ad46d7bc287e0db08552c5a1fec test: add wtxid in expected_fields for wallet_basic (brunoerg)
e8c659a2970ec8855de3e1dbf91c6b614b8e5644 wallet: add wtxid in WalletTxToJSON (brunoerg)
7482b6f89500d9783cc6af0dccab7a08d0128206 wallet: add GetWitnessHash() (brunoerg)
Pull request description:
This PR add `wtxid` in `WalletTxToJSON` which allows to return this field in `listsinceblock`, `listtransactions` and `gettransaction` (RPCs).
ACKs for top commit:
achow101:
re-ACK 7abd8b21ba34f6a42db2cd2d59a4c0e08561f609
w0xlt:
crACK 7abd8b2
luke-jr:
re-utACK 7abd8b21ba34f6a42db2cd2d59a4c0e08561f609
Tree-SHA512: f86f2dbb5e38e7b19932006121802f47b759d31bdbffe3263d1db464f6a3a30fddd68416f886a44f6d3a9fd570f7bd4f8d999737ad95c189e7ae5e8ec1ffbdaa
|
|
This should improve support for signing for M1 binaries.
|
|
This should also allow re-enabling previously failing tests.
|
|
fa097d074bc1afcc2a52976796bb618f7c6a68b3 addrman: Log too low compat value (MarcoFalke)
Pull request description:
Before this patch, when writing a negative `lowest_compatible` value, it would be read as a positive value. For example `-32` will be read as `224`. There is generally nothing wrong with that. Though, similarly there shouldn't be anything wrong with refusing to read a negative value. I find the code after this patch more logical than before. Also, this allows dropping a file-wide sanitizer suppression.
In practice none of this should ever happen. Bitcoin Core would never write a negative `lowest_compatible` in normal operation, unless the file storage is later corrupted by external influence.
ACKs for top commit:
mzumsande:
re-ACK fa097d074bc1afcc2a52976796bb618f7c6a68b3
Tree-SHA512: 9aae7b8fe666f52f667f149667025e0160cef1a793cc4d392e36608f65c2bee8096da429235118f40a3368f327aabe30f3732ae78c5874648ea6f423f2687b65
|
|
choosing random keys in wallet_taproot.py
31846b006da46852cfce91e53427dc8f871b3fda test: refactor: use `random.sample` for choosing random keys in wallet_taproot.py (Sebastian Falbesoner)
Pull request description:
The Python3 standard library method `random.sample` has the exact same functionality as the helper method `rand_keys(...)` (that is, random sampling without replacement) on a generic set or sequence, i.e. we can simply replace it. See https://docs.python.org/3/library/random.html#random.sample
Note that this is also safer: in case that the sample size `k` is larger than the population count, `random.sample` throws an error:
```
$ python3
Python 3.8.12 (default, Sep 26 2021, 13:12:50)
[Clang 11.1.0 ] on openbsd7
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> random.sample([23, 42], 3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.8/random.py", line 363, in sample
raise ValueError("Sample larger than population or is negative")
ValueError: Sample larger than population or is negative
```
while the custom method would get stuck in an endless loop.
ACKs for top commit:
shaavan:
Code Review ACK 31846b006da46852cfce91e53427dc8f871b3fda
Tree-SHA512: d9bd7f8128e43401a5b0388e48ba838155b21db5b4b6ba95c91285880788bc3917cb656b74bbe2d97faf7b44862d20b0899dc3c56aa48b9d2b33b50e37d089f6
|
|
Fix GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 that happens if
settings.json contains an integer value for any of the configuration
options which GUI settings can currently clash with (-dbcache, -par,
-spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy,
-proxy, -onion, -onion, -lang, and -prune).
Fix is a one-line change in ArgsManager::GetArg.
|
|
Just add tests. No changes to application behavior. Tests will be
updated in the next commit changing & improving current behavior.
Include a Qt test for GUI startup crash reported by Rspigler in
https://github.com/bitcoin/bitcoin/issues/24457 caused by GetArg
behavior that happens if settings.json contains an integer value for any
of the configuration options which GUI settings can currently clash with
(-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen,
-server, -proxy, -proxy, -onion, -onion, -lang, and -prune).
|
|
wallet_taproot.py
|
|
The macOS and Windows builds do not require a GCC 7 toolchain, and this
is actually causing build issues, i.e #24211. So switch to using a GCC
10 native toolchain for both.
|
|
956f7322f60db7b8be551c9074b4c633e514079d build: Bump minimum Qt version to 5.11.3 (Hennadii Stepanov)
e22d10b936eb7563b2b6611332d9e4c73a2f59d4 ci: Switch from bionic to buster (Hennadii Stepanov)
Pull request description:
The current minimum Qt version is 5.9.5 which has been set in bitcoin/bitcoin#21286.
Distro support:
- centos 7 -- unsupported since bitcoin/bitcoin#23511
- centos 8 -- [5.15.2](http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/qt5-qtbase-5.15.2-3.el8.x86_64.rpm)
- buster -- [5.11.3](https://packages.debian.org/buster/libqt5core5a)
- bullseye -- [5.15.2](https://packages.debian.org/bullseye/libqt5core5a)
- _bionic_ -- [5.9.5](https://packages.ubuntu.com/bionic/libqt5core5a)
- focal -- [5.12.8](https://packages.ubuntu.com/focal/libqt5core5a)
As another Ubuntu LTS is coming soon, it seems unreasonable to stick to Qt 5.9 which support [ended](https://www.qt.io/blog/2017/06/07/renewed-qt-support-services) on 2020-05-31. Anyway, it's still possible to build Bitcoin Core GUI with depends on bionic system.
Bumping the minimum Qt version allows to make code safer and more reliable, e.g.:
- functor-parameter overload of [`QMetaObject::invokeMethod`](https://doc.qt.io/qt-5/qmetaobject.html#invokeMethod-4)
- fixed https://bugreports.qt.io/browse/QTBUG-10907
An example of the patch using the functor-overload of `QMetaObject::invokeMethod`:
```diff
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -349,7 +349,7 @@ bool WalletModel::changePassphrase(const SecureString &oldPass, const SecureStri
static void NotifyUnload(WalletModel* walletModel)
{
qDebug() << "NotifyUnload";
- bool invoked = QMetaObject::invokeMethod(walletModel, "unload");
+ bool invoked = QMetaObject::invokeMethod(walletModel, &WalletModel::unload);
assert(invoked);
}
```
It uses the same new syntax as signal-slot connection with compile-time check. Also see bitcoin/bitcoin#16348.
This PR is intended to be merged early [after](https://github.com/bitcoin/bitcoin/issues/22969) branching `23.x` off.
ACKs for top commit:
MarcoFalke:
cr ACK 956f7322f60db7b8be551c9074b4c633e514079d
fanquake:
ACK 956f7322f60db7b8be551c9074b4c633e514079d
Tree-SHA512: 3d652bcdcd990ce785ad412ed70234d4f27743895e535a53ed44b35d4afc3052e066c4c84f417e30bc53d0a3dd9ebed62444c57b7c765cb1e9aa687fbf866877
|
|
6833aceac97dd170970338f0bde5029f7d7aaa03 build: Move guix time machine to prelude (laanwj)
Pull request description:
This deduplicates some code, and enforces consistency of the time machine configuration between scripts.
ACKs for top commit:
achow101:
ACK 6833aceac97dd170970338f0bde5029f7d7aaa03
dongcarl:
ACK 6833aceac97dd170970338f0bde5029f7d7aaa03
Tree-SHA512: c02ded154cdb982293101986ef863d46554fc428eb5617bee0288dbef0543f994de5044123ac9958e455d0d24276a1c4512149a10dd1efaca8677c8f6b74b0a9
|
|
`CBlockIndex`s
6c23c415613d8b847e6f6a2f872be893da9f4384 refactor: Rewrite AddToBlockIndex with try_emplace (Carl Dong)
c05cf7aa1e1c15089753897a10c14762027d4b99 style: Modernize range-based loops over m_block_index (Carl Dong)
c2a1655799c5d5dab9b14bd2a6b2d2296efd6964 style-only: Use using instead of typedef for BlockMap (Carl Dong)
dd79dad17545424d145e846026518d70da594380 refactor: Rewrite InsertBlockIndex with try_emplace (Carl Dong)
531dce034718523967808a89c18ba69a1e3e5a1f tests: Remove now-unnecessary manual Unload's (Carl Dong)
bec86ae32683ac56b4e6ba9c9b7d21cfbdf4ac03 blockstorage: Make m_block_index own CBlockIndex's (Carl Dong)
Pull request description:
Part of: #24303
Split off from: #22564
```
Instead of having CBlockIndex's live on the heap, which requires manual
memory management, have them be owned by m_block_index. This means that
they will live and die with BlockManager.
```
The second commit demonstrates how this makes calls to `Unload()` to satisfy the address sanitizer unnecessary.
ACKs for top commit:
ajtowns:
ACK 6c23c415613d8b847e6f6a2f872be893da9f4384
MarcoFalke:
re-ACK 6c23c415613d8b847e6f6a2f872be893da9f4384 🎨
Tree-SHA512: 81b2b5119be27cc0f8a9457b11da60cc60930315d2a5be36be89fe253d32073ffe622348ff153114b9b3212197bddbc791810913a43811b33cc58e7162bd105b
|
|
1b20109b04061304eab84cf921a030300b4f9fe3 Squashed 'src/leveldb/' changes from f8ae182c1e..330dd6235f (MarcoFalke)
Pull request description:
A minor change to:
* Consistently use the same symbol names in the whole project.
* Fix compiling with C++20.
ACKs for top commit:
fanquake:
ACK fa0c32eb74f448c67d0ff9d91dfdd66e2f1e4c48
Tree-SHA512: b5d4540dd621cf4aa8caac811bae03bb74e502a31dbdda9354182e4caa39905550e62ad3cf8ea7d7f9bfc3e5120d119d34ab0f1e633716ec8089876037cbf192
|
|
ChainstateManager::Reset thread safety cleanups
ae9ceed3e23288b163b7d7b1840b06b8d332f4ce validation, refactoring: remove ChainstateManager::Reset() (Jon Atack)
daad0093e3d1466789d0ce687902636c80cd74a1 validation: replace lock with annotation in UnloadBlockIndex() (Jon Atack)
Pull request description:
Thread safety refactoring seen in #24177:
- replace re-acquiring lock cs_main with a thread safety annotation in UnloadBlockIndex()
- remove ChainstateManager::Reset(), as it is currently unused (can be reintroduced in the test utilities if needed for unit testing)
ACKs for top commit:
laanwj:
Code review ACK ae9ceed3e23288b163b7d7b1840b06b8d332f4ce
vasild:
ACK ae9ceed3e23288b163b7d7b1840b06b8d332f4ce
klementtan:
crACK ae9ceed3e23288b163b7d7b1840b06b8d332f4ce
Tree-SHA512: cebb782572997cc2dda01590d6bb6c5e479e8202324d8b6ff459b814ce09e818b996c881736bfebd1b8bf4b6d7a0f79faf3ffea176a4699dd7d7429de2db2d13
|
|
Sometimes the multi_a and sortedmulti_a descriptors will produce some of
the same addresses in the tests. This causes the wallets to start
generating addresses at a different index as they detect that one of
the addresses is used. This subsequently causes a test failure.
To avoid this problem, use descriptors that will produce unique
addresses by putting one of the multi_a in a different branch.
|
|
tor/i2p documentation
a1db99adea36dbee1ec97ca1851edad12137feea init, doc: improve -onlynet help and tor/i2p documentation (Jon Atack)
Pull request description:
including review feedback from https://github.com/bitcoin/bitcoin/pull/22834#discussion_r795253056 and https://github.com/bitcoin/bitcoin/pull/24205#discussion_r818629106 concerning `src/init.cpp`, `doc/tor.md` and `doc/i2p.md`
- s/outgoing/automatic outbound/
- s/Incoming/Inbound and manual/ (are not affected by this option.)
- s/only through network/only to network/
- s/this option. This option/this option. It/
- s/network types/networks/
and pick up a few nits in `doc/p2p-bad-ports.md` from https://github.com/bitcoin/bitcoin/pull/23542#pullrequestreview-881415043.
ACKs for top commit:
laanwj:
ACK a1db99adea36dbee1ec97ca1851edad12137feea
w0xlt:
ACK a1db99a
theStack:
ACK a1db99adea36dbee1ec97ca1851edad12137feea
Tree-SHA512: dd727904b9b3dadb16053e2b0350e6c0814ef68fb0cca7d34880b883123cfe3aa03b15813b40a863f6367d596d17ee4517eab55281cfe35cd00767b8a39593ca
|
|
This deduplicates some code, and enforces consistency of the time
machine configuration between scripts.
|
|
68c4a9ed3885c26ac1e7a7296ca9693b3f8cde96 ci: Bump vcpkg to the latest version (Hennadii Stepanov)
Pull request description:
It seems reasonable to run a CI task against the most recent dependencies.
Dependency changes:
- boost 1.75.0 -> 1.78.0
- double-conversion 3.1.5 -> 3.2.0
- sqlite3 3.35.4 -> 3.37.2
ACKs for top commit:
fanquake:
ACK 68c4a9ed3885c26ac1e7a7296ca9693b3f8cde96
Tree-SHA512: 8d8ea42cb37b5eb2e6b82db4fd14b2984a1dee87a5d79e2378feff2e2576403207f5a27d3da7c4b351c1cc570ec8d971ae963c179789ef0ee55e004fbd399fe1
|
|
usable
60aa179d8f9a675efa2d78eaadc09e3ba450f50f Use GetPathArg where possible (Pavol Rusnak)
5b946edd73640c6ecdfb4cbac1d4351e634678dc util, refactor: Use GetPathArg to read "-settings" value (Ryan Ofsky)
687e655ae2970f2f13aca0267c7de86dc69be763 util: Add GetPathArg default path argument (Ryan Ofsky)
Pull request description:
Improve `ArgsManager::GetPathArg` method added in recent PR #24265, so it is usable more places. This PR starts to use it for the `-settings` option. This can also be helpful for #24274 which is parsing more path options.
- Add `GetPathArg` default argument so it is less awkward to use to parse options that have default values.
- Fix `GetPathArg` negated argument handling. Return path{} not path{"0"} when path argument is negated.
- Add unit tests for default and negated cases
- Move `GetPathArg` method declaration next to `GetArg` declaration. The two methods are close substitutes for each, so this should help keep them consistent and make them more discoverable.
ACKs for top commit:
w0xlt:
Tested ACK 60aa179 on Ubuntu 21.10
hebasto:
re-ACK 60aa179d8f9a675efa2d78eaadc09e3ba450f50f
Tree-SHA512: 3d24b885d8bbeef39ea5d0556e2f09b9e5f4a21179cef11cbbbc1b84da29c8fb66ba698889054ce28d80bc25926687654c8532ed46054bf5b2dd1837866bd1cd
|
|
faa329fd46b4d688a5aa728b8b22a8d098987588 refactor: Release cs_main before MaybeSendFeefilter (MarcoFalke)
Pull request description:
There is no need for any lock to be held, because net processing is single threaded. So holding the validation lock cs_main for sending a feefilter is confusing and might even degrade blockchain-related RPC performance minimally.
ACKs for top commit:
ajtowns:
ACK faa329fd46b4d688a5aa728b8b22a8d098987588 ; code review only
vasild:
ACK faa329fd46b4d688a5aa728b8b22a8d098987588
Tree-SHA512: 3e7f9faff1631cc64c86fc1a354ada67617ad1e7a046625cc741f4711854eb41ca8aad5a51ef0d94ff65947b68dba8345c9f786b20ee0a8b7a2e8741cfced21f
|
|
Dependency changes:
- boost 1.75.0 -> 1.78.0
- double-conversion 3.1.5 -> 3.2.0
- sqlite3 3.35.4 -> 3.37.2
|
|
29862bdd402112a98d5da08cb9909bd427b955ad guix: use same commit for codesigning time-machine (fanquake)
Pull request description:
The time machines should be updated in lockstep.
ACKs for top commit:
gruve-p:
ACK https://github.com/bitcoin/bitcoin/pull/24484/commits/29862bdd402112a98d5da08cb9909bd427b955ad
achow101:
ACK 29862bdd402112a98d5da08cb9909bd427b955ad
hebasto:
ACK 29862bdd402112a98d5da08cb9909bd427b955ad, I have reviewed the code and it looks OK, I agree it can be merged.
Tree-SHA512: 1cd6e449bba62041f6fde1463c490488b8d60dd86714818f27e92725008af850d3ce3fbde0c302406044cc73094cccc9e9bf4179256e9783627b18c5e66f8b49
|
|
The time machines should be updated in lockstep.
|
|
formatDurationStr() helper
6f2593dc23565abaa3d176595cba6e07883f512e gui, refactor: use std::chrono for formatDurationStr() helper (Jon Atack)
Pull request description:
Updates `formatDurationStr()` to use the `chrono` standard lib. No change in behavior.
ACKs for top commit:
RandyMcMillan:
tACK 6f2593dc23565abaa3d176595cba6e07883f512e
shaavan:
ACK 6f2593dc23565abaa3d176595cba6e07883f512e
w0xlt:
tACK 6f2593d on Ubuntu 21.10 Qt 5.15.2
promag:
Code review ACK 6f2593dc23565abaa3d176595cba6e07883f512e.
Tree-SHA512: 61e9afdb1db779150df338e6af08727c34f69639add465c2f7003ff775d97dce3e78e78d325bc6dea5bc13f0fce9ef1c3506d13f1661a5e083e52bba8a32ba44
|
|
fa7dada1fc7e389296e2a543a6a67eb07fa3659b build: update ax_cxx_compile_stdcxx to serial 14 (MarcoFalke)
Pull request description:
No strong reason for the bump, but this makes it easier to experiment with cpp20, see https://github.com/bitcoin/bitcoin/pull/24169#issuecomment-1048702236
ACKs for top commit:
Empact:
Code Review ACK https://github.com/bitcoin/bitcoin/pull/24460/commits/fa7dada1fc7e389296e2a543a6a67eb07fa3659b
fanquake:
ACK fa7dada1fc7e389296e2a543a6a67eb07fa3659b
Tree-SHA512: bd3e884bae5319d434520a2947608913c3884de89aa563aa46ef17ba4e5b41ba209bd4780c8eaf81648297b2dc9534803be88d1b214ad05a93ee5992bee887c0
|
|
multisig inside tr
4828d53eccd52a67631c64cef0ba7df90dff138d Add (sorted)multi_a descriptors to doc/descriptors.md (Pieter Wuille)
b5f33ac1f82aea290b4653af36ac2ad1bf1cce7b Simplify wallet_taproot.py functional test (Pieter Wuille)
eb0667ea96d52db9135514a5e95ab943f6abd8a6 Add tests for (sorted)multi_a derivation/signing (Pieter Wuille)
c17c6aa08df81aa0086d80b50187c8cd60ecc222 Add signing support for (sorted)multi_a scripts (Pieter Wuille)
3eed6fca57d1fa7544f372e6e7de0a9ae1b5715a Add multi_a descriptor inference (Pieter Wuille)
79728c4a3d8a74f276daf1e72abbdecdab85a5d8 Add (sorted)multi_a descriptor and script derivation (Pieter Wuille)
25e95f9ff89a97b87ce218f28274c3c821b2d54d Merge/generalize IsValidMultisigKeyCount/GetMultisigKeyCount (Pieter Wuille)
Pull request description:
This adds a new `multi_a(k,key_1,key_2,...,key_n)` (and corresponding `sortedmulti_a`) descriptor for k-of-n policies inside `tr()`. Semantically it is very similar to the existing `multi()` descriptor, but with the following changes:
* The corresponding script is `<key1> OP_CHECKSIG <key2> OP_CHECKSIGADD <key3> OP_CHECKSIGADD ... <key_n> OP_CHECKSIGADD <k> OP_NUMEQUAL`, rather than the traditional `OP_CHECKMULTISIG`-based script, making it usable inside the `tr()` descriptor.
* The keys can optionally be specified in x-only notation.
* Both the number of keys and the threshold can be as high as 999; this is the limit due to the consensus stacksize=1000 limit
I expect that this functionality will later be replaced with a miniscript-based implementation, but I don't think it's necessary to wait for that.
Limitations:
* The wallet code will for not estimate witness size incorrectly for script path spends, which may result in a (dramatic) fee underpayment with large multi_a scripts.
* The multi_a script construction is (slightly) suboptimal for n-of-n (where a `<key1> OP_CHECKSIGVERIFY ... <key_n-1> OP_CHECKSIGVERIFY <key_n> OP_CHECKSIG` would be better). Such a construction is not included here.
ACKs for top commit:
achow101:
ACK 4828d53eccd52a67631c64cef0ba7df90dff138d
gruve-p:
ACK https://github.com/bitcoin/bitcoin/pull/24043/commits/4828d53eccd52a67631c64cef0ba7df90dff138d
sanket1729:
code review ACK 4828d53eccd52a67631c64cef0ba7df90dff138d
darosior:
Code review ACK 4828d53eccd52a67631c64cef0ba7df90dff138d
Tree-SHA512: 5dcd434b79585f0ff830f7d501d27df5e346f5749f47a3109ec309ebf2cbbad0e1da541eec654026d911ab67fd7cf7793fab0f765628d68d81b96ef2a4d234ce
|
|
bbbbeaf9c87030eb6b033b6a22002ca8d6635d51 fuzz: Limit script_format to 100kB (MarcoFalke)
Pull request description:
The target is still one of the slowest ones, but doesn't seem incredibly important. Especially for sizes larger than the standard tx size.
Fix that by limiting the script size.
ACKs for top commit:
fanquake:
ACK bbbbeaf9c87030eb6b033b6a22002ca8d6635d51
Tree-SHA512: b6cf7248753909ef2f21d8824f187e7c05732dd3b99619c0067f862f3c2b0f9a87779d4ddbbd3a7a4bae5c794280e2f0a223bf835d6bc6ccaba01817d69479a2
|
|
2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0 ci: Build bitcoin-chainstate (Carl Dong)
095aa6ca37bf0bd5c5e221bab779978a99b2a34c build: Add example bitcoin-chainstate executable (Carl Dong)
Pull request description:
Part of: #24303
This PR introduces an example/demo `bitcoin-chainstate` executable using said library which can print out information about a datadir and take in new blocks on stdin.
Please read the commit messages for more details.
-----
#### You may ask: WTF?! Why is `index/*.cpp`, etc. being linked in?
This PR is meant only to capture the state of dependencies in our consensus engine as of right now. There are many things to decouple from consensus, which will be done in subsequent PRs. Listing the files out right now in `bitcoin_chainstate_SOURCES` is purely to give us a clear picture of the task at hand, it is **not** to say that these dependencies _belongs_ there in any way.
### TODO
1. Clean up `bitcoin-chainstate.cpp`
It is quite ugly, with a lot of comments I've left for myself, I should clean it up to the best of my abilities (the ugliness of our init/shutdown might be the upper bound on cleanliness here...)
ACKs for top commit:
ajtowns:
ACK 2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0
ryanofsky:
Code review ACK 2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0. Just rebase, comments, formatting change since last review
MarcoFalke:
re-ACK 2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0 🏔
Tree-SHA512: 86e7fb5718caa577df8abc8288c754f4a590650d974df9d2f6476c87ed25c70f923c4db651c6963f33498fc7a3a31f6692b9a75cbc996bf4888c5dac2f34a13b
|
|
23.x was forked off, release notes on master should be empty.
Tree-SHA512: 0b48006073302b7b1c7602b4843d3a3048e88f357fb7049e478ec946f12eb16ca813272e719e47de5fb9713984ccf59551372a7ccd7ced7afaac6b5f5687d78b
|
|
On the master branch, bump to 23.99 (pre-24.0).
Tree-SHA512: 1e3b0cee8a2b5080170b59a4c445a3c1b69b99152e8eec7eba7080ab447cc6f9c6bd8f69df2b18ee9416de44a6ed88009a200ad26e89275f6230339330d12314
|
|
and harmonize them as follows
- s/outgoing/automatic outbound/
- s/Incoming/Inbound and manual/ (are not affected by this option.)
- s/only through network/only to network/
- s/this option. This option/this option. It/
- s/network types/networks/
and also pick up a few nits in doc/p2p-bad-ports.md
|
|
7d64ea4a01920bb55bc6de0de6766712ec792a11 net: only assume all local addresses if listening on any (Vasil Dimov)
0cfc0cd32239d3c08d2121e028b297022450b320 net: fix GetListenPort() to derive the proper port (Vasil Dimov)
f98cdcb3574ee661223e1a09e1762b2cc85fab2f net: pass Span by value to CaptureMessage() (Vasil Dimov)
3cb9d9c861710c0cff018bee90b1969193d3ed68 net: make CaptureMessage() mockable (Vasil Dimov)
43868ba416727effd515a471e2a337c3b8cacc37 timedata: rename variables to match the coding style (Vasil Dimov)
60da1eaa1113e7318e273144e7ef9c8895d7ed54 timedata: make it possible to reset the state (Vasil Dimov)
Pull request description:
`GetListenPort()` uses a simple logic: "if `-port=P` is given, then we
must be listening on `P`, otherwise we must be listening on `8333`".
This is however not true if `-bind=` has been provided with `:port` part
or if `-whitebind=` has been provided. Thus, extend `GetListenPort()` to
return the port from `-bind=` or `-whitebind=`, if any.
Also, if `-bind=` is provided then we would bind only to a particular address
and should not add all the other addresses of the machine to the list of
local addresses.
Fixes https://github.com/bitcoin/bitcoin/issues/20184
ACKs for top commit:
sipa:
utACK 7d64ea4a01920bb55bc6de0de6766712ec792a11. I didn't review the tests in detail.
jonatack:
re-ACK 7d64ea4a01920bb55bc6de0de6766712ec792a11 per `git range-diff 08bcfa27 35ec977 7d64ea4`, changes are rebase-only, light re-review, re-ran the new tests locally
Tree-SHA512: 45135ab9c0ec3cc8c83e3b3e58a1c1f77eaeaba00618d54f1010db1d23d6db7d9c0dc7807e72ebc34e8b2d0e91f1e0d0e9239d13b90f1bdce8be84459e7837f0
|
|
If `-bind=` is provided then we would bind only to a particular address
and should not add all the other addresses of the machine to the list of
local addresses.
Fixes https://github.com/bitcoin/bitcoin/issues/20184 (case 4.)
|
|
`GetListenPort()` uses a simple logic: "if `-port=P` is given, then we
must be listening on `P`, otherwise we must be listening on `8333`".
This is however not true if `-bind=` has been provided with `:port` part
or if `-whitebind=` has been provided. Thus, extend `GetListenPort()` to
return the port from `-bind=` or `-whitebind=`, if any.
Fixes https://github.com/bitcoin/bitcoin/issues/20184 (cases 1. 2. 3. 5.)
|
|
Span is lightweight and need not be passed by const reference.
|
|
Rename `CaptureMessage()` to `CaptureMessageToFile()` and introduce a
`std::function` variable called `CaptureMessage` whose value can be
changed by unit tests, should they need to inspect message contents.
|
|
Rename the local variables in `src/timedata.cpp`:
`setKnown` -> `g_sources`
`vTimeOffsets` -> `g_time_offsets`
`fDone` -> `g_warning_emitted`
|
|
Add a new function `TestOnlyResetTimeData()` which would reset the
internal state used by `GetTimeOffset()`, `GetAdjustedTime()` and
`AddTimeData()`.
This is needed so that unit tests that call `AddTimeData()` can restore
the state in order not to confuse other tests that rely on it.
Currently `timedata_tests/addtimedata` is the only test that modifies
the state (via `AddTimeData()`) and also the only test that relies on
that state.
|
|
|