Main source for this: https://discord.com/channels/987504378242007100/1078719003624747108 🙏🙏 by ETS (so7ow
on Discord)
This guide mostly assumes a primary SSD and an external SSD, formatted as APFS. If you want to follow the commands verbatim, name your external SSD volume as ord-dev. You'll still need ~100 GB free on your internal disk, as only the bitcoin blocks are moved to the external SSD. This configuration allows for moving the bulk of the storage needs to the external but leaving enough in the default locations to make commands easier.
Install Homebrew from http://brew.sh/ During installation you may be prompted for a password. This is your main Mac password and you won't see any letters as you type it. After typing it, press enter to continue.
After Homebrew installation and "Next steps", run this from terminal:
brew install bitcoin
After the bitcoin installation, create your bitcoin blocks directory on your external SSD (most Macs don't have enough storage on their internal SSDs. 1 TB free for comfort.) Name the folder bitcoin
. If your external SSD volume name has a space, rename that, too. No spaces! In this guide, the external SSD has the name ord-dev
!
Run these commands in Terminal:
mkdir ~/Library/Application\ support/Bitcoin
echo blocksdir=/Volumes/ord-dev/Bitcoin > ~/Library/Application\ Support/Bitcoin/bitcoin.conf
echo txindex=1 >> ~/Library/Application\ Support/Bitcoin/bitcoin.conf
echo server=1 >> ~/Library/Application\ Support/Bitcoin/bitcoin.conf
echo blocksdir=/Volumes/ord-dev/Bitcoin\\ntxindex=1\\nserver=1\\n > ~/Library/Application\ support/Bitcoin/bitcoin.conf
(where the /ord-dev/Bitcoin
part is the actual path to the SSD and folder you created above.--
blocksdir
line!
txindex=1
If you want to be able to access any transaction with commands like gettransaction , you need to configure Bitcoin Core to build a complete transaction index, which can be achieved with the txindex option.server=1
tells Bitcoin-Qt and bitcoind to accept JSON-RPC commands, so you can query it
Confirm all settings with:
cat ~/Library/Application\ Support/Bitcoin/bitcoin.conf
In terminal:
brew services start bitcoin
and this if you want to stop it again (not yet)
brew services stop bitcoin
In the debug.log
file located in ~/Library/Application\ Support/Bitcoin/
, look for lines similar to these:
2023-11-15T13:16:47Z Default data directory /Users/username/Library/Application Support/Bitcoin
2023-11-15T13:16:47Z Using data directory /Users/username/Library/Application Support/Bitcoin
2023-11-15T13:16:47Z Config file: /Users/username/Library/Application Support/Bitcoin/bitcoin.conf
2023-11-15T13:16:47Z Config file arg: blocksdir="/Volumes/ord-dev/Bitcoin"
2023-11-15T13:16:47Z Config file arg: server="1"
2023-11-15T13:16:47Z Config file arg: txindex="1"
2023-11-15T13:16:47Z Generated RPC authentication cookie /Users/username/Library/Application Support/Bitcoin/.cookie
tail -F -n 10000 ~/Library/Application\ Support/Bitcoin/debug.log
These entries in the output confirm that the blocks dir and the configuration entries have been recognized and have taken effect. Pay attention to the cookie line. You'll need that later, so make sure you have it!
The initial block download will generally take 1+ days, depending on factors like CPU/disk/network speed. As it progresses, you'll see lines like this in the debug.log file:
2023-02-22T15:18:23Z UpdateTip: new best=00000000000000000000e2319131e7e41d3b93e8b9086fc427f2ee9383aa2686 height=777656 version=0x20004000 log2_work=94.017345 tx=807469638 date='2023-02-21T14:40:00Z' progress=0.999679 cache=2.5MiB(18835txo)
The progress=
entry tells you how far you are along. It will reach 1.000000 at completion of the initial block download and then you can leave bitcoin running as a service and proceed to the ord installation and configuration.
Run this in terminal:
bitcoin-cli getindexinfo
You should see a response like this:
{
"txindex": {
"synced": true,
"best_block_height": 839505
}
If it shows synced:false
or the block height is not current, wait longer and run the command again. If it shows synced:true
and current block height, proceed to ord installation!