Dockerized Ravencoin Core full node, built from source with ZMQ notification support.
Pre-built images: dramirezrt/ravencoin-core-server
docker pull dramirezrt/ravencoin-core-server:latest| Tag | Ravencoin Core | Base Image | ZMQ | Notes |
|---|---|---|---|---|
v2.4 |
4.6.1 | Ubuntu 22.04 | ✅ | Built from source |
v2.3.1 |
— | Ubuntu 20.04 | ❌ | Legacy (pre-built binary) |
v2.3 |
— | Ubuntu 20.04 | ❌ | Legacy |
v2.0 |
— | Ubuntu 20.04 | ❌ | Legacy |
v1.1 |
— | Ubuntu 20.04 | ❌ | Legacy |
- Downloads and seeds the Ravencoin bootstrap file via BitTorrent
- Runs the Raven Core full node (
ravend) — built from source with ZMQ - Serves a simple status monitoring frontend
- Exposes ZMQ pub/sub endpoints for real-time block and transaction notifications
- Built from source — not pre-compiled binaries, so ZMQ and UPnP are fully supported
- ZMQ notifications — real-time
hashblockandhashtxevents for downstream services - REST API — enabled by default (
rest=1) for block/tx data retrieval - Bootstrap seeding — BitTorrent-based blockchain bootstrap for faster initial sync
- Environment variables — configurable ports, UPnP, ZMQ, and user agent
docker run -d \
-v ~/raven-node/kingofthenorth:/kingofthenorth \
-v ~/raven-node/home:/home/kingofthenorth \
-p 31413:31413/tcp \
-p 31413:31413/udp \
-p 38767:38767 \
-p 8080:8080 \
--name rvn-node dramirezrt/ravencoin-core-server:latestdocker run -d \
-v ~/raven-node/kingofthenorth:/kingofthenorth \
-v ~/raven-node/home:/home/kingofthenorth \
-e UPNP=true \
--net=host \
--name rvn-node dramirezrt/ravencoin-core-server:latestdocker run -d \
-v ~/raven-node/kingofthenorth:/kingofthenorth \
-v ~/raven-node/home:/home/kingofthenorth \
-e ZMQ=true \
-p 38767:38767 \
-p 28332:28332 \
-p 28333:28333 \
-p 8080:8080 \
--name rvn-node dramirezrt/ravencoin-core-server:latestdocker run -d \
-v ~/raven-node/kingofthenorth:/kingofthenorth \
-v ~/raven-node/home:/home/kingofthenorth \
-e UPNP=true \
-e RAVEN_PORT=8767 \
-e TRANSMISSION_PORT=51413 \
-e FRONTEND_PORT=8069 \
-e ZMQ=true \
-e UACOMMENT=MyNode \
--net=host \
--name rvn-node dramirezrt/ravencoin-core-server:latest| Variable | Default | Description |
|---|---|---|
UPNP |
false |
Enable UPnP port forwarding (use with --net=host) |
RAVEN_PORT |
38767 |
Ravencoin P2P port (official Ravencoin mainnet port is 8767) |
TRANSMISSION_PORT |
— | Custom BitTorrent port for bootstrap seeding |
FRONTEND_PORT |
8080 |
Status frontend port |
UACOMMENT |
(empty) | Custom user agent comment for the node |
ZMQ |
false |
Enable all ZMQ notifications (hashblock/hashtx on port 28332, rawblock/rawtx on port 28333) |
| Port | Protocol | Service |
|---|---|---|
38767 |
TCP | Ravencoin P2P (mainnet default) |
31413 |
TCP/UDP | BitTorrent (bootstrap seeding) |
8080 |
TCP | Status monitoring frontend |
28332 |
TCP | ZMQ hashblock notifications (when enabled) |
28333 |
TCP | ZMQ hashtx notifications (when enabled) |
| Path | Purpose |
|---|---|
/kingofthenorth/ |
Blockchain data and bootstrap files (persistent) |
/home/kingofthenorth/ |
Node home directory — config, transmission settings, logs |
raven.conf and other node settings live in /home/kingofthenorth/ inside the container.
By default this directory is ephemeral — it resets on every container rebuild/recreate.
To persist it, mount it as either a host path or a named volume:
Option A — Host path (recommended; config files are directly accessible on the host):
docker run -d \
-v ~/raven-node/kingofthenorth:/kingofthenorth \
-v /path/on/host/home:/home/kingofthenorth \
--name rvn-node dramirezrt/ravencoin-core-server:latestOn first run the container will populate
/path/on/host/homefrom the image. Editraven.confthere directly.
Option B — Named volume (managed by Docker; survives image updates without a host path):
docker volume create rvn-node-home
docker run -d \
-v ~/raven-node/kingofthenorth:/kingofthenorth \
-v rvn-node-home:/home/kingofthenorth \
--name rvn-node dramirezrt/ravencoin-core-server:latestInspect or edit files with:
docker run --rm -v rvn-node-home:/data alpine sh
Without either option, any changes to raven.conf (custom RPC credentials, ZMQ endpoints, port overrides, etc.) will be lost when the container is removed or the image is rebuilt.
# Build with default Ravencoin version (v4.6.1)
docker build -t ravencoin-core-server .
# Build with specific version
docker build --build-arg RAVENCOIN_TAG=v4.6.1 -t ravencoin-core-server:v4.6.1 .This repo uses GitHub Actions to automatically build and push Docker images on tag push.
Tags must be on the main branch and follow semver (v*).
The workflow:
- Builds
ravendfrom source inside Docker (multi-stage) - Pushes to Docker Hub as
dramirezrt/ravencoin-core-server:<tag> - Tags
latestonly for the highest semver version - Creates a GitHub Release with upstream release notes
- Syncs the README to Docker Hub
The DOCKER_HUB_TOKEN secret must be set in the repository settings.
┌─────────────────────────────────────────────────┐
│ rvn-core-server container │
│ │
│ ┌──────────┐ ┌─────────────┐ ┌───────────┐ │
│ │ ravend │ │ transmission│ │ node.js │ │
│ │ (core) │ │ (bootstrap)│ │ (frontend)│ │
│ └─────┬─────┘ └─────────────┘ └───────────┘ │
│ │ │
│ P2P :38767 HTTP :8080 │
│ ZMQ :28332 (hashblock) │
│ ZMQ :28333 (hashtx) │
│ REST :38766 (API) │
└─────────────────────────────────────────────────┘
ZMQ is disabled by default. Enable all topics with a single flag:
docker run -d \
-e ZMQ=true \
-p 28332:28332 \
-p 28333:28333 \
...| Topic | Port | Verified | Description |
|---|---|---|---|
hashblock |
28332 | ✅ | New block hash |
hashtx |
28332 | ✅ | New transaction hash |
rawblock |
28333 | ✅ | Full serialized block |
rawtx |
28333 | ✅ | Full serialized transaction |
Note:
getzmqnotificationsRPC is not available in Ravencoin Core v4.6.1.
📖 Full documentation: docs/ZMQ.md — message format, code examples (Python & Node.js), verification steps, and configuration details.
Bootstrap snapshots allow a fresh node to skip years of chain download and sync in hours instead of weeks.
On first start the container uses BitTorrent (transmission) to download the bootstrap archive, verify its integrity, and extract it before launching ravend.
| File | Date | Compressed Size | Uncompressed | Chain Coverage | Torrent |
|---|---|---|---|---|---|
rvn-bootstrap-08232022.tar.gz |
Aug 23 2022 | ~22 GB | ~30 GB | Genesis → Aug 2022 | rvn-bootstrap-08232022.tar.gz.torrent |
rvn-bootstrap-03142026.tar.gz |
Mar 14 2026 | ~32 GB | ~45 GB | Genesis → Mar 2026 | rvn-bootstrap-03142026.tar.gz.torrent |
Both snapshots ship with their checksums in rvn-bootstrap.sha512 (SHA512) and rvn-bootstrap.md5 (MD5, legacy 2022 snapshot only). On first start the container automatically picks the latest snapshot available in rvn-bootstrap.sha512.
All snapshots are verified before extraction. The node image ships with:
rvn-bootstrap.sha512— SHA512 checksums (used for all new snapshots)rvn-bootstrap.md5— MD5 legacy checksum (used as fallback for the 2022 snapshot)
If both files are present, SHA512 takes precedence.
The snapshot tool ships inside the container — no host dependencies needed:
docker exec rvn-node create_snapshotThe script:
- Sets a maintenance lock so ravend does not restart mid-backup
- Stops
ravendgracefully viaraven-cli stop - Archives
assets/,blocks/,chainstate/with livepvprogress - Generates a SHA512 checksum and appends it to
rvn-bootstrap.sha512 - Creates a
.torrentfile (2 MiB piece size, DHT, no tracker required) - Removes the maintenance lock —
ravendrestarts automatically
After running, follow the printed next-steps to commit the new .torrent and updated rvn-bootstrap.sha512 to the repo and open a PR.
Full ravend --help output is available at ravend-help.log.
- RVN: RFxiRVE8L7MHVYfNP2X9eMMKUPk83uYfpZ
- FLUX: t1ZsWHkFRfutSMCY1KPyk35k2pkNJ2GPjPU
- RVN-Electrumx-docker — ElectrumX server that connects to this node as its ravend backend
- rvn-node-frontend-docker — Real-time dashboard powered by this node's ZMQ and RPC endpoints