For support contact @EulerLagrange217 on telegram
Node Specs Recommended:
The Opacity node must be run with a Intel SGX with SGX2 enabled. If you want to use a cloud provider, please use one of these:
- Azure: Standard_DC2s_v2 is recommended
- OVH
- Fleek Network
- IBM
We recommend you use Ubuntu 22.04
We DO NOT support AWS Enclaves!
git clone https://github.com/OpacityLabs/opacity-avs-operator-setup && cd opacity-avs-operator-setup
First we should check you are on a valid SGX machine.
Go to Fortanix and download the binary for your operating system.
For Ubuntu 22.04:
wget https://download.fortanix.com/sgx-detect/ubuntu22.04/sgx-detect?_gl=1*1saf6me*_gcl_au*NDAwNTE3NzE0LjE3MTk1MjQyNDQ -O sgx-detect
chmod +x sgx-detect
sudo ./sgx-detect
You should see:
If you see any red on the output, please follow the guide here: SGX Guide
otherwise contact @EulerLagrange217 on telegram
This step might be optional, so read carefully.
The binaries for the two CLI tools are provided bin folder of this repo. Since these binaries will handle private keys or may not execute correctly we've provided instructions to build them yourself in: CLI Guide
Before we can run a node, you must register your keys as an operator with EigenLayer mainnet. Please follow this guide: Register Operator Guide
Here is an example operator for our AVS on mainnet: 0xWildhare
Using docker will make it much easier to manage the lifetime of your node operations, as well as seamlessly apply updates.
Use this guide: Docker Install Guide
There are a few values you must set manually in config/mainnet/opacity.mainnet.config.yaml (or for holesky)
# Set these
operator_address:
eth_rpc_url:
node_public_ip:
The OPERATOR_ECDSA_KEY_PASSWORD and OPERATOR_ECDSA_KEY_FILE environment variables are optional, but the node will not automatically register to the AVS if they are not provided.
#! Make sure these are correct
export OPERATOR_ECDSA_KEY_PASSWORD="your password" # optional
export OPERATOR_BLS_KEY_PASSWORD="your password"
#! Make sure these are correct
export OPERATOR_ECDSA_KEY_FILE=$HOME/.eigenlayer/operator_keys/opacity.ecdsa.key.json # optional
export OPERATOR_BLS_KEY_FILE=$HOME/.eigenlayer/operator_keys/opacity.bls.key.json
Run:
make mainnet-start-node
OR
# Make sure you're on the latest image
docker pull opacitylabseulerlagrange/opacity-avs-node:latest
docker run -it \
--device /dev/sgx_enclave \
--device /dev/sgx_provision \
--volume $OPERATOR_ECDSA_KEY_FILE:/opacity-avs-node/config/opacity.ecdsa.key.json \
--volume $OPERATOR_BLS_KEY_FILE:/opacity-avs-node/config/opacity.bls.key.json \
--volume ./config/mainnet/opacity.mainnet.config.yaml:/opacity-avs-node/config/opacity.config.yaml \
-e OPERATOR_ECDSA_KEY_PASSWORD=$OPERATOR_ECDSA_KEY_PASSWORD \
-e OPERATOR_BLS_KEY_PASSWORD=$OPERATOR_BLS_KEY_PASSWORD \
-p 7047:7047 opacitylabseulerlagrange/opacity-avs-node:latest
add a -d
to start it in the background.
This should start off the container
To check if it is still alive run:
docker container ls -la
To get the logs from a container
docker logs --since=1h <container-id>
If all looks good go to https://your-node-public-ip:7047
You should see:
Once your container is running, we've included some commands to view the logs.
Run:
make show-node-logs
OR
docker logs --since=1h opacity-avs
The following command will also dump all the logs into a opacity-avs-node.log
file:
make dump-node-logs
OR
docker logs opacity-avs >& opacity-avs-node.log