ZeroMQ Publisher Plugin
This module forwards notifications to ZeroMQ endpoints depending on configuration.
The usage and setup mimics similar functionality in bitcoind for opting-in to notifications and selecting high water mark (ZMQ_HWM) preferences.
Dependencies
Twisted and txZMQ are used by this plugin.
$ sudo pip3 install twisted txzmq
Installation
For general plugin installation instructions see the repos main README.md
Usage
The plugin registeres CLI options for opting in to notifications at given endpoints. Eg running with:
$ lightningd --zmq-pub-connect=ipc:///tmp/cl-zmq \
--zmq-pub-disconnect=tcp://127.0.0.1:5555
will publish connect and disconnect notifications to the specified endpoints. The default high water mark is 1000, which is the same as bitcoind's default.
This plugin does not interpret the content of the data, merely passes it on.
The ZMQ tag used for subscribing is the UTF-8 encoded string of the notification type name string.
Eg. for the invoice_payment notification, the tag for subscribers will be b'invoice_payment'. The data published will be UTF-8 encoded JSON which comes from lightningd.
Example
example-subscriber.py is provided as an example subscriber to mirror the publishing code.
Tips and Tricks
- The plugin subscribes to all notifications under in the
NOTIFICATION_TYPE_NAMESregardless of whether they are connected to ZMQ endpoints via CLI launch. For avoiding that performance overhead, entries can be dropped from the list to avoid subscribing to them. - Unless there are changes to the plugin interfaces, notification types that are added in the future should be easy to include by adding the value to the
NOTIFICATION_TYPE_NAMESlist.