$ make build$ make full-test$ make lint-prepare
$ make lint$ ./bin/ssvnode versionWe split an eth2 BLS validator key into shares via Shamir-Secret-Sharing(SSS) to be used between the SSV nodes.
# Extract Private keys from mnemonic (optional, skip if you have the public/private keys )
$ ./bin/ssvnode export-keys --mnemonic="<mnemonic>" --index={keyIndex}
# Generate threshold keys
$ ./bin/ssvnode create-threshold --count <number of ssv nodes> --private-key <privateKey>$ ./bin/ssvnode generate-operator-keysConfig files are located in ./config directory:
Specifies general configuration regards the current node.
Example yaml - config.yaml
For a 4 node SSV network, 4 share.yaml files need to be created, based on the template file.
E.g. ./config/share1.yaml, ./config/share2.yaml, etc.
This section details the steps to run a local network of operator nodes.
In order to run a local environment, install the following:
- git
- go (1.15)
- docker
- make
$ git clone https://github.com/bloxapp/ssv.git$ make buildSplit a validator key to distribute to the nodes in your network.
See Splitting a Validator Key.
Fill the required fields in config.yaml file.
Note - there's no need to fill the OperatorPrivateKey field.
Create 4 .yaml files with the corresponding configuration, based on the template file.
The files should be placed in the ./config directory (./config/share1.yaml, ./config/share2.yaml, etc.)
Run a local network using docker
$ make docker-all $ make docker-debug In order to spin up local prometheus and grafana use:
$ make docker-monitorFor a grafana dashboard, use the SSV Operator dashboard as explained in monitoring/README.md#grafana
Please make sure your contributions adhere to our coding guidelines:
- Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
- Code must be documented adhering to the official Go commentary guidelines.
- Pull requests need to be based on and opened against the
stagebranch, and its commits should be squashed on merge.
