Defined below is the process for which you can use to migrate your vanilla Arbitrum sequencer using native Arbitrum DA (i.e, Ethereum calldata, 4844 blobs, anytrust) to one using high throughput and low cost via EigenDA.
Overview
-
Ensure your node software is on the latest vanilla Arbitrum Nitro version. This can typically be found via referencing the offchain labs nitro github releases or arbitrum docs.
-
Perform node upgrade to use latest EigenDA x Nitro version. Please ensure that the fork version is equivalent to the nitro reference. The EigenDA x Nitro fork is designed to be backwards compatible with the latest Arbitrum release and should operate using native Arbitrum DA without any liveness failures.
-
Invoke the eigenda v2.1.0 migration action to upgrade the parent chain contracts to use EigenDA ones. Instructions can be found here onto how to do this. This will apply necessary eigenda contract upgrades. This action must be ran before enabling EigenDA on the node backend.
-
Update your Arbitrum system configs to enable EigenDA. This includes changes to your batch posters, validators, and sequencer node configs; i.e:
-
Update node field section to use eigenda-proxy configuration; ie:
"eigen-da": {"enable": true,"rpc": "http://eigenda_proxy:4242"}
-
Update arbitrum field section of config to enable eigenda; ie:
"eigenda": true
- Last but not least, upgrade ArbOS system config via rollup owner to enable EigenDA by updating the arbitrum field section using your previous config; e.g:
ETH_RPC_URL={ETH_RPC} cast send "0x7000000000000000000000000000000000000000"
"setChainConfig(string calldata)" "{"chainId":666666,...,"arbitrum":{"EigenDA":true,...}}"
--private-key {PRIVATE_KEY} --gas-limit 1000000
NOTE: If this is not done an edge-case can be reached where the sequencer's batch posters are able to submit batches to EigenDA but the MakeNode
and Defensive
validators will halt due to an old config being referenced during stateless block validation within the JIT validation server.
- Verify your deployment. Steps on how to do this can be found via our developer runbook.