Commit graph

540 commits

Author SHA1 Message Date
Byron Hambly
a41762b512
Merge 4ad5c71adb into merged_master (Bitcoin PR bitcoin/bitcoin#28051) 2025-11-17 16:50:25 +02:00
Byron Hambly
6abf91ab3d
Merge 622e79e0fb into merged_master (Bitcoin PR bitcoin/bitcoin#29021) 2025-11-17 15:07:22 +02:00
Byron Hambly
352fbd36dc
Merge ffb021612b into merged_master (Bitcoin PR bitcoin/bitcoin#28451) 2025-11-11 11:44:59 +02:00
Byron Hambly
e106f9bedb
Merge 75462b39d2 into merged_master (Bitcoin PR bitcoin/bitcoin#28554) 2025-11-11 10:48:37 +02:00
Byron Hambly
8cf8bd5564
Merge 108462139b into merged_master (Bitcoin PR bitcoin/bitcoin#28438) 2025-11-10 13:45:17 +02:00
Byron Hambly
862a6868d8
rpc: fix rpc typechecking errors
Fixes (most?) of the rpc typechecking errors, at least the ones that are
tested by the functional tests.

However, I've left the rpc typechecking off after fixing these, since
I'm concerned that there are conditional cases that are untested in our
functional tests - and I'd rather not have RPC calls failing in a
release just because the documentation is not correct.
2025-10-30 15:11:48 +02:00
Byron Hambly
cdd7d6a670
fixme: rpc/mining.cpp 2025-10-28 11:50:59 +02:00
Byron Hambly
4de706a2a4
ci(tidy): use emplace_back instead of push_back 2025-08-22 09:23:55 +02:00
Byron Hambly
461e9aa5fb Merge 5175ae482e into merged_master (Bitcoin PR bitcoin/bitcoin#28354) 2025-07-05 16:06:42 +02:00
Byron Hambly
d913024a59 Merge 083316c4fe into merged_master (Bitcoin PR bitcoin/bitcoin#28230) 2025-07-05 11:14:43 +02:00
Byron Hambly
f95cdcb6d6 Merge 723f1c669f into merged_master (Bitcoin PR bitcoin/bitcoin#28218) 2025-07-04 21:40:54 +02:00
Byron Hambly
2e41574d5a Merge ecb20563b6 into merged_master (Bitcoin PR bitcoin/bitcoin#28123) 2025-07-04 18:23:38 +02:00
Byron Hambly
58f82b55c0 Merge 3648a9b4f7 into merged_master (Bitcoin PR bitcoin/bitcoin#28056) 2025-07-02 08:43:44 +02:00
Byron Hambly
6b602eff8d Merge 1af72e728d into merged_master (Bitcoin PR bitcoin/bitcoin#27501) 2025-06-27 11:42:46 +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
a40347d7f5 Merge e0a70c5b4f into merged_master (Bitcoin PR bitcoin/bitcoin#27605) 2025-06-20 09:50:22 +02:00
Byron Hambly
cbd7b123d9 Merge fc06881f13 into merged_master (Bitcoin PR bitcoin/bitcoin#27491) 2025-06-19 16:08:36 +02:00
Byron Hambly
833eaacade
ci: use 24.04 instead of lunar for tidy and fuzz ci 2025-04-29 13:49:55 +02:00
Byron Hambly
8c3af30453 Merge 8acfb1f8e0 into merged_master (Bitcoin PR bitcoin/bitcoin#18933) 2025-04-11 21:20:36 +02:00
Byron Hambly
c0a9017312 Merge a8c1ea50c7 into merged_master (Bitcoin PR bitcoin/bitcoin#26919) 2025-04-04 09:27:27 +02:00
Byron Hambly
27a72d99f5 Merge 7799f53542 into merged_master (Bitcoin PR bitcoin/bitcoin#26039) 2025-04-02 23:02:13 +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
1ba6aeea51
Merge 99c2ee7f9a into merged_master (Elements PR #1399) 2025-02-12 14:47:53 +02:00
Andrew Poelstra
bd4ae1bcc4
rpc: fix crash in getcompactsketch
This originates in 8723debb3d which has no
PR associated with it. We've really gotta stop putting thousands of
unreviewed commits into this project and rebasing the history away..
2025-02-11 02:58:41 +00:00
Byron Hambly
ca0a68b350
Merge UP TO 551c8e9526 into merged_master (UP TO bitcoin/bitcoin#26349)
Includes FIXMEs for a few functional tests
2025-02-05 09:50:17 +02:00
Byron Hambly
c794f76ea8
asan: lock cs_main for calls to chainman 2025-01-06 15:29:01 +02:00
Byron Hambly
8499b13762
lint: fix lint issues 2024-12-03 14:02:33 +02:00
Byron Hambly
b80b3aeff4 Merge 3a7e0a210c into merged_master (Bitcoin PR bitcoin/bitcoin#24513) 2024-11-26 14:42:49 +02:00
Byron Hambly
54b236050d Merge e9035f867a into merged_master (Bitcoin PR bitcoin/bitcoin#25717)
The new minchainwork test was modified to use bitcoin regtest instead of
elements, which required a few changes and a FIXME.
2024-11-22 14:26:38 +02:00
Byron Hambly
1006327a13 Merge 9eaef10801 into merged_master (Bitcoin PR bitcoin/bitcoin#25707) 2024-11-04 11:26:40 +02:00
Byron Hambly
fd9ee039c0 Merge 95d4744f02 into merged_master (Bitcoin PR bitcoin/bitcoin#19391) 2024-11-03 14:48:48 +02:00
Byron Hambly
12dbf6cb9d Merge f6fdedf850 into merged_master (Bitcoin PR bitcoin/bitcoin#25648) 2024-10-24 20:20:13 +02:00
Byron Hambly
b9abd5638d Merge a65f6d8cbb into merged_master (Bitcoin PR bitcoin/bitcoin#25699) 2024-10-18 14:44:59 +02:00
James Dorfman
17851700b4 Merge e4e201dfd9 into merged_master (Bitcoin PR bitcoin/bitcoin#25290) 2024-09-19 18:56:19 +00:00
James Dorfman
616633ec35 Merge a7a36590f5 into merged_master (Bitcoin PR bitcoin/bitcoin#25223) 2024-09-10 19:59:14 +00:00
James Dorfman
25c2ea0027 Merge 86cc31dab6 into merged_master (Bitcoin PR bitcoin/bitcoin#25249) 2024-09-06 19:20:19 +00:00
James Dorfman
bfb0f5d1e1 Merge 640eb772e5 into merged_master (Bitcoin PR bitcoin/bitcoin#25064) 2024-08-13 21:57:29 +00:00
James Dorfman
66bc45020f Merge 4d0c00dffd into merged_master (Bitcoin PR bitcoin/bitcoin#25168) 2024-08-13 20:10:21 +00:00
James Dorfman
06a6044137 Merge 0de36941ec into merged_master (Bitcoin PR bitcoin/bitcoin#25153) 2024-08-13 06:00:38 +00:00
James Dorfman
0e02561a73 Merge fdb82a30be into merged_master (Bitcoin PR bitcoin/bitcoin#25147) 2024-08-13 05:07:06 +00:00
James Dorfman
31df518140 Merge 7b3343f300 into merged_master (Bitcoin PR bitcoin/bitcoin#25108) 2024-08-13 04:20:55 +00:00
James Dorfman
5854eae590 Merge 25dd4d8513 into merged_master (Bitcoin PR bitcoin/bitcoin#24595) 2024-08-12 02:29:42 +00:00
James Dorfman
757c338ae3 Merge 2c56404088 into merged_master (Bitcoin PR bitcoin/bitcoin#25029) 2024-08-08 20:45:21 +00:00
James Dorfman
56b04fea6d Merge 23ebd7a802 into merged_master (Bitcoin PR bitcoin/bitcoin#24959) 2024-08-02 17:42:57 +00:00
James Dorfman
1278b31bc7 Merge 372f1a3c25 into merged_master (Bitcoin PR bitcoin/bitcoin#24753)
Please review this very very carefully. I don't think this is correct, but I wanted to move on with the merges.
Let's fix this.
2024-07-26 06:16:39 +00:00
James Dorfman
4e288c66ce fix errors from merge of bitcoin/bitcoin#23083
Notes:
- bitcoin/bitcoin#23083 increassed how stict the RPC documentation type checks are
- I initially tried fixing all the types -- you can see that work in this commit.
- In the end, I decided there were way too many discrepencies and that it would take
way too long to fix them all. So I just disabled the type check for elements (also in this commit).
2024-05-23 06:33:42 +00:00
Ava Chow
4ad5c71adb
Merge bitcoin/bitcoin#28051: Get rid of shutdown.cpp/shutdown.h, use SignalInterrupt directly
6db04be102 Get rid of shutdown.cpp/shutdown.h, use SignalInterrupt directly (Ryan Ofsky)
213542b625 refactor: Add InitContext function to initialize NodeContext with global pointers (Ryan Ofsky)
feeb7b816a refactor: Remove calls to StartShutdown from KernelNotifications (Ryan Ofsky)
6824eecaf1 refactor: Remove call to StartShutdown from stop RPC (Ryan Ofsky)
1d92d89edb util: Get rid of uncaught exceptions thrown by SignalInterrupt class (Ryan Ofsky)
ba93966368 refactor: Remove call to ShutdownRequested from IndexWaitSynced (Ryan Ofsky)
42e5829d97 refactor: Remove call to ShutdownRequested from HTTPRequest (Ryan Ofsky)
73133c36aa refactor: Add NodeContext::shutdown member (Ryan Ofsky)
f4a8bd6e2f refactor: Remove call to StartShutdown from qt (Ryan Ofsky)
f0c73c1336 refactor: Remove call to ShutdownRequested from rpc/mining (Ryan Ofsky)
263b23f008 refactor: Remove call to ShutdownRequested from chainstate init (Ryan Ofsky)

Pull request description:

  This change drops `shutdown.h` and `shutdown.cpp` files, replacing them with a `NodeContext::shutdown` member which is used to trigger shutdowns directly. This gets rid of an unnecessary layer of indirection, and allows getting rid of the `kernel::g_context` global.

  Additionally, this PR tries to improve error handling of `SignalInterrupt` code by marking relevant methods `[[nodiscard]]` to avoid the possibility of uncaught exceptions mentioned https://github.com/bitcoin/bitcoin/pull/27861#discussion_r1255496707.

  Behavior is changing In a few cases which are noted in individual commit messages. Particularly: GUI code more consistently interrupts RPCs when it is shutting down, shutdown state no longer persists between unit tests, the stop RPC now returns an RPC error if requesting shutdown fails instead of aborting, and other failed shutdown calls now log errors instead of aborting.

  This PR is a net reduction in lines of code, but in some cases the explicit error handling and lack of global shutdown functions do make it more verbose. The verbosity can be seen as good thing if it discourages more code from directly triggering shutdowns, and instead encourages code to return errors or send notifications that could be translated into shutdowns. Probably a number of existing shutdown calls could just be replaced by better error handling.

ACKs for top commit:
  achow101:
    ACK 6db04be102
  TheCharlatan:
    Re-ACK 6db04be102
  maflcko:
    ACK 6db04be102 👗
  stickies-v:
    re-ACK 6db04be102

Tree-SHA512: 7a34cb69085f37e813c43bdaded1a0cbf6c53bd95fdde96f0cb45346127fc934604c43bccd3328231ca2f1faf712a7418d047ceabd22ef2dca3c32ebb659e634
2023-12-14 15:14:00 -05:00
MarcoFalke
fa5989d514
refactor: rpc: Pass CBlockIndex by reference instead of pointer
All functions assume that the pointer is never null, so pass by
reference, to avoid accidental segfaults at runtime, or at least make
them more obvious.

Also, remove unused c-style casts in touched lines.

Also, add CHECK_NONFATAL checks, to turn segfault crashes into an
recoverable runtime error with debug information.
2023-12-07 12:05:21 +01:00
Ryan Ofsky
f0c73c1336 refactor: Remove call to ShutdownRequested from rpc/mining
Use chainman.m_interrupt object instead

There is no change in behavior in this commit
2023-12-04 15:39:15 -04:00
Andrew Chow
75462b39d2
Merge bitcoin/bitcoin#28554: bugfix: throw an error if an invalid parameter is passed to getnetworkhashps RPC
9ac114e5cd Throw error if invalid parameters passed to getnetworkhashps RPC endpoint (Jameson Lopp)

Pull request description:

  When writing some scripts that iterated over many blocks to generate hashrate estimates I realized that my script was going out of range of the current chain tip height but was not encountering any errors.

  I believe that passing an invalid block height to this function but receiving the hashrate estimate for the chain tip instead should be considered unexpected behavior.

ACKs for top commit:
  Sjors:
    re-utACK 9ac114e5cd
  kevkevinpal:
    reACK [9ac114e](https://github.com/bitcoin/bitcoin/pull/28554/commits/9ac114e5cd9d8ade3a1d9f3d76a08ff59a3f1658)
  achow101:
    ACK 9ac114e5cd

Tree-SHA512: eefb465c2dd654fc48267f444e1809597ec5363cdd131ea9ec812458fed1e4bffbbbb0617d74687c9f7bb16274b598d8292f5eeb7953421e5d2a8dc2cc081f2b
2023-11-28 16:26:04 -05:00