dash/doc
W. J. van der Laan 3411577473
Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support
84934bf70e11fe4cda1cfda60113a54895d4fdd5 multiprocess: Add echoipc RPC method and test (Russell Yanofsky)
7d76cf667eff512043a28d4407cc89f58796c42b multiprocess: Add comments and documentation (Russell Yanofsky)
ddf7ecc8dfc64cf121099fb047e1ac871de94f4c multiprocess: Add bitcoin-node process spawning support (Russell Yanofsky)
10afdf0280fa93bfffb0a7665c60dc155cd84514 multiprocess: Add Ipc interface implementation (Russell Yanofsky)
745c9cebd50fea1664efef571dc1ee1bddc96102 multiprocess: Add Ipc and Init interface definitions (Russell Yanofsky)
5d62d7f6cd48bbc4e9f37ecc369f38d5e1e0036c Update libmultiprocess library (Russell Yanofsky)

Pull request description:

  This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10).

  ---

  This PR adds basic process spawning and IPC method call support to `bitcoin-node` executables built with `--enable-multiprocess`[*].

  These changes are used in https://github.com/bitcoin/bitcoin/pull/10102 to let node, gui, and wallet functionality run in different processes, and extended in https://github.com/bitcoin/bitcoin/pull/19460 and https://github.com/bitcoin/bitcoin/pull/19461 after that to allow gui and wallet processes to be started and stopped independently and connect to the node over a socket.

  These changes can also be used to implement new functionality outside the `bitcoin-node` process like external indexes or pluggable transports (https://github.com/bitcoin/bitcoin/pull/18988). The `Ipc::spawnProcess` and `Ipc::serveProcess` methods added here are entry points for spawning a child process and serving a parent process, and being able to make bidirectional, multithreaded method calls between the processes. A simple example of this is implemented in commit "Add echoipc RPC method and test."

  Changes in this PR aside from the echo test were originally part of #10102, but have been split and moved here for easier review, and so they can be used for other applications like external plugins.

  Additional notes about this PR can be found at https://bitcoincore.reviews/19160

  [*] Note: the `--enable-multiprocess` feature is still experimental, and not enabled by default, and not yet supported on windows. More information can be found in [doc/multiprocess.md](https://github.com/bitcoin/bitcoin/blob/master/doc/multiprocess.md)

ACKs for top commit:
  fjahr:
    re-ACK 84934bf70e11fe4cda1cfda60113a54895d4fdd5
  ariard:
    ACK 84934bf. Changes since last ACK fixes the silent merge conflict about `EnsureAnyNodeContext()`. Rebuilt and checked again debug command `echoipc`.

Tree-SHA512: 52a948b5e18a26d7d7a09b83003eaae9b1ed2981978c36c959fe9a55abf70ae6a627c4ff913a3428be17400a3dace30c58b5057fa75c319662c3be98f19810c6
2024-07-27 13:04:24 +07:00
..
man docs: update manpages for 21.0 2024-07-18 12:46:31 +07:00
release-notes/dash docs: add v20.1.1 release notes 2024-04-03 13:12:29 -05:00
.gitignore Merge #10166: Ignore Doxyfile generated from Doxyfile.in template. 2019-05-19 20:43:00 -05:00
assets-attribution.md Merge #945: More dash->dashcore 2016-08-19 05:46:30 -06:00
assumeutxo.md merge bitcoin#23154: add assumeutxo notes 2024-07-23 17:45:24 +00:00
benchmarking.md Merge bitcoin/bitcoin#22292: bench, doc: benchmarking updates and fixups 2024-05-15 03:03:18 +07:00
bips.md Merge #20119: BIP155 follow-ups 2024-01-22 19:47:13 -06:00
bitcoin_logo_doxygen.png updated darkcoin logo 2015-01-13 11:55:07 -07:00
build-freebsd.md Merge bitcoin/bitcoin#24646: doc: remove unneeded documentation on basic package management on FreeBSD 2024-01-01 17:48:18 -06:00
build-netbsd.md Merge bitcoin/bitcoin#25166: doc: Add link to NetBSD release 2024-01-14 11:05:37 -06:00
build-openbsd.md Merge #20512: doc: Add bash as an OpenBSD dependency 2024-04-03 14:11:35 +07:00
build-osx.md Merge #21343: doc: revamp macOS build doc 2024-07-20 00:05:26 +07:00
build-unix.md doc: consistently use ```sh tags for correct shell highlighting 2024-07-18 01:26:14 -06:00
build-windows.md merge bitcoin#22093: Try posix-specific CXX first for mingw32 host 2024-06-25 13:39:57 +00:00
cjdns.md merge bitcoin#24555: create initial doc/cjdns.md for CJDNS how-to documentation 2024-05-29 18:07:45 +00:00
dash-conf.md Merge bitcoin/bitcoin#25883: doc: Security config warning 2024-02-29 09:35:00 -06:00
dependencies.md Merge bitcoin/bitcoin#28769: build: Update qt package up to 5.15.11 2024-05-24 13:21:05 -05:00
descriptors.md Merge bitcoin/bitcoin#25925: doc: add {import,list}descriptors to list of descriptor RPCs 2024-06-08 20:59:36 -05:00
developer-notes.md Merge #20691: ci, doc: Travis CI features and mentions cleanup 2024-03-27 00:48:26 +07:00
dnsseed-policy.md Update dnsseed-policy.md (#2751) 2019-03-08 21:21:20 +03:00
Doxyfile.in Merge #15382: util: add RunCommandParseJSON 2024-02-01 09:22:03 -06:00
files.md Merge bitcoin/bitcoin#21818: doc: fixup -coinstatsindex help, update bitcoin.conf and files.md 2024-02-27 12:01:02 -06:00
fuzzing.md Merge #20380: doc: Add instructions on how to fuzz the P2P layer using Honggfuzz NetDriver 2024-01-16 09:29:51 -06:00
guix.md Merge #20619: guix: Quality of life improvements 2023-03-26 16:50:26 -05:00
i2p.md merge bitcoin#24555: create initial doc/cjdns.md for CJDNS how-to documentation 2024-05-29 18:07:45 +00:00
init.md Merge #21075: doc: Fix markdown formatting 2024-04-11 02:25:05 +07:00
instantsend.md Report instantlock: true for transactions locked via ChainLocks (#2877) 2019-04-25 18:38:26 +03:00
JSON-RPC-interface.md merge bitcoin#19762: Allow named and positional arguments to be used together 2023-07-28 00:18:27 -05:00
managing-wallets.md Merge bitcoin/bitcoin#22523: Document about wallet backup and restoration 2023-12-11 15:48:44 -06:00
masternode-budget.md Remove all legacy/compatibility MN code (#2600) 2019-01-03 12:17:43 +03:00
multiprocess.md Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support 2024-07-27 13:04:24 +07:00
productivity.md Merge bitcoin/bitcoin#25359: doc: add distcc to productivity notes 2024-02-22 20:58:44 -06:00
psbt.md Merge #16047: doc: analyzepsbt description in doc/psbt.md 2023-02-10 23:34:57 +03:00
README_doxygen.md Merge #16912: doc: Remove Doxygen intro from src/bitcoind.cpp 2021-11-25 06:38:14 +05:30
README_windows.txt Merge #10155: build: Deduplicate version numbers 2019-06-14 01:25:59 -05:00
README.md merge bitcoin#23154: add assumeutxo notes 2024-07-23 17:45:24 +00:00
reduce-memory.md Merge bitcoin/bitcoin#21709: doc: update reduce-memory.md and bitcoin.conf -maxconnections info 2022-04-05 23:10:05 -05:00
reduce-traffic.md merge bitcoin#19191: Extract download permission from noban 2023-06-05 10:11:03 -05:00
release-notes-154.md Merge bitcoin-core/gui#154: qt: Support macOS Dark mode 2024-07-23 13:08:40 +07:00
release-notes-5342.md docs: add release notes for 5342 (#5568) 2023-09-09 12:26:36 -05:00
release-notes-5493.md docs: Added release notes for #5493 (#5556) 2023-09-07 12:06:28 -05:00
release-notes-5861.md merge bitcoin#19969: Send RPC bug fix and touch-ups 2024-03-07 09:29:09 +00:00
release-notes-5965.md chore: release notes for 5965 with wallet tool improvements 2024-04-12 12:31:48 +07:00
release-notes-5978.md merge bitcoin#22618: Small follow-ups to 21528 2024-04-12 16:55:05 +00:00
release-notes-6017.md chore: add release notes for sethdseed RPC 2024-05-10 14:28:16 +07:00
release-notes-6050.md Merge bitcoin/bitcoin#26628: RPC: Reject RPC requests with same named parameter specified multiple times 2024-06-10 11:26:11 -05:00
release-notes-6078.md rpc: don't use GetUTXOCoin in CDeterministicMN::ToJson() 2024-06-26 11:25:05 +00:00
release-notes-6080.md feat: bump protocol version to distinguish v21 from v20.1 2024-06-25 09:19:50 -05:00
release-notes-6093.md feat: introduce coinjoinsalt RPC to allow manipulating per-wallet salt 2024-07-20 05:09:25 +00:00
release-notes-6100.md chore: add release notes for composite command for whitelist 2024-07-12 00:07:55 +07:00
release-notes-6106.md chore: add release notes for "quorum platformsign" 2024-07-11 12:26:52 +07:00
release-notes-6107.md rpc: disallow coinjoin stop if there's no CoinJoin session to stop 2024-07-11 16:16:41 +00:00
release-notes-6108.md rpc: remove keypool replenishment stat and warning for descriptor wallet 2024-07-11 11:27:40 +00:00
release-notes-6118.md docs: add release notes notifying change of default branch to develop 2024-07-16 16:48:31 +00:00
release-notes-6140.md docs: add release notes for 6140 2024-07-22 10:40:57 -05:00
release-notes-14582.md Merge #19743: -maxapsfee follow-up 2024-03-18 16:01:39 +07:00
release-notes-16528.md fix: createwallet to require 'load_on_startup' for descriptor wallets 2024-07-07 21:56:16 +07:00
release-notes-18202.md Merge #18202: refactor: consolidate sendmany and sendtoaddress code 2024-05-29 13:57:02 +07:00
release-notes-19200.md Merge #19200: rpc: remove deprecated getaddressinfo fields 2024-03-16 02:39:42 +07:00
release-notes-19202.md Merge #19202: log: remove deprecated db log category 2024-05-27 21:55:48 +07:00
release-notes-19405.md Merge #19405: rpc, cli: add network in/out connections to getnetworkinfo and -getinfo 2024-03-16 02:39:45 +07:00
release-notes-19464.md Merge #19464: net: remove -banscore configuration option 2024-03-22 11:08:10 -05:00
release-notes-19469.md Merge #19469: rpc: deprecate banscore field in getpeerinfo 2024-03-22 11:08:10 -05:00
release-notes-19473.md Merge #19473: net: Add -networkactive option 2024-03-06 02:00:39 +07:00
release-notes-19501.md Merge #20043: doc: Add 19501 release notes 2024-05-29 14:03:56 +07:00
release-notes-19725.md Merge #19725: [RPC] Add connection type to getpeerinfo, improve logs 2024-05-29 14:03:55 +07:00
release-notes-19776.md merge bitcoin#19776: expose high bandwidth mode state via getpeerinfo 2024-06-10 17:31:23 +00:00
release-notes-20282.md Merge #20282: wallet: change upgradewallet return type to be an object 2024-03-07 02:06:28 +07:00
release-notes-20286.md merge bitcoin#20286: deprecate addresses and reqSigs from rpc outputs 2024-06-27 19:27:37 +00:00
release-notes-21049.md Merge #21049: Add release notes for listdescriptors RPC 2024-03-09 03:00:29 +07:00
release-notes-21056.md Merge bitcoin/bitcoin#21056: rpc: Add a -rpcwaittimeout parameter to limit time spent waiting 2024-03-22 10:29:15 -05:00
release-notes-21141.md docs: release notes for bitcoin#21141 - walletnotify %h %b 2024-07-20 00:05:26 +07:00
release-notes-21359.md merge bitcoin#21359: include_unsafe option for fundrawtransaction 2024-06-27 19:27:37 +00:00
release-notes-21595.md Merge #21595: cli: create -addrinfo 2024-04-16 09:20:32 -05:00
release-notes-21602.md Merge #21602: rpc: add additional ban time fields to listbanned 2024-04-11 02:26:04 +07:00
release-notes-21832.md merge bitcoin#21832: Implement human readable -getinfo 2024-05-26 22:26:56 +00:00
release-notes-22544.md merge bitcoin#22544: drop torv2; torv3 becomes onion per GetNetworkName() 2024-05-26 22:26:57 +00:00
release-notes-22834.md merge bitcoin#22834: respect -onlynet= when making outbound connections 2024-05-29 18:07:45 +00:00
release-notes-25355.md merge bitcoin#25355: add support for transient addresses for outbound connections 2024-05-29 11:48:37 -05:00
release-notes.md docs: add v20.1.1 release notes 2024-04-03 13:12:29 -05:00
release-process.md docs: update release process for generating seeds: new PR as a reference 2024-03-03 23:34:35 -06:00
REST-interface.md merge bitcoin#20286: deprecate addresses and reqSigs from rpc outputs 2024-06-27 19:27:37 +00:00
shared-libraries.md Merge #20577: doc: libconsensus: add missing error code description, fix NBitcoin link 2024-01-16 07:57:33 -06:00
tor.md Merge #6031: backport: merge bitcoin#23077, #22834, #24165, #24555, #24663, #24205, #24687, #25173, #24991, partial bitcoin#24468 (cjdns support) 2024-06-10 11:11:11 -05:00
translation_process.md Merge #21695: Remove no longer used contrib/bitcoin-qt.pro from the repo 2024-04-16 09:20:31 -05:00
translation_strings_policy.md Merge #16224: gui: Bilingual GUI error messages 2022-04-07 10:41:24 -05:00
zmq.md Merge #16404: qa: Test ZMQ notification after chain reorg 2024-03-18 16:01:40 +07:00

Dash Core

This is the official reference wallet for Dash digital currency and comprises the backbone of the Dash peer-to-peer network. You can download Dash Core or build it yourself using the guides below.

Running

The following are some helpful notes on how to run Dash Core on your native platform.

Unix

Unpack the files into a directory and run:

  • bin/dash-qt (GUI) or
  • bin/dashd (headless)

Windows

Unpack the files into a directory, and then run dash-qt.exe.

macOS

Drag Dash Core to your applications folder, and then run Dash Core.

Need Help?

Building

The following are developer notes on how to build Dash Core on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.

Development

The Dash Core repo's root README contains relevant information on the development process and automated testing.

Resources

Miscellaneous

License

Distributed under the MIT software license.