From dda2642bf3d08784b5149c1382bdabcac63ede87 Mon Sep 17 00:00:00 2001 From: jcstein Date: Fri, 22 Mar 2024 20:06:20 -0400 Subject: [PATCH] docs: cleanup for new deployment guide --- developers/arbitrum-deploy.md | 140 ++++++---------------------------- 1 file changed, 24 insertions(+), 116 deletions(-) diff --git a/developers/arbitrum-deploy.md b/developers/arbitrum-deploy.md index 2e067e4be16..304372f810d 100644 --- a/developers/arbitrum-deploy.md +++ b/developers/arbitrum-deploy.md @@ -2,73 +2,43 @@ description: A guide on how to install Arbitrum Nitro and deploy an instance on an Ubuntu AMD machine, including the installation of necessary dependencies, cloning the repository, installing Nitro from source, and deploying the rollup to Mocha testnet. --- -# Deploy an Arbitrum rollup devnet +# Deploy an Arbitrum local rollup devnet -We will go over installation of Arbitrum Nitro and deploying an instance on an -Ubuntu AMD machine. +We will go over installation of Arbitrum Nitro and deploying a rollup instance using the Celestia Orbit chain deployment portal. After completing this tutorial, +you'll have a local devnet chain that can host EVM-compatible smart contracts. Your +chain will process transactions locally while settling to the public Arbitrum Sepolia +testnet. + +If you're looking to learn more about the integration of Celestia and Orbit, +read the [Arbitrum integration overview](./arbitrum-integration.md). ## Dependencies This section covers all necessary dependencies. +- Familiarity with Ethereum, Ethereum's testnets, Arbitrum, and Celestia - [Docker](https://docs.docker.com/engine/install/ubuntu/) running on your machine - [Docker Compose](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04) -- **[TODO: check against Orbit docs](https://docs.arbitrum.io/launch-orbit-chain/orbit-quickstart)** +- [A gentle introduction: Orbit chains](https://docs.arbitrum.io/launch-orbit-chain/orbit-gentle-introduction) - A fully synced and funded Mocha testnet [light node](../nodes/light-node.md) on **v0.13.1** - [Mocha testnet faucet](../nodes/mocha-testnet.md#mocha-testnet-faucet) +- **[TODO: check against Orbit docs](https://docs.arbitrum.io/launch-orbit-chain/orbit-quickstart)** -### General - - - -```bash -sudo apt update && sudo apt upgrade -y -sudo apt install curl tar wget clang pkg-config libssl-dev cmake jq build-essential git make ncdu -y -``` - -### Rust - -```bash -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -source "$HOME/.cargo/env" -``` - -### Golang - -```bash -ver="1.20" -cd $HOME -wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" -sudo rm -rf /usr/local/go -sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" -rm "go$ver.linux-amd64.tar.gz" -echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile -source $HOME/.bash_profile -go version -``` - -### Node - -```bash -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash -export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -nvm install 16.20.0 -nvm use 16.20.0 -node --version -npm install --global yarn -yarn --version -``` - - +## Setup -### Other Dependencies +This is a WIP, copied from [Arbitrum's Orbit quickstart](https://docs.arbitrum.io/launch-orbit-chain/orbit-quickstart). -```bash -cargo install --force cbindgen -rustup target add wasm32-unknown-unknown -``` +- Step 1: Acquire Arbitrum Testnet $ETH (and the native token for Orbit chains with custom gas tokens) +- Step 2: Choose your chain type: Rollup +- Step 3: Configure your Orbit chain's deployment +- Step 4: Configure your chain's validator(s) +- Step 5: Configure your chain's batch poster +- Step 6: Review & Deploy your Orbit chain +- Step 7: Download your chain's configuration files and launch your chain +- Step 8: Clone the setup script repository and add your configuration files +- Step 9: Run your chain's node and block explorer +- Step 10: Finish setting up your chain ## Clone the repository @@ -85,46 +55,6 @@ git submodule update --init --recursive [See the compatibility matrix in the appendix to verify you're using the right version.](#compatibility-matrix) - - - - - - - - ## Deploy an Arbitrum rollup to Mocha testnet @@ -172,27 +102,6 @@ The Orbit contracts depend on [the existing Blobstream X deployments](#blobstrea - **`blobstreamx-address`:** address of the BlobstreamX contract on the base chain. - Note that the `SequencerInbox` contract for each chain has a constant address for the `BlobstreamX` contract, thus make sure that the blobstream address in the `SequencerInbox` being used for the templates in `RollupCreator` matches the one in your config. - - ## Appendix ### Compatibility matrix @@ -204,7 +113,6 @@ to Mocha testnet for data availability. 🏎️ --> | Orbit SDK | [v0.8.2 Orbit SDK for Celestia DA](https://github.com/celestiaorg/arbitrum-orbit-sdk/releases/tag/v0.8.2) | This is not compatible with Orbit SDK v0.8.2 or with the latest changes to nitro-contracts for the Atlas upgrade. The Orbit SDK itself is in Alpha. | | celestia-node | [v0.13.1](https://github.com/celestiaorg/celestia-node/releases/tag/v0.13.1) | This integration has only been tested with celestia-node 0.13.1 and only works with said version, and with future versions after that. Under the hood, the Nitro node uses [this commit](https://github.com/celestiaorg/celestia-openrpc/commit/64f04840aa97d4deb821b654b1fb59167d242bd1) of celestia-openrpc. | - ### Blobstream X contract deployments The Orbit contracts depend on the following BlobstreamX deployments. The current deployments, which can be found at `0xc3e209eb245Fd59c8586777b499d6A665DF3ABD2` in both chains, relays headers from the **Mocha-4** testnet to the chains below: @@ -279,4 +187,4 @@ The Orbit contracts depend on the following BlobstreamX deployments. The current | ValidatorUtils | `0x1cc4551922C069A9aDE06756BF14bF0410eA44fF` | | ValidatorWalletCreator | `0x78f8B2941ddE5a8A312814Ebd29c2E2A36f25E91` | | RollupCreator | `0x1Bb8ADd5e878b12Fa37756392642eB94C53A1Cf4` | -| DeployHelper | `0x20d8153AaCC4E6D29558fa3916BfF422BEDE9B5E` | \ No newline at end of file +| DeployHelper | `0x20d8153AaCC4E6D29558fa3916BfF422BEDE9B5E` |