bitcoin/src/interfaces
MarcoFalke 0936f35f65
Merge #15842: refactor: replace isPotentialtip/waitForNotifications by higher method
422677963a refactor: replace isPotentialtip/waitForNotifications by higher method (Antoine Riard)
edfe9438ca Add WITH_LOCK macro: run code while locking a mutex (Antoine Riard)

Pull request description:

  In Chain interface, instead of a isPotentialTip and a WaitForNotifications method, both used only once in CWallet::BlockUntilSyncedToCurrentChain, combine them in a higher WaitForNotificationsUpToTip method. Semantic should be unchanged, wallet wait for pending notifications to be processed unless block hash points to the current chain tip or a descendant.

ACKs for commit 422677:
  jnewbery:
    ACK 422677963a
  ryanofsky:
    utACK 422677963a. Only change is adding the cs_wallet lock annotation.

Tree-SHA512: 2834ff0218795ef607543fae822e5cce25d759c1a9cfcb1f896a4af03071faed5276fbe0966e0c6ed65dc0e88af161899c5b2ca358a2d24fe70969a550000bf2
2019-05-01 15:02:31 -04:00
..
README.md Suggested interfaces::Chain cleanups from #15288 2019-03-04 15:57:58 -05:00
chain.cpp Merge #15842: refactor: replace isPotentialtip/waitForNotifications by higher method 2019-05-01 15:02:31 -04:00
chain.h Merge #15842: refactor: replace isPotentialtip/waitForNotifications by higher method 2019-05-01 15:02:31 -04:00
handler.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
handler.h scripted-diff: Avoid `interface` keyword to fix windows gitian build 2018-04-07 03:42:02 -04:00
node.cpp [wallet] Move maxTxFee to wallet 2019-04-18 11:34:42 -04:00
node.h [wallet] Move maxTxFee to wallet 2019-04-18 11:34:42 -04:00
wallet.cpp Merge #15778: [wallet] Move maxtxfee from node to wallet 2019-04-27 09:28:54 -04:00
wallet.h [wallet] Move maxTxFee to wallet 2019-04-18 11:34:42 -04:00

README.md

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 #10102.

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.