Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lukes/nano-stream-ws
A tiny and performant websocket server that streams block data from a nano currency node
https://github.com/lukes/nano-stream-ws
cryptocurrency nano nanocurrency nodejs rpc server stream streaming websocket websocket-server websockets
Last synced: 2 months ago
JSON representation
A tiny and performant websocket server that streams block data from a nano currency node
- Host: GitHub
- URL: https://github.com/lukes/nano-stream-ws
- Owner: lukes
- License: mit
- Created: 2018-04-30T02:41:16.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-07-11T11:07:54.000Z (over 1 year ago)
- Last Synced: 2024-11-14T21:40:05.266Z (3 months ago)
- Topics: cryptocurrency, nano, nanocurrency, nodejs, rpc, server, stream, streaming, websocket, websocket-server, websockets
- Language: JavaScript
- Homepage:
- Size: 38.1 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# nano-stream-ws
[![npm version](https://badge.fury.io/js/nano-stream-ws.svg)](https://badge.fury.io/js/nano-stream-ws)
A tiny and performant websocket server that streams block data from a [nano currency](https://nano.org/) node.
It builds on the socket stream of block data set up by the [nano-stream-x](https://github.com/lukes/nano-stream-x) library.
## Installation
Install both [`nano-stream-x`](https://github.com/lukes/nano-stream-x) and `nano-stream-ws` as global packages:
npm install --global nano-stream-x
npm install --global nano-stream-ws## Usage
### Start the stream
nano-stream-x
This will start a streaming server on `127.0.0.1:3000`. To override these:
nano-stream-x host=ip6-localhost port=3001
### Start the websocket server
nano-stream-ws
The websocket server will bind to host `0.0.0.0` on port `8080`. To override these:
nano-stream-ws host="127.0.0.1" port=8081
### Configure your Nano node to send data to nano-stream-x
Your Nano node is easily configured to send block processing data to a server (in this case `nano-stream-x`). See the [wiki article](https://github.com/lukes/nano-stream-x/wiki/Configure-your-Nano-node-to-send-data-to-the-nano-stream-x) (external link) for how to set this up.
### Authentication
By default the websocket server will accept connections from anywhere. You may wish to lock down the connections by using a token standard called [JWT](https://jwt.io/introduction/). If the `jwt_secret` argument is passed, the server will expect a client to connect with a JWT.
nano-stream-ws jwt_secret=my_secret
See [using JWT with nano-stream-ws](https://github.com/lukes/nano-stream-ws/wiki/Authenticating-with-JSON-Web-Tokens-(JWT)) for more on what should be in the JWT token.
### Whitelisting
Use the `origin_whitelist` argument to restrict connections from specific domains. Note that this is not a particularly secure measure as people can set referrer origin headers themselves, but can be used if you wish to try to lock down connections somewhat without any guarantees.
nano-stream-ws origin_whitelist=localhost,*.mydomain.com
### See
* [Running in production](https://github.com/lukes/nano-stream-ws/wiki/Running-in-production) wiki page