dash/src/interfaces
Konstantin Akimov c200175ebf
Merge #6250: backport: Merge bitcoin#22217, 23025, 22362
bd67f80634 Merge bitcoin/bitcoin#22362: Drop only invalid entries when reading banlist.json (W. J. van der Laan)
8b3a486702 Merge bitcoin/bitcoin#23025: bench: update nanobench add `-min_time` (W. J. van der Laan)
d7a20b3ee6 Merge bitcoin/bitcoin#22217: refactor: Avoid wallet code writing node settings file (Samuel Dobson)

Pull request description:

  btc backport

ACKs for top commit:
  knst:
    utACK  bd67f80634
  UdjinM6:
    utACK bd67f80634

Tree-SHA512: c487760c7b4946c21103978625076dd276344c831e99452031fae9b5c6cf954a1a0d3109725ab10f3d6837a5fd1833886a7e28c88b28429c6638c82f06f54f3d
2024-09-27 00:32:20 +07:00
..
chain.h Merge bitcoin/bitcoin#22217: refactor: Avoid wallet code writing node settings file 2024-09-25 10:18:12 +05:30
coinjoin.h refactor: drop global coinJoinWalletManager 2024-01-10 12:06:04 -06:00
echo.cpp Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support 2024-07-27 13:04:24 +07:00
echo.h Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support 2024-07-27 13:04:24 +07:00
handler.cpp Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
handler.h Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
init.cpp Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support 2024-07-27 13:04:24 +07:00
init.h Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support 2024-07-27 13:04:24 +07:00
ipc.h Merge bitcoin/bitcoin#22218: multiprocess: Add ipc::Context and ipc::capnp::Context structs 2024-08-14 12:12:50 +07:00
node.h refactor: simplify implementation of RPC composite commands 2024-07-16 00:25:06 +07:00
README.md Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support 2024-07-27 13:04:24 +07:00
wallet.h Merge bitcoin/bitcoin#23591: refactor: Use underlying type of isminetype for isminefilter 2024-09-14 20:23:47 +05:30

Internal c++ interfaces

The following interfaces are defined here:

  • Chain — used by wallet to access blockchain and mempool state. Added in #14437, #14711, #15288, and #10973.

  • ChainClient — used by node to start & stop Chain clients. Added in #14437.

  • Node — used by GUI to start & stop bitcoin node. Added in #10244.

  • Wallet — used by GUI to access wallets. Added in #10244.

  • Handler — returned by handleEvent methods on interfaces above and used to manage lifetimes of event handlers.

  • Init — used by multiprocess code to access interfaces above on startup. Added in #6143.

  • Ipc — used by multiprocess code to access Init interface across processes. Added in #6143.

The interfaces above define boundaries between major components of bitcoin code (node, wallet, and gui), making it possible for them to run in different processes, and be tested, developed, and understood independently. These interfaces are not currently designed to be stable or to be used externally.