Performance and security evaluation of Arbitrum

Hi everyone, I’m Bastien. I’m part of the Distributed Computing Lab (DCL) at EPFL. Currently, we are working in collaboration with the Ethereum Foundation to conduct performance and security evaluations of layer 2 systems. With this study, we hope the evaluation results we provide could help the community to identify and understand performance and security issues that could exist in current systems. We are now focusing on Arbitrum.

For context, the lab already conducted this study over L1 blockchains, you can find the relevant publication here

To study Arbitrum, we aim to deploy a private worldwide Arbitrum network over a private Ethereum network. As I’m new to Arbitrum, and still learning from the documentation, I’m not fully comfortable yet. I’m reaching out for a step-by-step explanation of how to deploy Arbitrum, specifically for a minimal setup first. I have attempted to find an online tutorial for deploying Arbitrum but without success.

More concretely, given any Ethereum network, which smart contracts should be deployed on this L1 network? Which Arbitrum nodes (a sequencer, a full nitro node, a validator, etc…) are required to run? How many of them are needed? Are there other steps required?

Thank you in advance for your support!

8 Likes

Can you say more about what you’re trying to measure? The Arbitrum stack has a lot of configurable parameters, so I’d like to better understand how much customization you will need.

(For example, if you’re trying to measure theoretical peak throughput, you’ll need to set rate limiting parameters differently than a production system would.)

1 Like

Now that I read deeper the documentation, I know more precisely what we want. First, we want a minimal working deployment of Arbitrum. Note that this is not for the purpose of a performance test. This minimal setup consists (if I understood correctly the doc) of a sequencer and one active validator. Note that I assume a fully honest network. Therefore, I want to know:

  1. How to build the sequencer? How to execute it? What are the associated parameters?
  2. How to build the validator (or a node in general)? Note that I am aware of the documentation about running a node, but I want a bare metal executable, not a Docker image.
  3. Which smart contracts should be deployed on the L1 network? Such as the inbox and delayed inbox for instance.
  4. Which smart contracts (if there are any) should be deployed on the L2 network?
  5. How to link everything together? Is there a specific order of starting the different actors? Are there additional steps required?

This minimal setup is to first understand well how Arbitrum works, for then modeling an applied security analysis.
Then, in order to assess the performance of Arbitrum, what are these parameters that need to be set differently? What should be their value? And why do these settings differ from a production system?