3411577473
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 |
||
---|---|---|
.. | ||
man | ||
release-notes/dash | ||
.gitignore | ||
assets-attribution.md | ||
assumeutxo.md | ||
benchmarking.md | ||
bips.md | ||
bitcoin_logo_doxygen.png | ||
build-freebsd.md | ||
build-netbsd.md | ||
build-openbsd.md | ||
build-osx.md | ||
build-unix.md | ||
build-windows.md | ||
cjdns.md | ||
dash-conf.md | ||
dependencies.md | ||
descriptors.md | ||
developer-notes.md | ||
dnsseed-policy.md | ||
Doxyfile.in | ||
files.md | ||
fuzzing.md | ||
guix.md | ||
i2p.md | ||
init.md | ||
instantsend.md | ||
JSON-RPC-interface.md | ||
managing-wallets.md | ||
masternode-budget.md | ||
multiprocess.md | ||
productivity.md | ||
psbt.md | ||
README_doxygen.md | ||
README_windows.txt | ||
README.md | ||
reduce-memory.md | ||
reduce-traffic.md | ||
release-notes-154.md | ||
release-notes-5342.md | ||
release-notes-5493.md | ||
release-notes-5861.md | ||
release-notes-5965.md | ||
release-notes-5978.md | ||
release-notes-6017.md | ||
release-notes-6050.md | ||
release-notes-6078.md | ||
release-notes-6080.md | ||
release-notes-6093.md | ||
release-notes-6100.md | ||
release-notes-6106.md | ||
release-notes-6107.md | ||
release-notes-6108.md | ||
release-notes-6118.md | ||
release-notes-6140.md | ||
release-notes-14582.md | ||
release-notes-16528.md | ||
release-notes-18202.md | ||
release-notes-19200.md | ||
release-notes-19202.md | ||
release-notes-19405.md | ||
release-notes-19464.md | ||
release-notes-19469.md | ||
release-notes-19473.md | ||
release-notes-19501.md | ||
release-notes-19725.md | ||
release-notes-19776.md | ||
release-notes-20282.md | ||
release-notes-20286.md | ||
release-notes-21049.md | ||
release-notes-21056.md | ||
release-notes-21141.md | ||
release-notes-21359.md | ||
release-notes-21595.md | ||
release-notes-21602.md | ||
release-notes-21832.md | ||
release-notes-22544.md | ||
release-notes-22834.md | ||
release-notes-25355.md | ||
release-notes.md | ||
release-process.md | ||
REST-interface.md | ||
shared-libraries.md | ||
tor.md | ||
translation_process.md | ||
translation_strings_policy.md | ||
zmq.md |
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) orbin/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?
- See the Dash documentation for help and more information.
- Ask for help on Dash Discord
- Ask for help on the Dash Forum
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.
- Dependencies
- macOS Build Notes
- Unix Build Notes
- Windows Build Notes
- OpenBSD Build Notes
- NetBSD Build Notes
- Android Build Notes
Development
The Dash Core repo's root README contains relevant information on the development process and automated testing.
- Developer Notes
- Productivity Notes
- Release Notes
- Release Process
- Source Code Documentation TODO
- Translation Process
- Translation Strings Policy
- JSON-RPC Interface
- Unauthenticated REST Interface
- Shared Libraries
- BIPS
- Dnsseed Policy
- Benchmarking
Resources
- See the Dash Developer Documentation for technical specifications and implementation details.
- Discuss on the Dash Forum, in the Development & Technical Discussion board.
- Discuss on Dash Discord
- Discuss on Dash Developers Discord
Miscellaneous
- Assets Attribution
- Assumeutxo design
- dash.conf Configuration File
- CJDNS Support
- Files
- Fuzz-testing
- I2P Support
- Init Scripts (systemd/upstart/openrc)
- Managing Wallets
- PSBT support
- Reduce Memory
- Reduce Traffic
- Tor Support
- ZMQ
License
Distributed under the MIT software license.