dash/src
pasta f217e0ae7b
Merge #5940: refactor: consolidate activeMasternodeInfo{Cs} into CActiveMasternodeManager, create NodeContext alias, reduce globals usage
815e4f8026 masternode: protect m_{error,state} with cs (pasta)
136e445abc refactor: pass CActiveMasternodeManager as pointer arg to LLMQContext (Kittywhiskers Van Gogh)
5e0f77747a refactor: pass CActiveMasternodeManager as pointer arg to CJContext (Kittywhiskers Van Gogh)
f171c24a29 refactor: add CActiveMasternodeManager NodeContext alias, use in RPC (Kittywhiskers Van Gogh)
44beb941cb refactor: prefix member variable names with m_ (Kittywhiskers Van Gogh)
73cef4f5f9 refactor: make bls{Pub}KeyOperator member variables instead of pointers (Kittywhiskers Van Gogh)
fbc783635a refactor: make m_info private, get const refs (or copies) from Get*() functions (Kittywhiskers Van Gogh)
1b516ce4ed refactor: use signing helper function instead of passing blsKeyOperator (Kittywhiskers Van Gogh)
33702aca39 refactor: add helper function to decrypt messages with blsKeyOperator (Kittywhiskers Van Gogh)
3eb931b596 refactor: add helper function to sign messages with blsKeyOperator (Kittywhiskers Van Gogh)
3827355cce refactor: move key initialization to InitKeys, define destructor (Kittywhiskers Van Gogh)
e5295dec1f refactor: move activeMasternodeInfo{Cs} into CActiveMasternodeManager (Kittywhiskers Van Gogh)
b8c1f010e7 refactor: avoid accessing active masternode info if not in masternode mode (Kittywhiskers Van Gogh)
9a3c5a3c48 trivial: access activeMasternodeInfo when lock is in scope (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * `CActiveMasternodeManager`, unlike other managers, is _conditionally_ initialized (specifically, when the node is hosting a masternode). This means that checks need to be made to ensure that the conditions needed to initialize the manager are true or that the pointer leads to a valid manager instance.

    As the codebase currently checks (and fast-fails) based on the node being in "masternode mode" (`fMasternodeMode`) or not, we will continue with this approach, but with additional assertions _after_ the masternode mode check if the manager exists.

  * Though, since `activeMasternodeInfo`(`Cs`) are global variables, they can be accessed _regardless_ of whether the corresponding manager exists. This means some parts of the codebase attempt to fetch information about the (nonexistent) active masternode _before_ determining if it should use the masternode mode path or not (looking at you, `CMNAuth::ProcessMessage`)

    Moving them into `CActiveMasternodeManager` meant adding checks _before_ attempting to access information about the masternode, as they would no longer be accessible with dummy values ([here](2110c0c309/src/init.cpp (L1633-L1635))) on account of being part of the conditionally initialized manager.
    * In an attempt to opportunistically dereference the manager, `CDKGSessionManager` (accepting a pointer) was dereferencing the manager before passing it to `CDKGSessionHandler`. This was done under the assumption that  `CDKGSessionManager` would only ever be initialized in masternode mode.

      This is not true. I can confirm that because I spent a few days trying to debug test failures. `CDKGSessionHandler` is initialized in two scenarios:

      * In masternode mode
      * If the `-watchquorums` flag is enabled

      The latter scenario doesn't initialize `CActiveMasternodeManager`.

      Furthermore, the DKG round thread is started unconditionally ([here](2110c0c309/src/llmq/context.cpp (L79))) and the `CDKGSessionHandler::StartThreads` > `CDKGSessionHandler::StartThread` > `CDKGSessionHandler::PhaseHandlerThread` > `CDKGSessionHandler::HandleDKGRound` > `CDKGSessionHandler::InitNewQuorum` > `CActiveMasternodeManager::GetProTxHash` call chain reveals an attempt to fetch active masternode information without any masternode mode checks.

      This behaviour has now been changed and the thread will only be spun up if in masternode mode.

    * Dereferencing so far has been limited to objects that primarily hold data (like `CCoinJoinBroadcastTx` or `CGovernanceObject`) as they should not have knowledge of node's state (that responsibility lies with whatever manager manipulates those objects), perform one-off operations and static functions.

  * `activeMasternodeInfo` allowed its members to be read-write accessible to anybody who asked. Additionally, signing and decrypting involved borrowing the operator secret key from the active masternode state to perform those operations.

     This behaviour has now been changed. The internal state is now private and accessible read-only as a const ref (or copy) and `Decrypt`/`Sign` functions have been implemented to allow those operations to happen without having another manager access the operator private key in order to do so.

  * You cannot combine a `WITH_LOCK` and an `Assert` (in either mutex or accessed value), doing so will cause errors if `-Werror=thread-safety` is enabled. This is why `assert`s are added even when it would intuitively seem that `Assert` would've been more appropriate to use.

  ## Future Considerations

  Currently there are no unit tests that test the functionality of `CActiveMasternodeManager` as it's never initialized in test contexts, breakage had to be found using functional tests. Perhaps some (rudimentary) tests for `CActiveMasternodeManager` may prove to be valuable.

  ## Breaking Changes

  Not _really_. Some behaviour has been modified but nothing that should necessitate updates or upgrades.

  ## Checklist:

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  PastaPastaPasta:
    utACK 815e4f8026

Tree-SHA512: cbe49ea9e1c35df514e1b40869ee271baef1c348c9d09e4b356e5fc8fe5449cbbe66569258f2d664029faa9a46f711df9bf9e41eb8734c3aefc6cd8e94378948
2024-03-26 08:43:54 -05:00
..
bench merge bitcoin#28100: more Span<std::byte> modernization & follow-ups 2024-03-05 21:43:22 +00:00
bls merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
coinjoin refactor: pass CActiveMasternodeManager as pointer arg to CJContext 2024-03-24 07:37:31 +00:00
compat merge bitcoin#21966: Remove double serialization; use software encoder for fee estimation 2024-02-28 13:37:33 -06:00
config
consensus Merge bitcoin/bitcoin#22065: Mark CheckTxInputs [[nodiscard]]. Avoid UUM in fuzzing harness coins_view. 2024-02-14 14:57:36 -06:00
crc32c Merge bitcoin/bitcoin#25836: subtree: update crc32c subtree 2024-02-29 09:35:00 -06:00
crypto merge bitcoin#28100: more Span<std::byte> modernization & follow-ups 2024-03-05 21:43:22 +00:00
dashbls
evo Merge #5940: refactor: consolidate activeMasternodeInfo{Cs} into CActiveMasternodeManager, create NodeContext alias, reduce globals usage 2024-03-26 08:43:54 -05:00
governance refactor: make m_info private, get const refs (or copies) from Get*() functions 2024-03-24 07:37:29 +00:00
gsl refactor: re-order headers and forward declarations to improve compile time (#5693) 2023-11-17 10:04:18 -06:00
immer fix: drop symlinks in immer subtree 2024-02-28 13:18:49 -06:00
index Merge bitcoin/bitcoin#25967: refactor: add LIFETIMEBOUND to blockfilter where needed 2024-02-29 09:35:01 -06:00
interfaces Merge #16528: Native Descriptor Wallets using DescriptorScriptPubKeyMan 2024-03-07 01:23:15 +07:00
leveldb Merge bitcoin/bitcoin#26209: Update leveldb subtree 2024-03-05 10:40:36 -06:00
llmq Merge #5940: refactor: consolidate activeMasternodeInfo{Cs} into CActiveMasternodeManager, create NodeContext alias, reduce globals usage 2024-03-26 08:43:54 -05:00
logging
masternode masternode: protect m_{error,state} with cs 2024-03-24 07:52:07 +00:00
node refactor: add CActiveMasternodeManager NodeContext alias, use in RPC 2024-03-24 07:37:31 +00:00
policy merge bitcoin#21966: Remove double serialization; use software encoder for fee estimation 2024-02-28 13:37:33 -06:00
primitives Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
qt Merge #5951: backport: trivial 2024 03 22 2024-03-25 22:46:15 -05:00
rpc Merge #5940: refactor: consolidate activeMasternodeInfo{Cs} into CActiveMasternodeManager, create NodeContext alias, reduce globals usage 2024-03-26 08:43:54 -05:00
script Merge #16528: Native Descriptor Wallets using DescriptorScriptPubKeyMan 2024-03-07 01:23:15 +07:00
secp256k1 merge bitcoin#27479: BIP324: ElligatorSwift integrations 2023-11-21 07:59:03 -06:00
support merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
test Merge #5940: refactor: consolidate activeMasternodeInfo{Cs} into CActiveMasternodeManager, create NodeContext alias, reduce globals usage 2024-03-26 08:43:54 -05:00
univalue
util partial bitcoin#23595: Add ParseHex<std::byte>() helper 2024-02-28 13:37:36 -06:00
wallet Merge bitcoin/bitcoin#22781: wallet: fix the behavior of IsHDEnabled, return false in case of a blank hd wallet. 2024-03-25 11:21:49 -05:00
zmq Merge #5933: refactor: reduce CDeterministicMNManager globals use 2024-03-20 12:45:06 -05:00
.clang-format
addrdb.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
addrdb.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
addressindex.cpp refactor: consolidate P2PK{H} types to P2PK_OR_P2PKH 2023-09-25 22:57:42 +05:30
addressindex.h refactor: consolidate P2PK{H} types to P2PK_OR_P2PKH 2023-09-25 22:57:42 +05:30
addrman.cpp merge bitcoin#21969: Switch serialize to uint8_t 2024-02-28 13:37:33 -06:00
addrman.h Merge bitcoin/bitcoin#21129: fuzz: check that ser+unser produces the same AddrMan 2024-01-01 17:48:13 -06:00
amount.h Merge #15054: Update copyright headers to 2018 2023-12-06 11:40:14 -06:00
arith_uint256.cpp Merge bitcoin/bitcoin#24059: Fix implicit-integer-sign-change in arith_uint256 2024-02-28 13:16:39 -06:00
arith_uint256.h Merge bitcoin/bitcoin#24854: Remove not needed ArithToUint256 roundtrips in tests 2024-01-13 19:32:31 -06:00
attributes.h
banman.cpp Merge bitcoin/bitcoin#24168: Fix some race conditions in BanMan::DumpBanlist() 2024-01-13 19:32:30 -06:00
banman.h merge bitcoin#22570: Ignore banlist.dat 2023-09-24 09:50:50 -05:00
base58.cpp Merge #19739: refactor: remove c-string interfaces for DecodeBase58{Check} 2024-01-10 19:22:58 -06:00
base58.h Merge #19739: refactor: remove c-string interfaces for DecodeBase58{Check} 2024-01-10 19:22:58 -06:00
batchedlogger.cpp non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
batchedlogger.h non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
bech32.cpp
bech32.h
bip324.cpp merge bitcoin#28267: BIP324 ciphersuite follow-up 2024-03-05 21:43:22 +00:00
bip324.h merge bitcoin#28267: BIP324 ciphersuite follow-up 2024-03-05 21:43:22 +00:00
bitcoin-cli.cpp Merge bitcoin/bitcoin#22327: cli: Avoid truncating -rpcwaittimeout 2024-03-25 11:21:49 -05:00
bitcoin-tx.cpp partial bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-11-21 07:59:03 -06:00
bitcoin-wallet.cpp partial bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-11-21 07:59:03 -06:00
bitcoind.cpp non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
blockencodings.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
blockencodings.h
blockfilter.cpp merge bitcoin#23653: Generalize/simplify VectorReader into SpanReader 2024-02-28 13:37:34 -06:00
blockfilter.h Merge bitcoin/bitcoin#25967: refactor: add LIFETIMEBOUND to blockfilter where needed 2024-02-29 09:35:01 -06:00
bloom.cpp merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
bloom.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
cachemap.h non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
cachemultimap.h non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
chain.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
chain.h Merge bitcoin/bitcoin#13875: [doc] nChainTx needs to become a 64-bit earlier due to SegWit 2023-12-26 22:26:19 -06:00
chainparams.cpp chore: update chainparams for testnet 2024-03-03 23:34:35 -06:00
chainparams.h partial Merge #20004: test: Add signet witness commitment section parse tests 2024-01-31 11:32:23 -06:00
chainparamsbase.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
chainparamsbase.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
chainparamsseeds.h chore: update seeds for v20.1 2024-03-03 23:34:34 -06:00
checkqueue.h
clientversion.cpp feat: Set client version for non-release binaries and version in guix based on git tags (#5653) 2024-01-11 21:43:42 -06:00
clientversion.h
coins.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
coins.h Merge bitcoin/bitcoin#22263: refactor: wrap CCoinsViewCursor in unique_ptr 2023-12-03 20:45:01 -06:00
compat.h Merge #15704: Move Win32 defines to configure.ac to ensure they are globally defined 2024-01-10 19:22:58 -06:00
compressor.cpp merge bitcoin#21817: Replace &foo[0] with foo.data() 2024-02-28 13:37:33 -06:00
compressor.h merge bitcoin#23413: Replace MakeSpan helper with Span deduction guide 2023-09-24 09:50:50 -05:00
context.h non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
core_io.h merge bitcoin#17775: Try case where txn has inputs first 2024-02-06 08:44:04 -06:00
core_memusage.h
core_read.cpp merge bitcoin#17775: Try case where txn has inputs first 2024-02-06 08:44:04 -06:00
core_write.cpp Merge bitcoin/bitcoin#24319: refactor: Avoid unsigned integer overflow in core_write 2024-02-28 13:16:39 -06:00
ctpl_stl.h
cuckoocache.h Merge bitcoin/bitcoin#23626: refactor: Fix implicit-signed-integer-truncation in cuckoocache.h 2024-02-28 13:16:38 -06:00
cxxtimer.hpp
dash-cli-res.rc
dash-tx-res.rc
dash-wallet-res.rc
dashd-res.rc
dbwrapper.cpp merge bitcoin#21817: Replace &foo[0] with foo.data() 2024-02-28 13:37:33 -06:00
dbwrapper.h merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
deploymentinfo.cpp Merge bitcoin/bitcoin#19438: Introduce deploymentstatus 2023-12-01 09:08:50 -06:00
deploymentinfo.h Merge bitcoin/bitcoin#19438: Introduce deploymentstatus 2023-12-01 09:08:50 -06:00
deploymentstatus.cpp Merge bitcoin/bitcoin#19438: Introduce deploymentstatus 2023-12-01 09:08:50 -06:00
deploymentstatus.h refactor: move out helper IsDIP3Enforced from deterministicmns 2023-12-21 23:02:31 -06:00
dsnotificationinterface.cpp refactor: remove CDSTXManager global and alias, move to CJContext 2024-03-18 21:36:34 +00:00
dsnotificationinterface.h refactor: cleanup CDSNotificationInterface member names, add asserts 2024-03-18 21:36:33 +00:00
dummywallet.cpp Merge #14582: wallet: always do avoid partial spends if fees are within a specified range 2024-03-18 16:01:38 +07:00
flat-database.h merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
flatfile.cpp Merge #21041: log: Move "Pre-allocating up to position 0x[…] in […].dat" log message to debug category 2023-12-03 20:44:56 -06:00
flatfile.h
fs.cpp Merge bitcoin/bitcoin#26090: fs: fully initialize _OVERLAPPED for win32 2024-02-29 12:35:15 -06:00
fs.h Merge #20932: refactor: Replace fs::absolute calls with AbsPathJoin calls 2023-12-08 21:16:00 +03:00
hash.cpp Merge bitcoin/bitcoin#25959: doc: Fix link to MurmurHash3.cpp (moved from Google Code to Github) 2024-02-29 09:35:01 -06:00
hash.h merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
httprpc.cpp partial bitcoin#25001: Modernize util/strencodings and util/string: string_view and optional 2024-02-28 13:37:35 -06:00
httprpc.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
httpserver.cpp Merge bitcoin/bitcoin#26131: log: log RPC port on startup 2024-02-29 12:35:16 -06:00
httpserver.h
i2p.cpp
i2p.h
indirectmap.h
init.cpp Merge #5940: refactor: consolidate activeMasternodeInfo{Cs} into CActiveMasternodeManager, create NodeContext alias, reduce globals usage 2024-03-26 08:43:54 -05:00
init.h partial Merge bitcoin/bitcoin#25233: compat: remove glibcxx sanity checks 2023-11-07 07:44:05 -06:00
key_io.cpp Merge #20832: rpc: Better error messages for invalid addresses 2024-02-01 11:09:04 -06:00
key_io.h Merge #20832: rpc: Better error messages for invalid addresses 2024-02-01 11:09:04 -06:00
key.cpp merge bitcoin#21817: Replace &foo[0] with foo.data() 2024-02-28 13:37:33 -06:00
key.h merge bitcoin#21817: Replace &foo[0] with foo.data() 2024-02-28 13:37:33 -06:00
limitedmap.h
logging.cpp merge bitcoin#21121: Small unit test improvements, including helper to make mempool transaction 2024-02-02 23:14:06 -06:00
logging.h Merge bitcoin/bitcoin#22530: log: sort logging categories alphabetically 2023-12-03 20:25:16 -06:00
Makefile.am refactor: move MasternodePayments::* functions into helper class 2024-03-14 03:29:04 +00:00
Makefile.bench.include merge bitcoin#28008: BIP324 ciphersuite 2024-03-05 21:43:21 +00:00
Makefile.crc32c.include Merge bitcoin/bitcoin#23082: build: improve gexauxval() detection, remove getauxval() weak linking 2023-10-31 08:40:25 -05:00
Makefile.leveldb.include Merge bitcoin/bitcoin#25457: Use more specific path when including memenv.h header 2024-02-27 10:02:44 -06:00
Makefile.qt_locale.include
Makefile.qt.include partial Merge #18027: "PSBT Operations" dialog 2024-01-31 11:32:22 -06:00
Makefile.qttest.include
Makefile.test_fuzz.include
Makefile.test_util.include merge bitcoin#21553: Misc refactor 2024-02-06 08:39:53 -06:00
Makefile.test.include merge bitcoin#19972: Add fuzzing harness for node eviction logic 2024-03-25 11:55:05 +00:00
Makefile.univalue.include
mapport.cpp
mapport.h Merge bitcoin/bitcoin#26896: build: Remove port-forwarding runtime setting options from configure 2023-12-03 20:01:26 -06:00
memusage.h
merkleblock.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
merkleblock.h
messagesigner.cpp non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
messagesigner.h non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
miner.cpp refactor: more passing CDeterministicMNManager by ref 2024-03-19 15:21:00 +00:00
miner.h refactor: more passing CDeterministicMNManager by ref 2024-03-19 15:21:00 +00:00
net_permissions.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
net_permissions.h Merge bitcoin/bitcoin#21644: p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind() 2023-12-03 20:44:58 -06:00
net_processing.cpp merge bitcoin#20721: Move ping data to net_processing 2024-03-25 11:55:07 +00:00
net_processing.h merge bitcoin#20721: Move ping data to net_processing 2024-03-25 11:55:07 +00:00
net_types.h refactor: new helpers in net_processing for external handlers 2024-01-10 15:12:05 -06:00
net.cpp merge bitcoin#20721: Move ping data to net_processing 2024-03-25 11:55:07 +00:00
net.h merge bitcoin#20721: Move ping data to net_processing 2024-03-25 11:55:07 +00:00
netaddress.cpp merge bitcoin#23413: Replace MakeSpan helper with Span deduction guide 2023-09-24 09:50:50 -05:00
netaddress.h Merge #20119: BIP155 follow-ups 2024-01-22 19:47:13 -06:00
netbase.cpp Merge bitcoin/bitcoin#22052: net: remove non-blocking bool from interface 2024-01-02 11:17:48 -06:00
netbase.h Merge bitcoin/bitcoin#22052: net: remove non-blocking bool from interface 2024-01-02 11:17:48 -06:00
netfulfilledman.cpp refactor: remove CNetFulfilledRequestManager global, move to NodeContext 2024-03-18 21:36:34 +00:00
netfulfilledman.h refactor: remove CNetFulfilledRequestManager global, move to NodeContext 2024-03-18 21:36:34 +00:00
netmessagemaker.h Merge #18937: refactor: s/command/msg_type/ in CNetMsgMaker and CSerializedNetMsg 2024-03-06 02:00:38 +07:00
noui.cpp Merge #19331: build: Do not include server symbols in wallet 2024-01-10 12:06:05 -06:00
noui.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
outputtype.cpp
outputtype.h
pow.cpp
pow.h
prevector.h Merge bitcoin/bitcoin#24962: prevector: enforce is_trivially_copyable_v 2024-01-14 11:05:36 -06:00
protocol.cpp Merge bitcoin/bitcoin#25888: refactor: use strprintf for creating unknown-service-flag string 2024-02-29 09:35:00 -06:00
protocol.h Merge #19610: p2p: refactor AlreadyHave(), CInv::type, INV/TX processing 2024-01-27 22:55:26 -06:00
psbt.cpp merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
psbt.h partial Merge #18027: "PSBT Operations" dialog 2024-01-31 11:32:22 -06:00
pubkey.cpp merge bitcoin#21817: Replace &foo[0] with foo.data() 2024-02-28 13:37:33 -06:00
pubkey.h Merge #16528: Native Descriptor Wallets using DescriptorScriptPubKeyMan 2024-03-07 01:23:15 +07:00
random.cpp merge bitcoin#28100: more Span<std::byte> modernization & follow-ups 2024-03-05 21:43:22 +00:00
random.h merge bitcoin#28100: more Span<std::byte> modernization & follow-ups 2024-03-05 21:43:22 +00:00
randomenv.cpp Merge bitcoin/bitcoin#23082: build: improve gexauxval() detection, remove getauxval() weak linking 2023-10-31 08:40:25 -05:00
randomenv.h
rest.cpp Merge #19849: Assert that RPCArg names are equal to CRPCCommand ones (blockchain,rawtransaction) 2024-03-17 13:02:58 -05:00
reverse_iterator.h
saltedhasher.cpp non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
saltedhasher.h non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
scheduler.cpp Merge bitcoin/bitcoin#25040: refactor: Pass lifetimebound reference to SingleThreadedSchedulerClient 2024-01-13 23:09:41 -06:00
scheduler.h Merge bitcoin/bitcoin#25040: refactor: Pass lifetimebound reference to SingleThreadedSchedulerClient 2024-01-13 23:09:41 -06:00
serialize.h merge bitcoin#28012: Allow FastRandomContext::randbytes for std::byte, Allow std::byte serialization 2024-02-28 13:37:36 -06:00
shutdown.cpp Merge #19233: Make SetMiscWarning() accept bilingual_str argument 2024-01-16 15:05:05 -06:00
shutdown.h
source_location.h refactor: add gsl::not_null to get compile time / run time pointer guarantees (#5595) 2023-10-22 09:14:30 -05:00
span.h Merge bitcoin/bitcoin#22881: doc: provide context for CNetAddr::UnserializeV1Array() and span.h with lifetimebound 2023-12-26 22:26:19 -06:00
spentindex.h refactor: make AddressType a strong enum, remove uint8_t for address_type 2023-09-25 22:57:42 +05:30
spork.cpp refactor: remove CSporkManager global, move to NodeContext 2024-03-14 03:29:05 +00:00
spork.h refactor: remove CSporkManager global, move to NodeContext 2024-03-14 03:29:05 +00:00
stacktraces.cpp non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
stacktraces.h
statsd_client.cpp refactor: replace multiple C-style casts to reinterpret_cast 2024-03-06 03:31:46 +07:00
statsd_client.h refactor: add more consts everywhere as required by cppcheck 2.13.0 2024-03-06 03:31:48 +07:00
streams.h partial bitcoin#25296: Add DataStream without ser-type and ser-version 2024-02-28 13:37:35 -06:00
sync.cpp Merge #20507: sync: print proper lock order location when double lock is detected 2024-02-07 10:27:43 -06:00
sync.h refactor: replace multiple C-style casts to reinterpret_cast 2024-03-06 03:31:46 +07:00
threadinterrupt.cpp Merge bitcoin/bitcoin#24974: refactor: Make FEELER_SLEEP_WINDOW type safe (std::chrono) 2023-10-31 08:40:25 -05:00
threadinterrupt.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
threadsafety.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
timedata.cpp Merge #19233: Make SetMiscWarning() accept bilingual_str argument 2024-01-16 15:05:05 -06:00
timedata.h
timestampindex.h refactor: add missing headers to {address,timestamp}index 2023-09-25 22:57:41 +05:30
tinyformat.h
torcontrol.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
torcontrol.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
txdb.cpp merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
txdb.h Merge bitcoin/bitcoin#22263: refactor: wrap CCoinsViewCursor in unique_ptr 2023-12-03 20:45:01 -06:00
txmempool.cpp Merge #19478: Remove CTxMempool::mapLinks data structure member 2024-03-06 02:00:40 +07:00
txmempool.h mempool: remove stray boost::optional usage 2024-03-25 11:55:06 +00:00
uint256.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
uint256.h merge bitcoin#23438: Use spans of std::byte in serialize 2024-02-28 13:37:34 -06:00
undo.h
unordered_lru_cache.h non-scripted-diff: bump copyright year to 2023 2024-02-24 11:05:37 -06:00
validation.cpp Merge bitcoin/bitcoin#22824: refactor: remove RecursiveMutex cs_nBlockSequenceId 2024-03-25 11:21:49 -05:00
validation.h Merge bitcoin/bitcoin#22824: refactor: remove RecursiveMutex cs_nBlockSequenceId 2024-03-25 11:21:49 -05:00
validationinterface.cpp fix: revert "drop circular dependencies over deterministicmns in validationinterface" 2024-03-21 12:24:38 +00:00
validationinterface.h refactor: move GetListAtChainTip() calls out of CGovernanceVote 2024-03-19 15:20:59 +00:00
version.h chore: bump protocol version to 70231 2024-03-03 23:36:44 -06:00
versionbits.cpp Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
versionbits.h Merge #17829: scripted-diff: Bump copyright of files changed in 2019 2023-12-06 11:40:14 -06:00
walletinitinterface.h refactor: rename CJClientManager 2024-01-10 12:06:01 -06:00
warnings.cpp Merge #19233: Make SetMiscWarning() accept bilingual_str argument 2024-01-16 15:05:05 -06:00
warnings.h Merge #19233: Make SetMiscWarning() accept bilingual_str argument 2024-01-16 15:05:05 -06:00