- In order to use Vero, you will need to use a remote signer to manage your validator keys. The remote signer must be connected to a slashing protection database - Vero does not maintain its own slashing protection database!
Get started by using the correct version of Python - 3.12 .
Next, install the dependencies using the package manager of your choice:
pip install -r requirements.txt
You should now be able to run Vero:
python src/main.py <arguments>
You can build the image yourself using the included Dockerfile or you can use the official image.
docker run ghcr.io/serenita-org/vero:<version> <arguments>
Check out the example docker compose file.
[required] The network to use, one of mainnet,gnosis,holesky,fetch
.
fetch
is a special case where Vero uses the network specs as returned by the beacon nodes.
[required] URL of the remote signer, e.g. http://remote-signer:9000
[required] A comma-separated list of beacon node URLs, e.g. http://beacon-node-1:5052,http://beacon-node-2:5052,http://beacon-node-3:5052
A comma-separated list of beacon node URLs, e.g. http://beacon-node-1:5052,http://beacon-node-2:5052,http://beacon-node-3:5052
to
exclusively use for block proposals. When performing a block proposal duty,
only these beacon nodes will be used to produce and publish a block.
Specify the required number of beacon nodes that need to agree on the attestation data before the validators proceed to attest.
There are a few situations where you may want to change the default:
- when running against 2 beacon nodes, where you only want to use the second node as a fallback
- when running against a large client-diverse set of beacon nodes where a lower threshold (like 2 or 3 out of 6 beacon nodes agreeing) may be sufficient to avoid single-client bugs.
See #38 for more information.
Defaults to a majority of beacon nodes (>50%) agreeing.
[required] The fee recipient address to use during block proposals.
The graffiti string to use during block proposals. Defaults to an empty string.
The gas limit to be used when building blocks. Defaults to 30,000,000
.
Provide this flag to submit validator registrations to external builders.
A percentage multiplier applied to externally built blocks when comparing their value
to locally built blocks. The externally built block is only chosen if its value,
post-multiplication, is higher than the locally built block's value. Defaults to 90
.
The directory to use for storing persistent data. Defaults to /vero/data
.
The metrics server listen address. Defaults to localhost
.
The metrics server listen port. Defaults to 8000
.
Provide this flag to collect metrics from all processes. This comes with some limitations, notably no cpu and memory metrics. See https://prometheus.github.io/client_python/multiprocess/ .
The logging level to use, one of CRITICAL,ERROR,WARNING,INFO,DEBUG
. Defaults to INFO
.