|
9 | 9 | - [Table of Contents](#table-of-contents) |
10 | 10 | - [The Project](#the-project) |
11 | 11 | - [How to use the testnet](#how-to-use-the-testnet) |
| 12 | + - [Register as an Aligned operator in testnet](#register-as-an-aligned-operator-in-testnet) |
12 | 13 | - [Local Devnet Setup](#local-devnet-setup) |
13 | 14 | - [Deploying Aligned Contracts to Holesky or Testnet](#deploying-aligned-contracts-to-holesky-or-testnet) |
14 | 15 | - [Metrics](#metrics) |
@@ -118,6 +119,111 @@ aligned \ |
118 | 119 | --conn wss://batcher.alignedlayer.com |
119 | 120 | ``` |
120 | 121 |
|
| 122 | +## Register as an Aligned operator in testnet |
| 123 | + |
| 124 | +### Requirements |
| 125 | + |
| 126 | +> [!NOTE] |
| 127 | +> You must be whitelisted to become an Aligned operator. |
| 128 | +
|
| 129 | +This guide assumes you are already [registered as an operator with EigenLayer](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation). |
| 130 | + |
| 131 | +Ensure you have the following installed: |
| 132 | + |
| 133 | +- [Go](https://go.dev/doc/install) |
| 134 | +- [Rust](https://www.rust-lang.org/tools/install) |
| 135 | +- [Foundry](https://book.getfoundry.sh/getting-started/installation) |
| 136 | + |
| 137 | +To install foundry, run: |
| 138 | + |
| 139 | +```bash |
| 140 | +make install_foundry |
| 141 | +foundryup |
| 142 | +``` |
| 143 | + |
| 144 | +#### Install the Operator Binary |
| 145 | + |
| 146 | +To install the operator binary, run: |
| 147 | + |
| 148 | +```bash |
| 149 | +make build_operator |
| 150 | +``` |
| 151 | + |
| 152 | +#### Update the operator |
| 153 | + |
| 154 | +To update the operator, first stop the process running the operator (if there is any) and then run: |
| 155 | + |
| 156 | +```bash |
| 157 | +git pull |
| 158 | +make build_operator |
| 159 | +``` |
| 160 | + |
| 161 | +#### Configuration |
| 162 | + |
| 163 | +Update the following placeholders in `./config-files/config-operator.yaml`: |
| 164 | + |
| 165 | +- `"<ecdsa_key_store_location_path>"` |
| 166 | +- `"<bls_key_store_location_path>"` |
| 167 | +- `"<operator_address>"` |
| 168 | +- `"<earnings_receiver_address>"` |
| 169 | + |
| 170 | +`"<ecdsa_key_store_location_path>"` and `"<bls_key_store_location_path>"` are the paths to your keys generated with the EigenLayer CLI, `"<operator_address>"` and `"<earnings_receiver_address>"` can be found in the `operator.yaml` file created in the EigenLayer registration process. |
| 171 | + |
| 172 | +### Deposit Strategy Tokens |
| 173 | + |
| 174 | +We are using [WETH](https://holesky.eigenlayer.xyz/restake/WETH) as the strategy token. |
| 175 | + |
| 176 | +To do so there are 2 options, either doing it through Eigen website, and following their guide, or running the commands specified by us below. |
| 177 | + |
| 178 | +The eigen guide can be found [here](https://docs.eigenlayer.xyz/eigenlayer/restaking-guides/restaking-user-guide/liquid-restaking/restake-lsts). |
| 179 | + |
| 180 | +You will need to stake a minimum of a 1000 Wei in WETH. We recommend to stake a maximium amount of 10 Eth. |
| 181 | + |
| 182 | +If you have Eth and need to convert it to WETH you can use the following command, that will convert 1 Eth to WETH. Change the parameter in ```---value``` if you want to wrap a different amount: |
| 183 | + |
| 184 | +```bash |
| 185 | +cast send 0x94373a4919B3240D86eA41593D5eBa789FEF3848 --rpc-url https://ethereum-holesky-rpc.publicnode.com --private-key <private_key> --value 1ether |
| 186 | +``` |
| 187 | + |
| 188 | +`<private_key>` is the one specified in the output when generating your keys with the EigenLayer CLI. |
| 189 | + |
| 190 | +Finally, to end the staking process, you need to deposit into the strategy, as shown in the Eigen guide, or alternatively, you can run the following command to deposit one WETH: |
| 191 | + |
| 192 | +```bash |
| 193 | +./operator/build/aligned-operator deposit-into-strategy --config ./config-files/config-operator.yaml --strategy-address 0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9 --amount 1000000000000000000 |
| 194 | +``` |
| 195 | + |
| 196 | +If you don't have Holesky Eth, these are some useful faucets: |
| 197 | + |
| 198 | +- [Google Cloud for Web3 Holesky Faucet](https://cloud.google.com/application/web3/faucet/ethereum/holesky) |
| 199 | +- [Holesky PoW Faucet](https://holesky-faucet.pk910.de/) |
| 200 | + |
| 201 | +### Register as an operator with Aligned |
| 202 | + |
| 203 | +To register the operator with Aligned, run: |
| 204 | + |
| 205 | +```bash |
| 206 | +./operator/build/aligned-operator register --config ./config-files/config-operator.yaml |
| 207 | +``` |
| 208 | + |
| 209 | +### Start the operator |
| 210 | + |
| 211 | +To start the Aligned operator, run: |
| 212 | + |
| 213 | +```bash |
| 214 | +./operator/build/aligned-operator start --config ./config-files/config-operator.yaml |
| 215 | +``` |
| 216 | + |
| 217 | +### Unregister the operator from Aligned |
| 218 | + |
| 219 | +To unregister the Aligned operator, run: |
| 220 | + |
| 221 | +```bash |
| 222 | +cast send --rpc-url https://ethereum-holesky-rpc.publicnode.com --private-key <private_key> 0x3aD77134c986193c9ef98e55e800B71e72835b62 'deregisterOperator(bytes)' 0x00 |
| 223 | + ``` |
| 224 | + |
| 225 | + `<private_key>` is the one specified in the output when generating your keys with the EigenLayer CLI. |
| 226 | + |
121 | 227 | ## Local Devnet Setup |
122 | 228 |
|
123 | 229 | ### Dependencies |
|
0 commit comments