NOTICE! This repository has been moved under network monorepo
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.
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.
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 an example network of 100 nodes (locally):
npm run network
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
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 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"
Publishing to NPM is automated via Github Actions. Follow the steps below to publish stable (latest
) or beta
.
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
- 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