|  | 
| 1 | 1 | ## Mainnet | 
| 2 | 2 | 
 | 
| 3 |  | -Head over to our [EigenDA operator guides](https://docs.eigenlayer.xyz/eigenda/operator-guides/overview) for installation instructions and more details. | 
|  | 3 | +Head over to our [EigenDA operator guides](https://docs.eigenlayer.xyz/eigenda/operator-guides/overview) for installation instructions and more details. | 
|  | 4 | + | 
|  | 5 | + | 
|  | 6 | +## Blazar (EigenDA V2) Migration | 
|  | 7 | +Operators running node version `<=v0.8.6` will need to define new v2 specific environment variables, expose 2 new ports, and update their socket registration as part of the migration to v2. | 
|  | 8 | + | 
|  | 9 | +## Migration Steps | 
|  | 10 | +### 1. Update `.env` with v2 specific environment variables | 
|  | 11 | +``` | 
|  | 12 | +NODE_V2_RUNTIME_MODE=v1-and-v2 | 
|  | 13 | +
 | 
|  | 14 | +NODE_V2_DISPERSAL_PORT=32006 | 
|  | 15 | +NODE_V2_RETRIEVAL_PORT=32007 | 
|  | 16 | +
 | 
|  | 17 | +# Internal ports for Nginx reverse proxy | 
|  | 18 | +NODE_INTERNAL_V2_DISPERSAL_PORT=${NODE_V2_DISPERSAL_PORT} | 
|  | 19 | +NODE_INTERNAL_V2_RETRIEVAL_PORT=${NODE_V2_RETRIEVAL_PORT} | 
|  | 20 | +``` | 
|  | 21 | + | 
|  | 22 | +### 2. Update `MAIN_SERVICE_IMAGE` | 
|  | 23 | +``` | 
|  | 24 | +MAIN_SERVICE_IMAGE=ghcr.io/layr-labs/eigenda/opr-node:0.9.0-rc.4 | 
|  | 25 | +``` | 
|  | 26 | + | 
|  | 27 | +### 3. Update socket registration | 
|  | 28 | +EigenDA v2 adds new ports to the socket registration. Socket registration update is required to receive v2 traffic. | 
|  | 29 | + | 
|  | 30 | +Ensure that you are using the latest version of the [eigenda-operator-setup](https://github.com/Layr-Labs/eigenda-operator-setup/releases) before updating the socket. | 
|  | 31 | +``` | 
|  | 32 | +(eigenda-operator-setup) > ./run.sh update-socket | 
|  | 33 | +You are about to update your socket to: 23.93.87.155:32005;32004;32006;32007 | 
|  | 34 | +Confirm? [Y/n] | 
|  | 35 | +``` | 
|  | 36 | + | 
|  | 37 | +### 4. Restart the node and monitor for reachability checks | 
|  | 38 | +The node will check reachability of v1 & v2 sockets. If reachability checks are failing, check that the new ports are open and accessible. | 
|  | 39 | +``` | 
|  | 40 | +Feb 20 19:47:07.861 INF node/node.go:743 Reachability check v1 - dispersal socket ONLINE component=Node status="node.Dispersal is available" socket=operator.eigenda.xyz:32001 | 
|  | 41 | +Feb 20 19:47:07.861 INF node/node.go:750 Reachability check v1 - retrieval socket ONLINE component=Node status="node.Retrieval is available" socket=operator.eigenda.xyz:32002 | 
|  | 42 | +Feb 20 19:47:07.867 INF node/node.go:743 Reachability check v2 - dispersal socket ONLINE component=Node status="validator.Dispersal is available" socket=operator.eigenda.xyz:32003 | 
|  | 43 | +Feb 20 19:47:07.867 INF node/node.go:750 Reachability check v2 - retrieval socket ONLINE component=Node status="validator.Retrieval is available" socket=operator.eigenda.xyz:32005 | 
|  | 44 | +``` | 
|  | 45 | + | 
|  | 46 | +### 5. Confirm v2 StoreChunks requests are being served | 
|  | 47 | +``` | 
|  | 48 | +Feb 20 19:50:36.741 INF grpc/server_v2.go:140 new StoreChunks request batchHeaderHash=873ac1c7faeec0f1e5c886142d0b364a94b3e906f1b4b4f1b0466a5f79cecefb numBlobs=14 referenceBlockNumber=3393054 | 
|  | 49 | +Feb 20 19:50:41.765 INF grpc/server_v2.go:140 new StoreChunks request batchHeaderHash=76873d64609d50aaf90e1c435c9278c588f1a174a4c0b4a721438a7d44bb2f1e numBlobs=18 referenceBlockNumber=3393054 | 
|  | 50 | +Feb 20 19:50:46.760 INF grpc/server_v2.go:140 new StoreChunks request batchHeaderHash=8182f31c9b58e04f0a09dfbf1634a73e47a660b441f65c7a35ef9e7afd064493 numBlobs=16 referenceBlockNumber=3393054 | 
|  | 51 | +
 | 
|  | 52 | +``` | 
|  | 53 | + | 
|  | 54 | +## V2 Remote BLS Signer API Migration | 
|  | 55 | +__Breaking Change:__ With the release of EigenDA Blazar (v2), the the node software has been upgraded to use the latest [cerberus](https://github.com/Layr-Labs/cerberus) remote BLS signer release. | 
|  | 56 | + | 
|  | 57 | +This change requires the operator to define the `NODE_BLS_SIGNER_API_KEY` environment variable. | 
|  | 58 | + | 
|  | 59 | +Follow the steps from the [cerberus setup guide](https://github.com/Layr-Labs/cerberus?tab=readme-ov-file#remote-signer-implementation-of-cerberus-api) to create an API key. | 
|  | 60 | + | 
|  | 61 | + | 
|  | 62 | +## V2 Environment Variable Reference | 
|  | 63 | + | 
|  | 64 | +### `EIGENDA_RUNTIME_MODE` | 
|  | 65 | +This environment variable will be used to determine the runtime mode of the EigenDA node. | 
|  | 66 | + | 
|  | 67 | +- `v1-and-v2`: The node will serve both v1 and v2 traffic (default) | 
|  | 68 | +- `v2-only`: The node will serve v2 traffic only | 
|  | 69 | +- `v1-only`: The node will serve v1 traffic only | 
|  | 70 | + | 
|  | 71 | +The `v1-only` & `v2-only` modes are intended for isolating traffic to separate validator instances - where 1 instance serves v1 traffic and a second instance serves v2 traffic. | 
|  | 72 | + | 
|  | 73 | +### `EIGENDA_V2_DISPERSAL_PORT` | 
|  | 74 | +<ins>Operators must publically expose this port</ins>. This port will be used to listen for dispersal requests from the EigenDA v2 API. IP whitelisting is no longer required with v2. | 
|  | 75 | + | 
|  | 76 | +### `EIGENDA_V2_RETRIEVAL_PORT` | 
|  | 77 | +<ins>Operators must publically expose this port</ins>. This port will be used to listen for retrieval requests from the EigenDA v2 API. | 
|  | 78 | + | 
|  | 79 | +### `EIGENDA_INTERNAL_V2_DISPERSAL_PORT` | 
|  | 80 | +This port is intended for Nginx reverse proxy use. It is not required if the operator is not using a reverse proxy. | 
|  | 81 | + | 
|  | 82 | +### `EIGENDA_INTERNAL_V2_RETRIEVAL_PORT` | 
|  | 83 | +This port is intended for Nginx reverse proxy use. It is not required if the operator is not using a reverse proxy. | 
|  | 84 | + | 
0 commit comments