2019-06-29 09:00:50 +02:00
# macOS Build Instructions and Notes
2016-06-02 10:45:11 +02:00
The commands in this guide should be executed in a Terminal application.
2019-06-29 09:00:50 +02:00
The built-in one is located in
```
/Applications/Utilities/Terminal.app
```
2012-12-12 17:52:38 +01:00
2019-06-29 09:00:50 +02:00
## Preparation
2018-06-05 15:47:25 +02:00
Install the macOS command line tools:
2012-12-12 17:52:38 +01:00
2019-06-29 09:00:50 +02:00
```shell
xcode-select --install
```
2012-12-12 17:52:38 +01:00
2016-06-21 16:32:20 +02:00
When the popup appears, click `Install` .
2017-05-02 18:48:58 +02:00
Then install [Homebrew ](https://brew.sh ).
2012-12-12 17:52:38 +01:00
2023-05-27 19:45:04 +02:00
## Dependencies
2019-06-29 09:00:50 +02:00
```shell
2021-03-03 10:07:52 +01:00
brew install automake libtool boost gmp miniupnpc pkg-config python qt@5 libevent libnatpmp qrencode
2018-09-28 09:55:46 +02:00
```
2012-12-12 17:52:38 +01:00
2023-05-27 19:45:04 +02:00
If you run into issues, check [Homebrew's troubleshooting page ](https://docs.brew.sh/Troubleshooting ).
2017-07-09 13:15:45 +02:00
See [dependencies.md ](dependencies.md ) for a complete overview.
2020-02-20 13:32:31 +01:00
2024-01-10 19:09:02 +01:00
The wallet support requires one or both of the dependencies ([*SQLite*](#sqlite) and [*Berkeley DB* ](#berkeley-db )) in the sections below.
To build Dash Core without wallet, see [*Disable-wallet mode* ](#disable-wallet-mode ).
#### SQLite
Usually, macOS installation already has a suitable SQLite installation.
Also, the Homebrew package could be installed:
```shell
brew install sqlite
```
In that case the Homebrew package will prevail.
2021-01-10 08:02:28 +01:00
If you want to build the disk image with `make deploy` (.dmg / optional), you need:
[`macdeployqtplus` ](../contrib/macdeploy/README.md ) dependencies:
```shell
pip3 install ds_store mac_alias
```
2024-01-10 19:09:02 +01:00
#### Berkeley DB
2023-04-25 05:23:50 +02:00
It is recommended to use Berkeley DB 4.8. If you have to build it yourself,
you can use [the installation script included in contrib/ ](contrib/install_db4.sh )
like so:
```shell
./contrib/install_db4.sh .
```
from the root of the repository.
2024-01-10 19:09:02 +01:00
Also, the Homebrew package could be installed:
```shell
brew install berkeley-db4
```
2017-07-09 13:15:45 +02:00
2023-05-27 19:45:04 +02:00
## Build Dash Core
2017-01-02 09:42:51 +01:00
2023-05-27 19:45:04 +02:00
1. Clone the Dash Core source code:
```shell
git clone https://github.com/dashpay/dash
cd dash
```
2. Build Dash Core:
2021-03-12 20:40:05 +01:00
2023-05-27 19:45:04 +02:00
Configure and build the headless Dash Core binaries as well as the GUI (if Qt is found).
You can disable the GUI build by passing `--without-gui` to configure.
```shell
./autogen.sh
./configure
make
```
3. It is recommended to build and run the unit tests:
```shell
make check
```
4. You can also create a `.dmg` that contains the `.app` bundle (optional):
```shell
make deploy
```
2012-12-12 17:52:38 +01:00
2024-01-10 19:09:02 +01:00
## Disable-wallet mode
2019-06-29 09:00:50 +02:00
When the intention is to run only a P2P node without a wallet, Dash Core may be
2024-01-10 19:09:02 +01:00
compiled in disable-wallet mode with:
2019-06-29 09:00:50 +02:00
```shell
./configure --disable-wallet
```
2018-09-07 14:24:19 +02:00
2024-01-10 19:09:02 +01:00
In this case there is no dependency on [*Berkeley DB* ](#berkeley-db ) and [*SQLite* ](#sqlite ).
2018-09-07 14:24:19 +02:00
Mining is also possible in disable-wallet mode using the `getblocktemplate` RPC call.
2019-06-29 09:00:50 +02:00
## Running
2012-12-12 17:52:38 +01:00
2016-06-02 10:45:11 +02:00
Dash Core is now available at `./src/dashd`
2012-12-12 17:52:38 +01:00
2018-10-28 11:41:40 +01:00
Before running, you may create an empty configuration file:
2019-06-29 09:00:50 +02:00
```shell
mkdir -p "/Users/${USER}/Library/Application Support/DashCore"
2012-12-12 17:52:38 +01:00
2019-06-29 09:00:50 +02:00
touch "/Users/${USER}/Library/Application Support/DashCore/dash.conf"
2019-04-15 14:39:37 +02:00
2019-06-29 09:00:50 +02:00
chmod 600 "/Users/${USER}/Library/Application Support/DashCore/dash.conf"
```
2012-12-12 17:52:38 +01:00
2023-05-27 19:45:04 +02:00
The first time you run dashd, it will start downloading the blockchain. This process could take many hours, or even days on slower than average systems.
2016-06-02 10:45:11 +02:00
You can monitor the download process by looking at the debug.log file:
2019-06-29 09:00:50 +02:00
```shell
tail -f $HOME/Library/Application\ Support/DashCore/debug.log
```
2014-02-26 03:35:48 +01:00
2019-06-29 09:00:50 +02:00
## Other commands:
2012-12-12 17:52:38 +01:00
2019-06-29 09:00:50 +02:00
```shell
2023-05-27 19:45:04 +02:00
./src/dashd -daemon # Starts the dash daemon.
./src/dash-cli --help # Outputs a list of command-line options.
./src/dash-cli help # Outputs a list of RPC commands when the daemon is running.
2019-06-29 09:00:50 +02:00
```
2023-05-27 19:45:04 +02:00
## Notes
* Tested on OS X 10.12 Sierra through macOS 10.15 Catalina on 64-bit Intel
processors only.
* Building with downloaded Qt binaries is not officially supported. See the notes in [#7714 ](https://github.com/bitcoin/bitcoin/issues/7714 ).