Changeset View
Changeset View
Standalone View
Standalone View
doc/zmq.md
Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | |||||
ZeroMQ endpoint specifiers for TCP (and others) are documented in the | ZeroMQ endpoint specifiers for TCP (and others) are documented in the | ||||
[ZeroMQ API](http://api.zeromq.org/4-0:_start). | [ZeroMQ API](http://api.zeromq.org/4-0:_start). | ||||
Client side, then, the ZeroMQ subscriber socket must have the | Client side, then, the ZeroMQ subscriber socket must have the | ||||
ZMQ_SUBSCRIBE option set to one or either of these prefixes (for | ZMQ_SUBSCRIBE option set to one or either of these prefixes (for | ||||
instance, just `hash`); without doing so will result in no messages | instance, just `hash`); without doing so will result in no messages | ||||
arriving. Please see [`contrib/zmq/zmq_sub.py`](/contrib/zmq/zmq_sub.py) for a working example. | arriving. Please see [`contrib/zmq/zmq_sub.py`](/contrib/zmq/zmq_sub.py) for a working example. | ||||
The ZMQ_PUB socket's ZMQ_TCP_KEEPALIVE option is enabled. This means that | |||||
the underlying SO_KEEPALIVE option is enabled when using a TCP transport. | |||||
The effective TCP keepalive values are managed through the underlying | |||||
operating system configuration and must be configured prior to connection establishment. | |||||
For example, when running on GNU/Linux, one might use the following | |||||
to lower the keepalive setting to 10 minutes: | |||||
sudo sysctl -w net.ipv4.tcp_keepalive_time=600 | |||||
Setting the keepalive values appropriately for your operating environment may | |||||
improve connectivity in situations where long-lived connections are silently | |||||
dropped by network middle boxes. | |||||
## Remarks | ## Remarks | ||||
From the perspective of bitcoind, the ZeroMQ socket is write-only; PUB | From the perspective of bitcoind, the ZeroMQ socket is write-only; PUB | ||||
sockets don't even have a read function. Thus, there is no state | sockets don't even have a read function. Thus, there is no state | ||||
introduced into bitcoind directly. Furthermore, no information is | introduced into bitcoind directly. Furthermore, no information is | ||||
broadcast that wasn't already received from the public P2P network. | broadcast that wasn't already received from the public P2P network. | ||||
No authentication or authorization is done on connecting clients; it | No authentication or authorization is done on connecting clients; it | ||||
Show All 13 Lines |