How To Deploy An Arbitrum Node

How To Deploy An Arbitrum Node
How to Deploy an Arbitrum Node

The sustainable growth of the Arbitrum network depends crucially on the numbers of nodes. Running your own node on Arbitrum has several benefits, such as increased privacy, security, and improved network's heath.

This guide will show you how to set up an Arbitrum node and specs and system requirements for node deployment.

What is an Arbitrum Node?

An Arbitrum node is a machine (computer) connected to the Arbitrum network. The node typically takes care of validating transactions and helps keep the network decentralized.

If you look to interact with the Arbitrum chains without relying on third-party entities, running your own node is the perfect option. You can definitely use node operators if you prefer not to maintain your node. But make sure you choose a trusted entity before doing this.

Check out the updated list of Arbitrum Node Providers here.

Arbitrum Node Providers
Arbitrum Node Providers

Interested supporters can run a full node or further become a validator on Arbitrum. Full nodes keep track of the Arbitrum network and provide an API that enables users to interact with the chain.

By default, all nodes are watchtower validators. Other validator approaches are allowlisted. You can find more information about running an Arbitrum validator and validator strategies in Arbitrum Docs. Our guide will focus on running a Nitro full node on Linux.

Arbitrum Node Requirements

You need to set up required hardware and infrastructure before deploying your own node on Arbitrum. Here is your checklist:

Arbitrum Ecosystem - Node
Arbitrum Ecosystem - Node

How to Set up a Node on Abitrum: Runing Arbitrum Full Node with Docker

The following instructions show you how to set up and run an Abitrum full node with Docker. For the latest updates on the details, we encourage you to regularly review Arbitrum Docs.

Step 1: Install and Configure Docker

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources: echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo service docker start

You can later run a docker with your current user by running the following commands:

sudo groupadd docker sudo usermod -aG docker $USER newgrp docker

Step 2: Install Nitro Software

Install Nitro software by running the following commands:

git clone --branch v2.1.1 https://github.com/OffchainLabs/nitro.git cd nitro git submodule update --init --recursive --force

Step 3: Build Docker Image

Build a nitro-node Docker image by running the following commands:

docker build . --tag nitro-node

Step 4: Configure Prerequisites

Configure the software dependencies by running the following commands:

apt install git curl build-essential cmake npm golang clang make gotestsum wabt lld-13 npm install --global yarn ln -s /usr/bin/wasm-ld-13 /usr/local/bin/wasm-ld

Step 5: Configure Node

Install and configure node 16.19 by running the following commands:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash source "$HOME/.bashrc" nvm install 16.19 nvm use 16.19

Install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" rustup install 1.72.1 rustup default 1.72.1 rustup target add wasm32-unknown-unknown --toolchain 1.72.1 rustup target add wasm32-wasi --toolchain 1.72.1 cargo install cbindgen

Install Bison and Go

sudo apt-get install bison bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source "$HOME/.gvm/scripts/gvm" gvm install go1.20 gvm use go1.20 --default curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.54.2

Step 6: Complete Building Nitro's Binaries and Run Your Node

make build

Choose node parameters and run your node:

./target/bin/nitro

Congratulations! Now you've successfully set up an run your Arbitrum node.

Want to buy Arbitrum (ARB) tokens? Our guide on how to buy Arbitrum will show you where and how to buy ARB easily.

Read more