Why does P2Pool require ZMQ on monerod?
P2Pool needs ZMQ so your Monero node can tell it immediately when the main blockchain changes, especially when a new block arrives. This lets P2Pool update the work you are mining quickly, instead of repeatedly asking your node whether anything has changed.
What ZMQ does in this setup
monerod is the software that runs your Monero node. It checks blocks and keeps a local copy of the blockchain—the shared record of Monero transactions.
ZMQ, short for ZeroMQ, is a messaging system. In this setup, it gives monerod a way to send live notifications to P2Pool.
Think of it as a doorbell. Without notifications, P2Pool would have to keep checking the door. With ZMQ, your node rings the bell when there is something new to handle.
This is a local communication feature, not a separate mining service. You do not need a ZMQ account, subscription, or payment.
Why fast notifications matter for mining
Your mining work is built on top of a particular Monero block. When the network accepts another block, your mining software needs fresh work that builds on the new chain tip—the latest block in the chain.
If that update is delayed, your computer can spend time working on an outdated block. A result found during that delay might no longer help extend the accepted chain. This is often called stale work.
Monero produces a block about every two minutes on average, but blocks do not arrive on a fixed schedule. P2Pool needs to respond when they actually arrive.
ZMQ helps shorten that reaction time. It does not make your processor calculate faster or guarantee that every result will be useful. It helps keep your calculations pointed at current work.
Why the normal node connection is not enough
P2Pool also uses your node’s RPC interface. RPC means “remote procedure call”; in everyday terms, it lets one program ask another program for information or request an action.
The two connections have different jobs:
- RPC: P2Pool requests information, such as a block template—the starting data used to build a candidate block—and submits found blocks.
- ZMQ: Your node pushes notifications to P2Pool when relevant blockchain events happen.
ZMQ does not replace RPC. It complements it. RPC handles requests and responses, while ZMQ supplies the prompt notification that tells P2Pool to react.
ZMQ also does not manage your wallet or distribute mining rewards.
What you need to enable
For P2Pool and monerod running on the same computer, a common monerod startup option is:
--zmq-pub tcp://127.0.0.1:18083
This enables the ZMQ publisher on port 18083. P2Pool must be configured to connect to that same port. The publisher option matters: another setting with “ZMQ” in its name is not necessarily interchangeable.
The address 127.0.0.1 means “this computer only.” You do not need to expose this port to the internet for a same-computer setup.
If P2Pool runs on another computer you control, it needs a reachable address and appropriate firewall settings. Keep access limited to trusted machines rather than opening the endpoint publicly.
The bottom line
P2Pool requires ZMQ for timely blockchain notifications from monerod. RPC provides the data and submission functions; ZMQ tells P2Pool when to refresh its work, helping you avoid wasting processing time on an outdated chain tip.
