streamr-network
v36.0.0
Published
Minimal and extendable implementation of the Streamr Network network node.
Downloads
579
Maintainers
Keywords
Readme
streamr-network
An extendible implementation of the server-side Streamr Protocol logic written in TypeScript. The package mostly acts as a library for other packages wishing to implement a broker node, but additionally provides a full tracker executable, and a stripped-down network node executable.
The primary executable for running a broker node in the Streamr Network resides in the streamr-broker package. Although streamr-network contains a fully-operational minimal network node implementation, we recommend running the node executable found in streamr-broker as it includes useful client-facing features for interacting with the Streamr Network.
@streamr/network-tracker contains the code repository to develop and run the Trackers required by the Network Nodes for peer discovery.
The wiki outlines the technical and architectural decisions of the project. It provides thorough explanations of some the more involved features. A glossary is also included.
Table of Contents
Install
Prerequisites are Node.js 14.x
and npm version >=6.14
.
You can install streamr-network as a library in your project using npm:
npm install streamr-network --save
To install streamr-network system-wide:
npm install streamr-network --global
Run
Run an example network of 100 nodes (locally):
npm run network
Develop
Install dependencies:
npm ci
Run the tests:
npm run test
To build project:
npm run build
We use eslint for code formatting:
npm run eslint
Code coverage:
npm run coverage
Debug
To get all debug messages:
LOG_LEVEL=debug
... or adjust debugging to desired level:
LOG_LEVEL=[debug|info|warn|error]
To disable all logs
NOLOG=true
To get logs from the internal node-datachannel library:
NODE_DATACHANNEL_LOG_LEVEL=[Verbose|Debug|Info|Warning|Error|Fatal]
By default: NODE_DATACHANNEL_LOG_LEVEL=Fatal
Regenerate self-signed certificate fixture
To regenerate self signed certificate in ./test/fixtures
run:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 36500 -nodes -subj "/CN=localhost"
Release
Publishing to NPM is automated via Github Actions. Follow the steps below to publish stable (latest
) or beta
.
Publishing stable (latest)
git checkout master && git pull
- Update version with either
npm version [patch|minor|major]
. Use semantic versioning https://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. git push --follow-tags
- Wait for Github Actions to run tests
- If tests passed, Github Actions will publish the new version to NPM
Publishing beta
- Update version with either
npm version [prepatch|preminor|premajor] --preid=beta
. Use semantic versioning https://semver.org/. Files package.json and package-lock.json will be automatically updated, and an appropriate git commit and tag created. git push --follow-tags
- Wait for Github Actions to run tests
- If tests passed, Github Actions will publish the new version to NPM