Skip to content

ssvlabs/ssv-web

Repository files navigation

Downloads Build Status Github Tag Discord


SSV - Secret Shared Validator

In order to supply a truly secure layer of your validator node, we're offering more decentralization!
The solution that we provide is called Secret Share Validator, and it's split into 2 sections

Add Validator

From a validator perspective, getting penalties (e.g., for inactivity) or worse - getting permanently slashed - must be avoided at all costs. The solution that we provide is to break the validator private keys into (N) shares using Shamir Secret Share, out of those shares we create for each share
private & public key using BLS Signature. When registering a validator, the user must select the amount of shares, and the specific operators on which the shares will run. Each share is encrypted with its respective operator key. After the operators receive the shares they start to collaborate in order to aggregate signatures to reach the full validator signature.
Our solution prevents the single point of failure issue which poses a major risk when depending on a single node.

Add Operator

The term "Operator" is our invention for people who don't want to put a collateral of 32 ETH but still want to participate in blockchain and receive rewards.
All you need to do is to run the operator node using SSV-NODE take the public key from it and register as operator.

Cli

Another option we support is a CLI, all you need to do is to run the following command with the relevant arguments, and you receive a full translation data

yarn install
yarn link
ssv-cli --filePath=<keyStore> --password=<ketStore password> --operators=[<base64 operator key>] (4 operators require)

Testing

Functional Tests

yarn test - no watching mode

yarn test:dev - run tests in watch mode

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

E2E Tests

Unzip dependencies
unzip cypress/plugins/MetaMask/metamask-chrome-9.5.0.zip
unzip cypress/integration/ssv/cli/eth2.0-deposit-cli-master.zip
Install deposit CLI dependencies

For the virtualenv users, you can create a new venv:

cd cypress/integration/ssv/cli/eth2.0-deposit-cli-master
pip3 install virtualenv
virtualenv .venv
source .venv/bin/activate

and install the dependencies:

python3 setup.py install
pip3 install -r requirements.txt
pip3 install pytest

Check that tests are passing before starting using deposit CLI for auto-generation of keystore files during running cypress:

cd cypress/integration/ssv/cli/eth2.0-deposit-cli-master
source .venv/bin/activate
python3 -m pytest .

Building

yarn build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

Linting

yarn lint

Lint checks works on every change of source code.

Also, lint happens before developer tries to commit (husky package).

Git Commits

As said upper, on every commit attempt husky runs linter to check source code.

Git Pushes

Tech Stack

  • Web3.js - BlockChain integration for Web2
  • Onboard - Integration tool to wallets
  • React 16.8 - To handle front end tasks in scale
  • React Router - For application navigation and routing
  • Mobx - A UI state management and middleware to handle async operations
  • Material UI - A React library to make styling more dynamic and easy
  • TypeScript and ESlint - For better development experience, linting errors, type checking, auto complete and more
  • Jest JS and React Test Renderer - Testing tools for React applications

Docs (TBD)

See our docs and guides here

Maintainers

License

GPLv3 © Blox SSV

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published