Skip to content

Sync with the main repo #72

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 150 commits into from
Oct 28, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
ef72e9b
doc: nChainTx needs to become a 64-bit earlier due to SegWit
Sjors Oct 21, 2019
1f20501
test: add functional test for multisig flow with descriptor wallets a…
mjdietzx May 26, 2021
17dd657
doc: M-of-N multisig using descriptor wallets and PSBTs, as well as a…
mjdietzx May 26, 2021
e05cd05
doc: add another signing flow for multisig with descriptor wallets an…
mjdietzx May 26, 2021
d047ed7
external_signer: improve fingerprint matching logic (stop on first ma…
theStack Aug 24, 2021
f9479e4
test, doc: basic M-of-N multisig minor cleanup and clarifications
mjdietzx Sep 3, 2021
9de0d94
doc: add disclaimer highlighting shortcomings of the basic multisig e…
mjdietzx Sep 3, 2021
d5f985e
multiprocess: Add new bitcoin-gui, bitcoin-qt, bitcoin-wallet init im…
ryanofsky Dec 5, 2017
f19ad40
rpc, wallet: Descriptor wallets are no longer experimental
achow101 Sep 16, 2021
9c1052a
wallet: Default new wallets to descriptor wallets
achow101 Sep 16, 2021
fa2662c
net: Avoid logging AlreadyHaveTx when disconnecting misbehaving peer
Sep 20, 2021
b1488c4
test: fix reference to block processing test in p2p_segwit.py
theStack Aug 15, 2021
4eb532f
test: check for block reject reasons in p2p_segwit.py [1/2]
theStack Aug 15, 2021
45827fd
test: check for block reject reasons in p2p_segwit.py [2/2]
theStack Aug 15, 2021
d95913f
rpc: fix "trusted" description in TransactionDescriptionString
jonatack Sep 29, 2021
296cfa3
test: add listtransactions/listsinceblock "trusted" coverage
jonatack Sep 29, 2021
66f6efc
rpc: improve TransactionDescriptionString() "generated" help
jonatack Sep 29, 2021
cb14071
[refactor/bench] make mempool_stress bench reusable and parameterizable
glozow Sep 30, 2021
30e240f
[bench] Benchmark CTxMemPool::check()
glozow Sep 30, 2021
54c6f3c
[mempool] speed up check() by using coins cache and iterating in topo…
glozow Sep 30, 2021
e8639ec
[mempool] remove now-unnecessary code
glozow Sep 29, 2021
09d1891
MOVEONLY: remove single-use helper func CheckInputsAndUpdateCoins
glozow Sep 29, 2021
9e8d7ad
[validation/mempool] use Spend/AddCoin instead of UpdateCoins
glozow Oct 4, 2021
ed6115f
[mempool] simplify some check() logic
glozow Oct 4, 2021
082c5bf
[refactor] pass coinsview and height to check()
glozow Sep 29, 2021
3cc9534
rpc: Replace boolean argument for tx details with enum class.
fyquah Mar 1, 2021
51dbc16
rpc: Add level 3 verbosity to getblock RPC call.
fyquah Feb 27, 2021
4330af6
rpc: Add test for level 3 verbosity getblock rpc call.
fyquah Feb 27, 2021
459104b
rest: Add test for prevout fields in getblock
fyquah Feb 27, 2021
8edf620
release-notes: Add release note about getblock verbosity level 3.
fyquah Jul 16, 2021
5c34507
core_write: Rename calculate_fee to have_undo for clarity
fyquah Aug 3, 2021
fac303c
refactor: Remove unused MakeUCharSpan
Sep 29, 2021
fa1e5de
scripted-diff: Move bloom to src/common
Sep 29, 2021
fa2d611
style: Sort
Sep 29, 2021
632aad9
Make CAddrman::Select_ select buckets, not positions, first
sipa Sep 29, 2021
35e814c
qt: never disable HD status icon
stratospher Oct 5, 2021
faac1cd
test: Use generate* from TestFramework, not TestNode
Oct 6, 2021
fac7f61
test: Use generate* node RPC, not wallet RPC
Oct 6, 2021
fac62e6
test: Delete generate* calls from TestNode
Jul 27, 2021
fadf118
p2p: Use mocktime for ping timeout
Oct 7, 2021
9b49ed6
Squashed 'src/univalue/' changes from 98fadc0909..a44caf65fe
fanquake Oct 11, 2021
3043193
Update univalue subtree to latest upstream
fanquake Oct 11, 2021
0f95247
Integrate univalue into our buildsystem
theuni Jul 15, 2021
a0efe52
Fix outdated comments referring to ::ChainActive()
meshcollider Oct 12, 2021
b7884dd
test: bip125-replaceable in listsinceblock
brunoerg Oct 11, 2021
58765a4
qt: Use only Qt translation primitives in GUI code
laanwj Oct 13, 2021
4ac8c89
test: check that bumpfee RPC fails for txs with descendants in mempool
theStack Oct 15, 2021
17ae260
build: remove build stubs for external leveldb
theuni Oct 14, 2021
a5595b1
tests: Remove global vCoins and testWallet from coinselector_tests
achow101 Oct 12, 2021
5e54aa9
bench: remove global testWallet from CoinSelection benchmark
achow101 Oct 13, 2021
9bf0243
bench: Use DescriptorScriptPubKeyMan for wallet things
achow101 Oct 12, 2021
811319f
tests, gui: Use DescriptorScriptPubKeyMan in GUI tests
achow101 Oct 12, 2021
4b1588c
tests: Use DescriptorScriptPubKeyMan in coinselector_tests
achow101 Oct 13, 2021
dcd6eeb
tests: Use descriptors in psbt_wallet_tests
achow101 Oct 13, 2021
9951628
tests: Use legacy change type in subtract fee from outputs test
achow101 Oct 13, 2021
2d2edc1
tests: Use Descriptor wallets for generic wallet tests
achow101 Oct 13, 2021
1946af2
Add comment to COIN constant.
kennanmell Oct 16, 2021
130ee48
test: get and decode tx with a single `gettransaction` RPC call
theStack Oct 15, 2021
2e82af4
Merge bitcoin/bitcoin#23207: test: Delete generate* calls from TestNode
Oct 18, 2021
acb9400
build: Drop non-existent share/pkgconfig directory
hebasto Aug 23, 2021
4a37c26
build: Remove unneeded share/doc directory from expat package
hebasto Aug 23, 2021
9067c6c
build: Remove empty var/cache/fontconfig directory from fontconfig
hebasto Aug 23, 2021
6c25c83
build: Remove unneeded share/man directory from freetype package
hebasto Aug 23, 2021
539ca40
build: Remove unneeded share/man directory from libXau package
hebasto Aug 23, 2021
53c9fa9
tracing: drop block_connected hash.toString() arg
0xB10C Oct 18, 2021
ff65b69
Merge bitcoin/bitcoin#22067: Test and document a basic M-of-N multisi…
laanwj Oct 18, 2021
ffdd94d
test: Fix wallet_multisig_descriptor_psbt.py
hebasto Oct 18, 2021
b65a25a
log: improve addrman logging
mzumsande Aug 29, 2021
927c2c4
Merge bitcoin/bitcoin#22783: build: Cleanup depends build system
fanquake Oct 19, 2021
4b24f6b
Merge bitcoin/bitcoin#23302: tracing: drop GetHash().ToString() argum…
fanquake Oct 19, 2021
077e98c
Merge bitcoin/bitcoin#23303: test: Fix wallet_multisig_descriptor_psb…
Oct 19, 2021
fa44b07
test: Remove unused node from mining_prioritisetransaction
Oct 19, 2021
faf13e2
Add missing gettimeofday to syscall sandbox
Oct 18, 2021
2d25161
Merge bitcoin/bitcoin#23307: test: Remove unused node from mining_pri…
fanquake Oct 19, 2021
986003a
Merge bitcoin/bitcoin#22918: rpc: Add level 3 verbosity to getblock R…
laanwj Oct 19, 2021
13ae568
ci: Bump vcpkg release tag
hebasto Oct 19, 2021
23a7d56
Merge bitcoin-core/gui#447: Never disable HD status icon
hebasto Oct 19, 2021
1d13c44
tests: Use descriptors for feature_segwit multisig setup
achow101 Oct 19, 2021
ae6cbcc
tests: restrict feature_segwit legacy wallet import tests
achow101 Oct 19, 2021
e9ade03
tests: Add feature_segwit.py --descriptors to test_runner.py
achow101 Oct 19, 2021
16df28c
Merge bitcoin/bitcoin#23310: ci: Bump vcpkg release tag
fanquake Oct 20, 2021
a7f28af
Merge bitcoin/bitcoin#22646: build: tighter Univalue integration, rem…
fanquake Oct 20, 2021
7b3c9e4
Make explicit the node param in init_wallet()
lsilva01 Oct 20, 2021
a78137e
build: fix python detection post #23182
fanquake Oct 20, 2021
0ccf9b2
Merge bitcoin/bitcoin#23258: doc: Fix outdated comments referring to …
fanquake Oct 20, 2021
be7f413
Fix K1/K2 use in the comments in ChaCha20-Poly1305 AEAD
stratospher Oct 13, 2021
f9ad4d5
Merge bitcoin/bitcoin#23317: build: fix python detection post #23182
Oct 20, 2021
d752454
build: explicitly disable libsecp256k1 openssl based tests
fanquake Oct 20, 2021
c8e68b4
Merge bitcoin/bitcoin#13875: [doc] nChainTx needs to become a 64-bit …
laanwj Oct 20, 2021
96f469f
netinfo: print peer counts for all reachable networks
jonatack Oct 20, 2021
d807ace
Merge bitcoin/bitcoin#23314: build: explicitly disable libsecp256k1 o…
laanwj Oct 20, 2021
1435161
Merge bitcoin/bitcoin#23316: test: make the node param explicit in in…
Oct 20, 2021
c8bae2b
Merge bitcoin/bitcoin#23299: util: Add missing gettimeofday to syscal…
Oct 20, 2021
fa38d98
doc: Add note on deleting past-EOL release branches
Oct 20, 2021
da791c7
wallet: Use PACKAGE_NAME to mention our software
hebasto Oct 19, 2021
fa44406
ci: Disable syscall sandbox in valgrind functional tests
Oct 20, 2021
b00646b
ci, refactor: Rename VCPKG_TAG variable and vcpkg_cache script
hebasto Oct 20, 2021
e8692cf
ci: Improve vcpkg binary cache settings
hebasto Oct 20, 2021
ea4b61a
refactor: remove references to deprecated values under std::allocator
PastaPastaPasta Oct 5, 2021
69986de
Merge bitcoin/bitcoin#22839: log: improve addrman logging
fanquake Oct 21, 2021
4229f71
Merge bitcoin/bitcoin#23282: build: remove build stubs for external l…
fanquake Oct 21, 2021
c53e95f
Merge bitcoin/bitcoin#23137: Move-only: bloom to src/common
fanquake Oct 21, 2021
3e3f53c
Merge bitcoin/bitcoin#23328: ci: Disable syscall sandbox in valgrind …
Oct 21, 2021
9aa4ddb
Merge bitcoin/bitcoin#23287: test: get and decode tx with a single `g…
Oct 21, 2021
548ad5e
Merge bitcoin/bitcoin#23281: test: check that bumpfee RPC fails for t…
Oct 21, 2021
88fc795
Merge bitcoin/bitcoin#23267: test: bip125-replaceable in listsinceblock
Oct 21, 2021
fa6c62f
test: Replace log with assert_equal in wallet_abandonconflict
Oct 21, 2021
6911ab9
wallet: fix segfault by avoiding invalid default-ctored `external_spk…
theStack Oct 21, 2021
d50fbd4
create explicit GenTxid::{Txid, Wtxid} ctors
glozow Oct 21, 2021
4307849
[mempool] delete exists(uint256) function
glozow Oct 20, 2021
ee1294f
Merge bitcoin/bitcoin#23324: Print peer counts for all reachable netw…
laanwj Oct 21, 2021
f41aa81
Merge bitcoin/bitcoin#23271: crypto: Fix K1/K2 use in the comments in…
laanwj Oct 21, 2021
8a083bc
Merge bitcoin/bitcoin#23218: p2p: Use mocktime for ping timeout
laanwj Oct 21, 2021
179ce09
Merge bitcoin/bitcoin#23293: doc: Add comment to COIN constant.
laanwj Oct 21, 2021
12ff899
Merge bitcoin/bitcoin#23331: test: Replace log with assert_equal in w…
Oct 21, 2021
fa8fef6
doc: Fix CWalletTx::Confirmation doc
Sep 21, 2021
077a875
refactor: include a missing <limits> header in fs.cpp
joankaradimov Oct 21, 2021
81cdbec
Merge bitcoin/bitcoin#23329: ci: Define cases when invalidate vcpkg b…
fanquake Oct 22, 2021
9469ffc
Merge bitcoin/bitcoin#23323: doc: Add note on deleting past-EOL relea…
Oct 22, 2021
4833d1f
Merge bitcoin/bitcoin#23335: refactor: include a missing <limits> hea…
Oct 22, 2021
c001da3
Merge bitcoin/bitcoin#23325: mempool: delete exists(uint256) function
Oct 22, 2021
faeb9a5
remove unused CTxMemPool::info(const uint256& txid)
Oct 22, 2021
fa4ec1c
Make GenTxid boolean constructor private
Oct 22, 2021
788909f
Merge bitcoin/bitcoin#23042: net: Avoid logging AlreadyHaveTx when di…
fanquake Oct 22, 2021
02feae5
Merge bitcoin/bitcoin#23002: Make descriptor wallets by default
Oct 22, 2021
f778845
ci: Add vcpkg tools cache
hebasto Oct 22, 2021
58275db
Merge bitcoin/bitcoin#23140: Make CAddrman::Select_ select buckets, n…
laanwj Oct 22, 2021
5bb03fb
Merge bitcoin/bitcoin#23333: wallet: fix segfault by avoiding invalid…
fanquake Oct 22, 2021
12eda27
Merge bitcoin/bitcoin#23288: tests: remove usage of LegacyScriptPubKe…
laanwj Oct 22, 2021
a685da5
Merge bitcoin/bitcoin#23181: refactor: remove references to deprecate…
laanwj Oct 22, 2021
91c7d66
Merge bitcoin/bitcoin#22789: external_signer: improve fingerprint mat…
laanwj Oct 22, 2021
a1d55ce
Merge bitcoin/bitcoin#23139: rpc: fix "trusted" field in TransactionD…
laanwj Oct 22, 2021
224e90d
Merge bitcoin/bitcoin#23336: refactor: Make GenTxid boolean construct…
Oct 22, 2021
92617b7
Make AddrMan support multiple ports per IP
sipa Oct 5, 2021
bdbefdc
Merge bitcoin-core/gui#454: Use only Qt translation primitives in GUI…
hebasto Oct 22, 2021
a78c229
tests: Place into mapWallet in coinselector_tests
achow101 Oct 22, 2021
a52f1d1
walletdb: Use SQLiteDatabase for mock wallet databases
achow101 Oct 22, 2021
04437ee
Merge bitcoin/bitcoin#23215: ci: Add vcpkg tools cache
fanquake Oct 23, 2021
b9cf505
Merge bitcoin/bitcoin#23338: tests: speed up coinselector_tests
Oct 25, 2021
49e40f5
Merge bitcoin/bitcoin#22711: test: check for specific block reject re…
Oct 25, 2021
1847ce2
Merge bitcoin/bitcoin#23157: txmempool -/-> validation 1/2: improve p…
Oct 25, 2021
beb45b8
Merge bitcoin/bitcoin#23311: wallet: Use PACKAGE_NAME to mention our …
Oct 25, 2021
d565d9b
Merge bitcoin/bitcoin#23312: tests: reduce feature_segwit.py usage of…
Oct 25, 2021
22a9018
Merge bitcoin/bitcoin#23306: Make AddrMan support multiple ports per IP
Oct 25, 2021
af4275e
Merge bitcoin/bitcoin#23332: doc: Fix CWalletTx::Confirmation doc
Oct 26, 2021
4718897
test: add script_util helper for creating bare multisig scripts
theStack Oct 18, 2021
e77d967
Merge bitcoin/bitcoin#23006: multiprocess: Add new bitcoin-gui, bitco…
Oct 26, 2021
ab25ef8
Merge bitcoin/bitcoin#23305: test: refactor: add `script_util` helper…
Oct 27, 2021
9dda9c0
Merge commit 'ab25ef8c7f767258d5fe44f53b35ad8bd51ed5cd'
jarolrod Oct 27, 2021
749470f
multiprocess: add new bitcoin-qt init implementation to qml-gui
jarolrod Oct 27, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,9 @@ task:
env:
PATH: 'C:\jom;C:\Python39;C:\Python39\Scripts;C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin;%PATH%'
PYTHONUTF8: 1
VCPKG_TAG: '75522bb1f2e7d863078bcd06322348f053a9e33f'
VCPKG_FEATURE_FLAGS: 'manifests'
CI_VCPKG_TAG: '2021.05.12'
VCPKG_DOWNLOADS: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\downloads'
VCPKG_DEFAULT_BINARY_CACHE: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\archives'
QT_DOWNLOAD_URL: 'https://download.qt.io/official_releases/qt/5.12/5.12.11/single/qt-everywhere-src-5.12.11.zip'
QT_LOCAL_PATH: 'C:\qt-everywhere-src-5.12.11.zip'
QT_SOURCE_DIR: 'C:\qt-everywhere-src-5.12.11'
Expand Down Expand Up @@ -121,8 +122,20 @@ task:
- ..\configure -release -silent -opensource -confirm-license -opengl desktop -no-shared -static -static-runtime -mp -qt-zlib -qt-pcre -qt-libpng -no-libjpeg -nomake examples -nomake tests -nomake tools -no-dbus -no-libudev -no-icu -no-gtk -no-opengles3 -no-angle -no-sql-sqlite -no-sql-odbc -no-sqlite -no-libudev -no-vulkan -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtx11extras -skip qtxmlpatterns -no-openssl -no-feature-sql -no-feature-sqlmodel -prefix %QTBASEDIR%
- jom
- jom install
vcpkg_cache:
folder: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\archives'
vcpkg_tools_cache:
folder: '%VCPKG_DOWNLOADS%\tools'
reupload_on_changes: false
fingerprint_script:
- echo %CI_VCPKG_TAG%
- msbuild -version
vcpkg_binary_cache:
folder: '%VCPKG_DEFAULT_BINARY_CACHE%'
reupload_on_changes: true
fingerprint_script:
- echo %CI_VCPKG_TAG%
- msbuild -version
populate_script:
- mkdir %VCPKG_DEFAULT_BINARY_CACHE%
install_python_script:
- choco install --yes --no-progress python3 --version=3.9.6
- pip install zmq
Expand All @@ -131,7 +144,7 @@ task:
- cd ..
- git clone --quiet https://github.com/microsoft/vcpkg.git
- cd vcpkg
- git -c advice.detachedHead=false checkout %VCPKG_TAG%
- git -c advice.detachedHead=false checkout %CI_VCPKG_TAG%
- .\bootstrap-vcpkg -disableMetrics
- echo set(VCPKG_BUILD_TYPE release) >> triplets\x64-windows-static.cmake
- .\vcpkg integrate install
Expand Down
2 changes: 1 addition & 1 deletion build_msvc/bitcoin-qt/bitcoin-qt.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</PropertyGroup>
<ItemGroup>
<ClCompile Include="..\..\src\qt\main.cpp" />
<ClCompile Include="..\..\src\init\bitcoind.cpp" />
<ClCompile Include="..\..\src\init\bitcoin-qt.cpp" />
<ResourceCompile Include="..\..\src\qt\res\bitcoin-qt-res.rc" />
</ItemGroup>
<ItemGroup>
Expand Down
3 changes: 3 additions & 0 deletions build_msvc/bitcoin-wallet/bitcoin-wallet.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
</PropertyGroup>
<ItemGroup>
<ClCompile Include="..\..\src\bitcoin-wallet.cpp" />
<ClCompile Include="..\..\src\init\bitcoin-wallet.cpp">
<ObjectFileName>$(IntDir)init_bitcoin-wallet.obj</ObjectFileName>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\libbitcoinconsensus\libbitcoinconsensus.vcxproj">
Expand Down
2 changes: 1 addition & 1 deletion build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemGroup>
<ClCompile Include="..\..\src\init\bitcoind.cpp" />
<ClCompile Include="..\..\src\init\bitcoin-qt.cpp" />
<ClCompile Include="..\..\src\test\util\setup_common.cpp" />
<ClCompile Include="..\..\src\qt\test\addressbooktests.cpp" />
<ClCompile Include="..\..\src\qt\test\apptests.cpp" />
Expand Down
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_native_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ export CONTAINER_NAME=ci_native_valgrind
export PACKAGES="valgrind clang llvm python3-zmq libevent-dev bsdmainutils libboost-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libsqlite3-dev"
export USE_VALGRIND=1
export NO_DEPENDS=1
export TEST_RUNNER_EXTRA="--exclude rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export TEST_RUNNER_EXTRA="--nosandbox --exclude rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export GOAL="install"
export BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --with-gui=no CC=clang CXX=clang++" # TODO enable GUI
2 changes: 0 additions & 2 deletions ci/test/06_script_b.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,12 @@ export LC_ALL=C.UTF-8
if [[ $HOST = *-mingw32 ]]; then
# Generate all binaries, so that they can be wrapped
DOCKER_EXEC make $MAKEJOBS -C src/secp256k1 VERBOSE=1
DOCKER_EXEC make $MAKEJOBS -C src/univalue VERBOSE=1
DOCKER_EXEC "${BASE_ROOT_DIR}/ci/test/wrap-wine.sh"
fi

if [ -n "$QEMU_USER_CMD" ]; then
# Generate all binaries, so that they can be wrapped
DOCKER_EXEC make $MAKEJOBS -C src/secp256k1 VERBOSE=1
DOCKER_EXEC make $MAKEJOBS -C src/univalue VERBOSE=1
DOCKER_EXEC "${BASE_ROOT_DIR}/ci/test/wrap-qemu.sh"
fi

Expand Down
50 changes: 2 additions & 48 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ AC_PATH_TOOL(GCOV, gcov)
AC_PATH_TOOL(LLVM_COV, llvm-cov)
AC_PATH_PROG(LCOV, lcov)
dnl Python 3.6 is specified in .python-version and should be used if available, see doc/dependencies.md
AC_PATH_PROGS([PYTHON], [python3.6 python3.7 python3.8 python3.9, python3.10, python3 python])
AC_PATH_PROGS([PYTHON], [python3.6 python3.7 python3.8 python3.9 python3.10 python3.11 python3 python])
AC_PATH_PROG(GENHTML, genhtml)
AC_PATH_PROG([GIT], [git])
AC_PATH_PROG(CCACHE,ccache)
Expand Down Expand Up @@ -261,12 +261,6 @@ if test "x$use_asm" = xyes; then
AC_DEFINE(USE_ASM, 1, [Define this symbol to build in assembly routines])
fi

AC_ARG_WITH([system-univalue],
[AS_HELP_STRING([--with-system-univalue],
[Build with system UniValue (default is no)])],
[system_univalue=$withval],
[system_univalue=no]
)
AC_ARG_ENABLE([zmq],
[AS_HELP_STRING([--disable-zmq],
[disable ZMQ notifications])],
Expand Down Expand Up @@ -1225,14 +1219,6 @@ if test "x$have_any_system" != "xno"; then
AC_DEFINE(HAVE_SYSTEM, 1, Define to 1 if std::system or ::wsystem is available.)
fi

LEVELDB_CPPFLAGS=
LIBLEVELDB=
LIBMEMENV=
AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
AC_SUBST(LEVELDB_CPPFLAGS)
AC_SUBST(LIBLEVELDB)
AC_SUBST(LIBMEMENV)

dnl SUPPRESSED_CPPFLAGS=SUPPRESS_WARNINGS([$SOME_CPPFLAGS])
dnl Replace -I with -isystem in $SOME_CPPFLAGS to suppress warnings from
dnl headers from its include directories and return the result.
Expand Down Expand Up @@ -1522,34 +1508,6 @@ if test "x$use_zmq" = xyes; then
esac
fi

dnl univalue check

need_bundled_univalue=yes
if test x$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoin_util$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench = xnononononononono; then
need_bundled_univalue=no
else
if test x$system_univalue != xno; then
PKG_CHECK_MODULES([UNIVALUE], [libunivalue >= 1.0.4], [found_univalue=yes], [found_univalue=no])
if test x$found_univalue = xyes; then
system_univalue=yes
need_bundled_univalue=no
elif test x$system_univalue = xyes; then
AC_MSG_ERROR([univalue not found])
else
system_univalue=no
fi
fi

if test x$need_bundled_univalue = xyes; then
UNIVALUE_CFLAGS='-I$(srcdir)/univalue/include'
UNIVALUE_LIBS='univalue/libunivalue.la'
fi
fi

AM_CONDITIONAL([EMBEDDED_UNIVALUE],[test x$need_bundled_univalue = xyes])
AC_SUBST(UNIVALUE_CFLAGS)
AC_SUBST(UNIVALUE_LIBS)

dnl libmultiprocess library check

libmultiprocess_found=no
Expand Down Expand Up @@ -1916,11 +1874,7 @@ PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
unset PKG_CONFIG_LIBDIR
PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"

if test x$need_bundled_univalue = xyes; then
AC_CONFIG_SUBDIRS([src/univalue])
fi

ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --enable-module-schnorrsig --enable-experimental"
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --enable-module-schnorrsig --enable-experimental --disable-openssl-tests"
AC_CONFIG_SUBDIRS([src/secp256k1])

AC_OUTPUT
Expand Down
2 changes: 1 addition & 1 deletion contrib/guix/libexec/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ mkdir -p "$DISTSRC"
${HOST_CXXFLAGS:+CXXFLAGS="${HOST_CXXFLAGS}"} \
${HOST_LDFLAGS:+LDFLAGS="${HOST_LDFLAGS}"}

sed -i.old 's/-lstdc++ //g' config.status libtool src/univalue/config.status src/univalue/libtool
sed -i.old 's/-lstdc++ //g' config.status libtool

# Build Bitcoin Core
make --jobs="$JOBS" ${V:+V=1}
Expand Down
7 changes: 1 addition & 6 deletions contrib/tracing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,17 +176,12 @@ third acts as a duration threshold in milliseconds. When the `ConnectBlock()`
function takes longer than the threshold, information about the block, is
printed. For more details, see the header comment in the script.

By default, `bpftrace` limits strings to 64 bytes due to the limited stack size
in the kernel VM. Block hashes as zero-terminated hex strings are 65 bytes which
exceed the string limit. The string size limit can be set to 65 bytes with the
environment variable `BPFTRACE_STRLEN`.

The following command can be used to benchmark, for example, `ConnectBlock()`
between height 20000 and 38000 on SigNet while logging all blocks that take
longer than 25ms to connect.

```
$ BPFTRACE_STRLEN=65 bpftrace contrib/tracing/connectblock_benchmark.bt 20000 38000 25
$ bpftrace contrib/tracing/connectblock_benchmark.bt 20000 38000 25
```

In a different terminal, starting Bitcoin Core in SigNet mode and with
Expand Down
22 changes: 14 additions & 8 deletions contrib/tracing/connectblock_benchmark.bt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@

USAGE:

BPFTRACE_STRLEN=65 bpftrace contrib/tracing/connectblock_benchmark.bt <start height> <end height> <logging threshold in ms>
bpftrace contrib/tracing/connectblock_benchmark.bt <start height> <end height> <logging threshold in ms>

- The environment variable BPFTRACE_STRLEN needs to be set to 65 chars as
strings are limited to 64 chars by default. Hex strings with Bitcoin block
hashes are 64 hex chars + 1 null-termination char.
- <start height> sets the height at which the benchmark should start. Setting
the start height to 0 starts the benchmark immediately, even before the
first block is connected.
Expand All @@ -23,15 +20,15 @@

EXAMPLES:

BPFTRACE_STRLEN=65 bpftrace contrib/tracing/connectblock_benchmark.bt 300000 680000 1000
bpftrace contrib/tracing/connectblock_benchmark.bt 300000 680000 1000

When run together 'bitcoind -reindex', this benchmarks the time it takes to
connect the blocks between height 300.000 and 680.000 (inclusive) and prints
details about all blocks that take longer than 1000ms to connect. Prints a
histogram with block connection times when the benchmark is finished.


BPFTRACE_STRLEN=65 bpftrace contrib/tracing/connectblock_benchmark.bt 0 0 500
bpftrace contrib/tracing/connectblock_benchmark.bt 0 0 500

When running together 'bitcoind', all newly connected blocks that
take longer than 500ms to connect are logged. A histogram with block
Expand Down Expand Up @@ -107,14 +104,23 @@ usdt:./src/bitcoind:validation:block_connected /arg1 >= $1 && (arg1 <= $2 || $2
*/
usdt:./src/bitcoind:validation:block_connected / (uint64) arg5 / 1000> $3 /
{
$hash_str = str(arg0);
$hash = arg0;
$height = (int32) arg1;
$transactions = (uint64) arg2;
$inputs = (int32) arg3;
$sigops = (int64) arg4;
$duration = (int64) arg5;

printf("Block %d (%s) %4d tx %5d ins %5d sigops took %4d ms\n", $height, $hash_str, $transactions, $inputs, $sigops, (uint64) $duration / 1000);

printf("Block %d (", $height);
/* Prints each byte of the block hash as hex in big-endian (the block-explorer format) */
$p = $hash + 31;
unroll(32) {
$b = *(uint8*)$p;
printf("%02x", $b);
$p -= 1;
}
printf(") %4d tx %5d ins %5d sigops took %4d ms\n", $transactions, $inputs, $sigops, (uint64) $duration / 1000);
}


Expand Down
2 changes: 1 addition & 1 deletion depends/packages/expat.mk
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ define $(package)_stage_cmds
endef

define $(package)_postprocess_cmds
rm lib/*.la
rm -rf share lib/*.la
endef
2 changes: 1 addition & 1 deletion depends/packages/fontconfig.mk
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ define $(package)_stage_cmds
endef

define $(package)_postprocess_cmds
rm lib/*.la
rm -rf var lib/*.la
endef
2 changes: 1 addition & 1 deletion depends/packages/freetype.mk
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ define $(package)_stage_cmds
endef

define $(package)_postprocess_cmds
rm lib/*.la
rm -rf share/man lib/*.la
endef
2 changes: 1 addition & 1 deletion depends/packages/libXau.mk
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ define $(package)_stage_cmds
endef

define $(package)_postprocess_cmds
rm lib/*.la
rm -rf share lib/*.la
endef
1 change: 0 additions & 1 deletion depends/packages/qt.mk
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,6 @@ endef
define $(package)_config_cmds
export PKG_CONFIG_SYSROOT_DIR=/ && \
export PKG_CONFIG_LIBDIR=$(host_prefix)/lib/pkgconfig && \
export PKG_CONFIG_PATH=$(host_prefix)/share/pkgconfig && \
cd qtbase && \
./configure -top-level $($(package)_config_opts)
endef
Expand Down
41 changes: 41 additions & 0 deletions doc/descriptors.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,47 @@ Key order does not matter for `sortedmulti()`. `sortedmulti()` behaves in the sa
as `multi()` does but the keys are reordered in the resulting script such that they
are lexicographically ordered as described in BIP67.

#### Basic multisig example

For a good example of a basic M-of-N multisig between multiple participants using descriptor
wallets and PSBTs, as well as a signing flow, see [this functional test](/test/functional/wallet_multisig_descriptor_psbt.py).

Disclaimers: It is important to note that this example serves as a quick-start and is kept basic for readability. A downside of the approach
outlined here is that each participant must maintain (and backup) two separate wallets: a signer and the corresponding multisig.
It should also be noted that privacy best-practices are not "by default" here - participants should take care to only use the signer to sign
transactions related to the multisig. Lastly, it is not recommended to use anything other than a Bitcoin Core descriptor wallet to serve as your
signer(s). Other wallets, whether hardware or software, likely impose additional checks and safeguards to prevent users from signing transactions that
could lead to loss of funds, or are deemed security hazards. Conforming to various 3rd-party checks and verifications is not in the scope of this example.

The basic steps are:

1. Every participant generates an xpub. The most straightforward way is to create a new descriptor wallet which we will refer to as
the participant's signer wallet. Avoid reusing this wallet for any purpose other than signing transactions from the
corresponding multisig we are about to create. Hint: extract the wallet's xpubs using `listdescriptors` and pick the one from the
`pkh` descriptor since it's least likely to be accidentally reused (legacy addresses)
2. Create a watch-only descriptor wallet (blank, private keys disabled). Now the multisig is created by importing the two descriptors:
`wsh(sortedmulti(<M>,XPUB1/0/*,XPUB2/0/*,…,XPUBN/0/*))` and `wsh(sortedmulti(<M>,XPUB1/1/*,XPUB2/1/*,…,XPUBN/1/*))`
(one descriptor w/ `0` for receiving addresses and another w/ `1` for change). Every participant does this
3. A receiving address is generated for the multisig. As a check to ensure step 2 was done correctly, every participant
should verify they get the same addresses
4. Funds are sent to the resulting address
5. A sending transaction from the multisig is created using `walletcreatefundedpsbt` (anyone can initiate this). It is simple to do
this in the GUI by going to the `Send` tab in the multisig wallet and creating an unsigned transaction (PSBT)
6. At least `M` participants check the PSBT with their multisig using `decodepsbt` to verify the transaction is OK before signing it.
7. (If OK) the participant signs the PSBT with their signer wallet using `walletprocesspsbt`. It is simple to do this in the GUI by
loading the PSBT from file and signing it
8. The signed PSBTs are collected with `combinepsbt`, finalized w/ `finalizepsbt`, and then the resulting transaction is broadcasted
to the network. Note that any wallet (eg one of the signers or multisig) is capable of doing this.
9. Checks that balances are correct after the transaction has been included in a block

You may prefer a daisy chained signing flow where each participant signs the PSBT one after another until
the PSBT has been signed `M` times and is "complete." For the most part, the steps above remain the same, except (6, 7)
change slightly from signing the original PSBT in parallel to signing it in series. `combinepsbt` is not necessary with
this signing flow and the last (`m`th) signer can just broadcast the PSBT after signing. Note that a parallel signing flow may be
preferable in cases where there are more signers. This signing flow is also included in the test / Python example.
[The test](/test/functional/wallet_multisig_descriptor_psbt.py) is meant to be documentation as much as it is a functional test, so
it is kept as simple and readable as possible.

### BIP32 derived keys and chains

Most modern wallet software and hardware uses keys that are derived using
Expand Down
3 changes: 3 additions & 0 deletions doc/psbt.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,9 @@ hardware implementations will typically implement multiple roles simultaneously.

#### Multisig with multiple Bitcoin Core instances

For a quick start see [Basic M-of-N multisig example using descriptor wallets and PSBTs](./descriptors.md#basic-multisig-example).
If you are using legacy wallets feel free to continue with the example provided here.

Alice, Bob, and Carol want to create a 2-of-3 multisig address. They're all using
Bitcoin Core. We assume their wallets only contain the multisig funds. In case
they also have a personal wallet, this can be accomplished through the
Expand Down
8 changes: 8 additions & 0 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@ Updated RPCs
`gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`,
`/rest/block` no longer return the `addresses` and `reqSigs` fields, which
were previously deprecated in 22.0. (#22650)
- The `getblock` RPC command now supports verbose level 3 containing transaction inputs
`prevout` information. The existing `/rest/block/` REST endpoint is modified to contain
this information too. Every `vin` field will contain an additional `prevout` subfield
describing the spent output. `prevout` contains the following keys:
- `generated` - true if the spent coins was a coinbase.
- `height`
- `value`
- `scriptPubKey`

- `listunspent` now includes `ancestorcount`, `ancestorsize`, and
`ancestorfees` for each transaction output that is still in the mempool.
Expand Down
6 changes: 5 additions & 1 deletion doc/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Release Process

To tag the version (or release candidate) in git, use the `make-tag.py` script from [bitcoin-maintainer-tools](https://github.com/bitcoin-core/bitcoin-maintainer-tools). From the root of the repository run:

../bitcoin-maintainer-tools/make-tag.py v(new version, e.g. 0.20.0)
../bitcoin-maintainer-tools/make-tag.py v(new version, e.g. 23.0)

This will perform a few last-minute consistency checks in the build system files, and if they pass, create a signed tag.

Expand Down Expand Up @@ -253,6 +253,10 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc
- bitcoincore.org maintained versions update:
[table](https://github.com/bitcoin-core/bitcoincore.org/commits/master/_includes/posts/maintenance-table.md)

- Delete post-EOL [release branches](https://github.com/bitcoin/bitcoin/branches/all) and create a tag `v${branch_name}-final`.

- Delete ["Needs backport" labels](https://github.com/bitcoin/bitcoin/labels?q=backport) for non-existing branches.

- bitcoincore.org RPC documentation update

- Install [golang](https://golang.org/doc/install)
Expand Down
Loading