Guidance on Qtum Deployment

Guidance on Qtum Deployment

Overview

This guide covers deploying, running, and making RPC calls to a Qtum node. It assumes basic familiarity with command-line interfaces on Linux, macOS, or Windows. For GUI wallet usage, refer to the Qtum Wallet Tutorial.

Getting Qtum Node

1. Download Prebuilt Binaries

The simplest method is downloading the latest binaries from the Qtum releases page. Binaries are available for Linux, Windows, macOS, and Raspberry Pi.

Current stable version: 29.1 (based on Bitcoin Core 29.1)

Available platforms:

  • macOS: qtum-{version}-arm64-apple-darwin.dmg (Apple Silicon) or qtum-{version}-x86_64-apple-darwin.tar.gz (Intel)

  • Linux: qtum-{version}-x86_64-linux-gnu.tar.gz (64-bit) or qtum-{version}-aarch64-linux-gnu.tar.gz (ARM64)

  • Windows: qtum-{version}-win64.zip (64-bit) or qtum-{version}-win32.zip (32-bit)

  • Raspberry Pi: qtum-{version}-arm-linux-gnueabihf.tar.gz

After extraction, qtumd and qtum-cli binaries will be located in <install-path>/bin/.

2. Package Manager Installation (Ubuntu Linux)

Ubuntu, Debian, and Mint users can install via apt repository:

Raspberry Pi users can also use apt. See the Raspberry Pi installation guide.

After installation, qtumd and qtum-cli are available system-wide.

3. Build from Source

For the latest development version, clone the repository and build using CMake:

Build Prerequisites

Qtum uses CMake for its build system (migrated from Autotools in Bitcoin Core 29.1). Detailed instructions are available in the repository:

Minimum CMake version required: 3.22

macOS Build Example

How to Run Qtum-Qt.app with a Self-Signed Certificate on macOS

If you have downloaded Qtum-Qt.app and want to run it on macOS, you may encounter security restrictions. This guide provides specific instructions for using a self-signed certificate to allow Qtum-Qt.app to run.

Steps

1. Create a Self-Signed Certificate (Skip if you already have a certificate for code signing)

  1. Open Keychain Access (Applications > Utilities > Keychain Access).

  2. In the Keychain Access menu, select Certificate Assistant > Create a Certificate.

  3. Enter a name for your certificate (e.g., "Qtum Certificate").

  4. Set Identity Type to Self-Signed Root.

  5. Set Certificate Type to Code Signing.

  6. Click Create to generate the certificate.

2. Sign the Qtum-Qt.app Application

  1. Open Terminal.

  2. Use the following codesign command to sign Qtum-Qt.app with the newly created certificate:

    Replace "Qtum Certificate" with the name of your certificate, and ensure /path/to/Qtum-Qt.app/ points to the actual location of the app on your system. Remove Qtum from MacOS Quarantine: sudo xattr -rd com.apple.quarantine Qtum-Qt.app

  3. Open Qtum from the Applications menu

*Note: The same procedure can be used to sign qtumd, qtum-cli and other command line binaries.

4. Docker Image

For users with Docker installed, pull the official Qtum image:

For Docker deployment instructions, see How to Launch Qtum with Docker.

Key Binaries

  • qtumd: Qtum Core daemon (full node)

  • qtum-cli: Command-line interface for RPC calls

  • qtum-qt: GUI wallet application (if built with Qt support)

Deploy Qtum Node

Start the Daemon

This launches qtumd as a background daemon. To enable smart contract event logging, add the -logevents flag:

Additional Options

View all available options:

Stop the Daemon

Data Directory

The default data directory varies by platform:

  • Linux: ~/.qtum/

  • macOS: ~/Library/Application Support/Qtum/

  • Windows: %APPDATA%\Qtum\

Use the -datadir option to specify a custom location.

Initial Blockchain Sync

On first launch, Qtum will sync the entire blockchain history. This may take several hours depending on network speed and hardware. Progress and diagnostics are logged to ~/.qtum/debug.log.

Local RPC Calls

With qtumd running, use qtum-cli to interact with the node:

Example output:

List All RPC Commands

Get Help for Specific Commands

JSON-RPC Configuration

Remote RPC Setup

To enable remote RPC access, configure RPC credentials using either method:

Method 1: Configuration File

Create ~/.qtum/qtum.conf:

For more configuration options, see qtum.conf example.

Restart the node after creating or modifying qtum.conf.

Method 2: Command-Line Arguments

JSON-RPC Call Examples

Using curl

Using Postman or Similar Tools

  • URL: http://192.168.1.100:3889/

  • Method: POST

  • Headers: Content-Type: text/plain

  • Auth: Basic Auth with RPC username/password

  • Body:

Nginx Reverse Proxy (Optional)

Nginx can simplify remote RPC access by hiding credentials and providing additional security:

Configuration Example

Setup: Qtum node at 192.168.1.100, Nginx proxy at 192.168.1.50

  1. Update qtum.conf on the node:

  2. Configure Nginx on the proxy server:

  3. Make RPC calls through the proxy:

This approach enhances security by centralizing authentication and enabling request filtering.

Useful Resources

Last updated