iota-transaction-stream
v1.1.0
Published
A microservice that transmits new transactions from an IOTA node to any number of listeners, in real-time, through WebSockets.
Downloads
3
Readme
IOTA Transaction Stream
A microservice that transmits new transactions from an IOTA node to any number of listeners, in real-time, through WebSockets.
This is a prerequisite for running Chatangle or Votangle.
Installation Instructions
Dependencies
You may need a C compiler installed on your system before you can install IOTA Transaction Stream. This is because the ZeroMQ dependency must compile during installation.
On CentOS:
sudo yum -y install gcc-c++ make
General Installation
For global installation:
npm install -g iota-transaction-stream
This will make IOTA Transaction Stream available as the command iota-transaction-stream
.
Installation Errors
If you get errors during install about bad permissions, your npm
was probably installed as the root user. It is recommended to install npm
as non-root, like with nvm
. A workaround is to install with the --unsafe-perm
flag like so:
npm install -g --unsafe-perm iota-transaction-stream
Usage
You must have an IRI with config ZMQ_ENABLED = true
. The ZMQ runs on port 5556
by default.
If globally installed, example:
iota-transaction-stream --iotaIP 123.45.67.890 --iotaZMQPort 5556 --webSocketServerPort 8008
If installed locally or running from an IDE:
npm run start -- --iotaIP 123.45.67.890 --iotaZMQPort 5556 webSocketServerPort 8008
Running in the background, example:
nohup iota-transaction-stream --iotaIP 123.45.67.890 --iotaZMQPort 5556 --webSocketServerPort 8008 >> output.log &
Then tail the logs with
tail -f output.log
Hooking Into The Stream
These lines of Javascript can be copy-pasted into the Chrome console after starting the server locally to test if the stream is working:
let ws = new WebSocket('ws://transactionStreamIP:8008')
ws.addEventListener('message', message => {console.log('message', message)})
ws.addEventListener('error', message => {console.error('error', message)})
ws.addEventListener('open', message => {console.log('open', message)})