Lighter version of the eosio zmq_plugin
The following configuration statements in config.ini
are recognized:
Make sure zmq is loaded after the chain plugin.
plugin = eosio::chain_plugin
plugin = eosio::zmq_plugin
-
zmq-enable-actions = true/false
-- enable action output (default: false) -
zmq-enable-transactions = true/false
-- enable transactions output (default: false) -
zmq-action-blacklist = CODE::ACTION
-- filter out a specific action
Action onblock
in eosio
account is ignored and is not producing a
ZMQ event. These actions are generated every 0.5s, and ignored in order
to save the CPU resource.
Both socket types are disabled by default, you need to explicitly enable them
-
zmq-enable-push-socket = true/false
-- enables sending messages on push/pull pattern (blocking)- If multiple clients are connected, messages will be distributed in a round-robin fashion to the clients
-
zmq-sender-bind = ENDPOINT
- specifies the PUSH socket binding endpoint.
- Default value:
tcp://127.0.0.1:5556
.
-
zmq-enable-pub-socket = true/false
-- enables sending messages on pub/sub pattern (non-blocking)- In the case multiple subscribers are connected all messages will be sent to all subscribers
-
zmq-publisher-bind = ENDPOINT
- specifies the PUSH socket binding endpoint.
- Default value:
tcp://127.0.0.1:5557
.
-
zmq-whitelist-accounts-file = FILENAME
-- whilelist accounts from a file (one account name per line) -
zmq-whitelist-account = ACCOUNT
-- sets up a whitelist, so that only traces for specified accounts are exported. Multiple options define multiple accounts to trace. If the account is a contract, all its actions (including inline actions) are exported. Also all transfers to and from the account, system actions, and third-party notifications are triggering the trace export. Whitelisted accounts will override the blacklist. -
zmq-use-bloom-filter
-- WARNING: experimental bloom filter, optimized for large lists.
Example to set a new whitelist
curl -sL -X POST -d '["eosio.token","eosio","eosio.forum"]' http://127.0.0.1:8888/v1/zmq/set_whitelist
Get the current whitelist with
curl -sL http://127.0.0.1:8888/v1/zmq/get_whitelist
Clone the zmq_plugin repo:
apt-get install -y pkg-config libzmq5-dev libnorm-dev
mkdir ${HOME}/build
cd ${HOME}/build/
git clone https://github.com/eosrio/eos_zmq_plugin.git
Change to the eos repository folder and run:
LOCAL_CMAKE_FLAGS="-DEOSIO_ADDITIONAL_PLUGINS=${HOME}/build/eos_zmq_plugin" ./scripts/eosio_build.sh
This sample code uses the zeromq prebuilt bindings for Node.js.
cd reader
npm install
node reader.js