Commit graph

226 commits

Author SHA1 Message Date
Byron Hambly
e999ab6070 Merge caff95a023 into merged_master (Bitcoin PR bitcoin/bitcoin#27896) 2025-06-28 11:08:01 +02:00
Byron Hambly
30814e6064 Merge c92fd63886 into merged_master (Bitcoin PR bitcoin/bitcoin#27708) 2025-06-27 14:01:27 +02:00
Byron Hambly
edc585d157 Merge 9564f98fee into merged_master (Bitcoin PR bitcoin/bitcoin#27636) 2025-06-25 11:40:46 +02:00
Byron Hambly
5ac82e15a9 Merge 669af32632 into merged_master (Bitcoin PR bitcoin/bitcoin#27419) 2025-05-09 11:47:45 +02:00
Byron Hambly
e24c402fac Merge b175bdb9b2 into merged_master (Bitcoin PR bitcoin/bitcoin#27238) 2025-04-10 08:26:17 +02:00
Tom Trevethan
0ab95ded19 Merge fc037c8c83 into merged_master (Bitcoin PR bitcoin/bitcoin#27150) 2025-04-09 17:42:19 +00:00
Byron Hambly
4d00218319 Merge 8303f11e10 into merged_master (Bitcoin PR bitcoin/bitcoin#27170) 2025-04-09 12:38:49 +02:00
Byron Hambly
b4405ba453 Merge e9262ea32a into merged_master (Bitcoin PR bitcoin/bitcoin#26750) 2025-03-31 16:37:52 +02:00
Byron Hambly
b83abdf89a
Merge UP TO e42ba134f4 into merged_master (UP TO Bitcoin PR bitcoin/bitcoin#26448)
1667577042 2022-11-04T16:50:42+01:00 e42ba134f4 Bitcoin Merge bitcoin/bitcoin#26448: test: fix intermittent failure in p2p_sendtxrcncl.py
1667576919 2022-11-04T15:48:39+00:00 83cf055bef Bitcoin Merge bitcoin/bitcoin#26443: doc: mention BIP86 in doc/bips.md
1667478613 2022-11-03T13:30:13+01:00 28653a596a Bitcoin Merge bitcoin/bitcoin#26445: .python-version: bump patch version to 3.6.15
1667471345 2022-11-03T10:29:05+00:00 2a7c9984db Bitcoin Merge bitcoin/bitcoin#25248: refactor: Add LIFETIMEBOUND / -Wdangling-gsl to Assert()
1667397640 2022-11-02T15:00:40+01:00 5274f32437 Bitcoin Merge bitcoin/bitcoin#26417: test: fix intermittent failure in feature_index_prune.py
1667372848 2022-11-02T08:07:28+01:00 39f026b1ec Bitcoin Merge bitcoin/bitcoin#26396: net: Avoid SetTxRelay for feeler connections
1667316369 2022-11-01T16:26:09+01:00 bf0cb43990 Bitcoin Merge bitcoin/bitcoin#26437: test: remove unused `CHANGE_{XPRV,XPUB}` constants
1667300957 2022-11-01T11:09:17+00:00 5668ccec1d Bitcoin Merge bitcoin/bitcoin#25548: gui: Check for readlink buffer overflow and handle gracefully
1667297563 2022-11-01T10:12:43+00:00 c041d8f2c9 Bitcoin Merge bitcoin/bitcoin#26360: build: remove threadinterrupt from libbitcoinkernel
1667297149 2022-11-01T10:05:49+00:00 27e76afe24 Bitcoin Merge bitcoin/bitcoin#26294: build: move util/url to common/url
1667291397 2022-11-01T08:29:57+00:00 d08b63baa0 Bitcoin Merge bitcoin/bitcoin#26373: Update minisketch subtree to latest upstream
1667230521 2022-10-31T15:35:21+00:00 43e813cab2 Bitcoin Merge bitcoin/bitcoin#26387: p2p: TryLowWorkHeadersSync follow-ups
1667217075 2022-10-31T11:51:15+00:00 4766cd1981 Bitcoin Merge bitcoin/bitcoin#24051: Bugfix: configure: bitcoin-{cli,tx,util} don't need UPnP, NAT-PMP, or ZMQ
1667213203 2022-10-31T11:46:43+01:00 2856dee808 Bitcoin Merge bitcoin/bitcoin#26402: doc: Fix typos
1667202170 2022-10-31T08:42:50+01:00 c75c0d8e11 Bitcoin Merge bitcoin/bitcoin#26424: doc: correct deriveaddresses RPC name
1667034850 2022-10-29T11:14:10+02:00 4f270d2b63 Bitcoin Merge bitcoin/bitcoin#26404: test: fix intermittent failure in rpc_getblockfrompeer.py
1667030363 2022-10-29T09:59:23+02:00 984a01589b Bitcoin Merge bitcoin/bitcoin#26408: test: Remove spam from debug log
1666985837 2022-10-28T15:37:17-04:00 8b050762b1 Bitcoin Merge bitcoin/bitcoin#26409: refactor: Silence GCC Wmissing-field-initializers in ChainstateManagerOpts
1666949533 2022-10-28T11:32:13+02:00 1bad29fe02 Bitcoin Merge bitcoin/bitcoin#26377: test: Make `system_tests/run_command` test locale and platform agnostic
2025-02-27 13:40:17 +02:00
Byron Hambly
068f46b4f5 Merge 5c82ca3365 into merged_master (Bitcoin PR bitcoin/bitcoin#25493) 2024-10-17 18:03:37 +02:00
James Dorfman
c6fee1dac3 Merge 38c63e3683 into merged_master (Bitcoin PR bitcoin/bitcoin#25338) 2024-09-10 18:55:20 +00:00
James Dorfman
1e24510c7e Merge b91055ea55 into merged_master (Bitcoin PR bitcoin/bitcoin#25251) 2024-09-10 18:10:02 +00:00
James Dorfman
5c24574c48 Merge aac9c259b0 into merged_master (Bitcoin PR bitcoin/bitcoin#25065) 2024-09-09 16:46:26 +00:00
James Dorfman
d69f2921b9 Merge 5e1aacab57 into merged_master (Bitcoin PR bitcoin/bitcoin#24933) 2024-08-09 04:43:43 +00:00
Byron Hambly
51fbed170b Merge 3c565302aa into merged_master (Bitcoin PR bitcoin/bitcoin#24409) 2023-07-02 13:45:31 +00:00
Byron Hambly
7878ba47b9 Merge c561f2f06e into merged_master (Bitcoin PR bitcoin/bitcoin#23497) 2023-06-19 09:28:31 +00:00
fanquake
32e2ffc393
Remove the syscall sandbox
After initially being merged in #20487, it's no-longer clear that an
internal syscall sandboxing mechanism is something that Bitcoin Core
should have/maintain, especially when compared to better
maintained/supported alterantives, i.e firejail.

Note that given where it's used, the sandbox also gets dragged into the
kernel.

There is some related discussion in #24771.

This should not require any sort of deprecation, as this was only ever
an opt-in, experimental feature.

Closes #24771.
2023-06-16 10:38:19 +01:00
Byron Hambly
47626b5a64 Merge 623745ca74 into merged_master (Bitcoin PR bitcoin/bitcoin#23912) 2023-06-14 15:44:11 +00:00
furszy
61c569ab60
refactor: decouple early return commands from AppInit
Cleaned up the init flow to make it more obvious when
the 'exit_status' value will and won't be returned.

This is because it was confusing that `AppInit` was
returning true under two different circumstances:

1) When bitcoind was launched only to retrieve the "-help"
or "-version" information. In this case, the app was
not initialized.

2) When the user triggers a shutdown. In this case,
the app was fully initialized.
2023-06-10 11:10:29 -03:00
furszy
3b2c61e819
Return EXIT_FAILURE on post-init fatal errors
It seems odd to return `EXIT_SUCCESS` when the node aborted
execution due a fatal internal error or any post-init problem
that triggers an unrequested shutdown.

e.g. blocks or coins db I/O errors, disconnect block failure,
failure during thread import (external blocks loading process
error), among others.

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
2023-06-09 17:52:23 -03:00
TheCharlatan
7d3b35004b
refactor: Move system from util to common library
Since the kernel library no longer depends on the system file, move it
to the common library instead in accordance to the diagram in
doc/design/libraries.md.
2023-05-20 12:08:13 +02:00
Byron Hambly
cca3f919f8 Merge 9e530c6352 into merged_master (Bitcoin PR bitcoin/bitcoin#20487) 2023-05-09 11:22:04 +00:00
TheCharlatan
be55f545d5
move-only: Extract common/args and common/config.cpp from util/system
This is an extraction of ArgsManager related functions from util/system
into their own common file.

Config file related functions are moved to common/config.cpp.

The background of this commit is an ongoing effort to decouple the
libbitcoinkernel library from the ArgsManager. The ArgsManager belongs
into the common library, since the kernel library should not depend on
it. See doc/design/libraries.md for more information on this rationale.
2023-04-19 10:48:30 +02:00
Ben Woosley
e7333b420e
refactor: Extract util/exception from util/system
This is a minimal extraction of a single function, but also the only use
of std::exception in util/system.

The background of this commit is an ongoing effort to decouple the
libbitcoinkernel library from the ArgsManager defined in system.h.
Moving the function out of system.h allows including it from a separate
source file without including the ArgsManager definitions from system.h.
2023-03-13 17:09:47 +01:00
Ryan Ofsky
802cc1ef53 Deduplicate bitcoind and bitcoin-qt init code
Add common InitConfig function to deduplicate bitcoind and bitcoin-qt code
reading config files and creating the datadir.

There are a few minor changes in behavior:

- In bitcoin-qt, when there is a problem reading the configuration file, the
  GUI error text has changed from "Error: Cannot parse configuration file:" to
  "Error reading configuration file:" to be consistent with bitcoind.
- In bitcoind, when there is a problem reading the settings.json file, the
  error text has changed from "Failed loading settings file" to "Settings
  file could not be read" to be consistent with bitcoin-qt.
- In bitcoind, when there is a problem writing the settings.json file, the
  error text has changed from "Failed saving settings file" to "Settings file
  could not be written" to be consistent with bitcoin-qt.
- In bitcoin-qt, if there datadir is not accessible (e.g. no permission to read),
  there is an normal error dialog showing "Error: filesystem error: status:
  Permission denied [.../settings.json]", instead of an uncaught exception
2023-02-28 12:04:47 -05:00
Ryan Ofsky
c361df90b9 scripted-diff: Remove double newlines after some init errors
Some InitError calls had trailing \n characters, causing double newlines in
error output. After this change InitError calls consistently output one newline
instead of two. Appearance of messages in the GUI does not seem to be affected.
Can be tested with:

  src/bitcoind -regtest -datadir=noexist
  src/qt/bitcoin-qt -regtest -datadir=noexist

-BEGIN VERIFY SCRIPT-
git grep -l InitError src/ | xargs sed -i 's/\(InitError(.*\)\\n"/\1"/'
-END VERIFY SCRIPT-
2023-02-28 12:04:47 -05:00
Ryan Ofsky
9a9d5da11f refactor: Stop using gArgs global in system.cpp
Most of the code in util/system.cpp that was hardcoded to use the global
ArgsManager instance `gArgs` has been changed to work with explicit ArgsManager
instances (for example in https://github.com/bitcoin/bitcoin/pull/20092). But a
few hardcoded references to `gArgs` remain. This commit removes the last ones
so these functions aren't reading or writing global state.
2023-02-27 14:21:13 -05:00
Glenn Willen
011feab4c4 Fix spelling lints.
For all spelling lints, either fix them in place, or add them to the
ignore list.

I don't understand how these have gotten in here without ever
triggering the linter until now. I'm not sure if it's something about
my test environment or what. But fixing them can't hurt.
2023-02-26 19:30:18 -08:00
Hennadii Stepanov
306ccd4927
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-

Commits of previous years:
- 2021: f47dda2c58
- 2020: fa0074e2d8
- 2019: aaaaad6ac9
2022-12-24 23:49:50 +00:00
fanquake
3a0b352c63
refactor: move url.h/cpp from lib util to lib common 2022-10-31 10:17:04 +00:00
Jon Atack
b6a65568df Fix issues identified by codespell 2.2.1 and update ignored words
and also fix spelling in test/lint/lint-locale-dependence.py not caught by the
spelling linter and fix up a paragraph we are touching here in test/README.md.
2022-09-15 13:03:40 +02:00
fanquake
cc7b2fdd70
refactor: move compat.h into compat/ 2022-07-20 10:34:46 +01:00
Hennadii Stepanov
018d70b587
scripted-diff: Avoid incompatibility with CMake AUTOUIC feature
-BEGIN VERIFY SCRIPT-
sed -i "s|node/ui_interface|node/interface_ui|g" $(git grep -l "node/ui_interface" ./src)
git mv src/node/ui_interface.cpp src/node/interface_ui.cpp
git mv src/node/ui_interface.h src/node/interface_ui.h
sed -i "s|BITCOIN_NODE_UI_INTERFACE_H|BITCOIN_NODE_INTERFACE_UI_H|g" src/node/interface_ui.h
-END VERIFY SCRIPT-
2022-06-14 10:38:51 +02:00
fanquake
fbae8c59a2
compat: Consolidate mingw-w64 ASLR workaround for upstream libsecp changes
Achieve this by adding a MAIN_FUNCTION macro, consolidating the docs, and
introducing the macro across our distributed binaries.

Also update the docs to explain that anyone using binutils < 2.36 is
effected by this issue. Release builds are not, because they use binutils
2.37. Currently LTS Linux distros, like Ubuntu Focal, ship with 2.34.

https://packages.ubuntu.com/focal/binutils
2022-06-11 14:55:13 +01:00
Carl Dong
265d6393bf Move init::SanityCheck to kernel::SanityCheck 2022-06-02 11:42:12 -04:00
Carl Dong
fed085a1a4 init: Initialize globals with kernel::Context's life
...instead of explicitly calling init::{Set,Unset}Globals.

Cool thing about this is that in both the testing and bitcoin-chainstate
codepaths, we no longer need to explicitly unset globals. The
kernel::Context goes out of scope and the globals are unset
"automatically".

Also construct kernel::Context outside of AppInitSanityChecks()
2022-06-02 11:40:03 -04:00
laanwj
46971c6dbf util: Replace non-threadsafe strerror
Some uses of non-threadsafe `strerror` have snuck into the code since
they were removed in #4152. Add a wrapper `SysErrorString` for
thread-safe strerror alternatives and replace all uses of `strerror`
with this.
2022-04-28 10:24:06 +02:00
fanquake
2618fb8d15
Output license info when binaries are passed -version
Consolidate to outputting the licensing info when we pass -version to a binary,
i.e bitcoind -version:
```bash
itcoin Core version v22.99.0-fc1f355913f6-dirty
Copyright (C) 2009-2022 The Bitcoin Core developers

Please contribute if you find Bitcoin Core useful. Visit
<https://bitcoincore.org/> for further information about the software.
The source code is available from <https://github.com/bitcoin/bitcoin>.

This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>
```
2022-02-22 15:36:19 +00:00
Russell Yanofsky
90fc8b089d Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
Hennadii Stepanov
f47dda2c58
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-

Commits of previous years:
* 2020: fa0074e2d8
* 2019: aaaaad6ac9
2021-12-30 19:36:57 +02:00
practicalswift
4747da3a5b Add syscall sandboxing (seccomp-bpf) 2021-10-01 13:51:10 +00:00
Andrew Poelstra
25981aeceb Merge f66eceaecf into merged_master (Bitcoin PR bitcoin/bitcoin#22216) 2021-07-24 20:31:41 +00:00
Andrew Poelstra
5f0c45b568 Merge ac219dcbcc into merged_master (Bitcoin PR bitcoin/bitcoin#19160) 2021-07-01 13:29:36 +00:00
Andrew Poelstra
770892540f Merge 6664211be2 into merged_master (Bitcoin PR #21574) 2021-06-29 22:00:51 +00:00
Andrew Poelstra
d20af8f9ea Merge 602b038d43 into merged_master (Bitcoin PR #21366) 2021-06-29 00:32:18 +00:00
Andrew Poelstra
26fd4eb181 Merge a9d1b40d53 into merged_master (Bitcoin PR #21415) 2021-06-27 15:02:35 +00:00
Andrew Poelstra
7602228cf0 Merge 92cf3a22e3 into merged_master (Bitcoin PR #21007) 2021-06-26 19:51:03 +00:00
Andrew Poelstra
40b55f89b0 Merge 3f205808a5 into merged_master (Bitcoin PR #20605) 2021-06-14 18:26:20 +00:00
Andrew Poelstra
d228e06487 Merge f3e17686b3 into merged_master (Bitcoin PR #20468) 2021-06-11 16:13:19 +00:00
Russell Yanofsky
493fb47c57 Make SetupServerArgs callable without NodeContext
bitcoin-gui code needs to call SetupServerArgs but will not have a
NodeContext object if it is communicating with an external bitcoin-node
process.
2021-06-10 09:58:45 -05:00