# iota-transaction-stream

> A microservice that transmits new transactions from an IOTA node to any number of listeners, in real-time, through WebSockets.

Latest version **1.1.0** (published 2018-07-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install iota-transaction-stream
pnpm add iota-transaction-stream
yarn add iota-transaction-stream
bun add iota-transaction-stream
```

Provides the command `iota-transaction-stream`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2018-07-19 |
| First published | 2018-05-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 12 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 7 |
| Author | Peter Ryszkiewicz |
| Maintainers | prizz |
| Keywords | iota |

## Links

- npm: https://www.npmjs.com/package/iota-transaction-stream
- Repository: https://github.com/pRizz/IOTA-Transaction-Stream
- Homepage: https://github.com/pRizz/IOTA-Transaction-Stream#readme
- Issues: https://github.com/pRizz/IOTA-Transaction-Stream/issues
- npm.io page: https://npm.io/package/iota-transaction-stream

## Dependencies (4)

- [ws](https://npm.io/package/ws.md) ^5.2.1
- [zeromq](https://npm.io/package/zeromq.md) ^4.6.0
- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [iota.lib.js](https://npm.io/package/iota.lib.js.md) ^0.4.7

## Recent versions

- 1.1.0 (latest) — 2018-07-19
- 1.0.3 — 2018-07-02
- 1.0.2 — 2018-05-14

## 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:

```bash
sudo yum -y install gcc-c++ make
```

## General Installation
For global installation:

```bash
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:

```bash
npm install -g --unsafe-perm iota-transaction-stream
```

# Usage
You must have an [IRI](https://github.com/iotaledger/iri) with config `ZMQ_ENABLED = true`. The ZMQ runs on port `5556` by default.

If globally installed, example:

```bash
iota-transaction-stream --iotaIP 123.45.67.890 --iotaZMQPort 5556 --webSocketServerPort 8008
```

If installed locally or running from an IDE:

```bash
npm run start -- --iotaIP 123.45.67.890 --iotaZMQPort 5556 webSocketServerPort 8008
```

Running in the background, example: 

```bash
nohup iota-transaction-stream --iotaIP 123.45.67.890 --iotaZMQPort 5556 --webSocketServerPort 8008 >> output.log &
```

Then tail the logs with 

```bash
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:

```Javascript
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)})
```

---
_Source: https://npm.io/package/iota-transaction-stream · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
