Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
3c4291d
feat: add node-running-content-map page, add to sidebars
anegg0 Oct 10, 2024
fd3c797
feat: improve stylesheet for cards
anegg0 Oct 10, 2024
7ff0b56
feat: apply style sheet to Card component
anegg0 Oct 10, 2024
aeb158c
feat: color scheme for dark mode
anegg0 Oct 10, 2024
8eebfcf
feat: add additional pages to map
anegg0 Oct 10, 2024
d59a2a4
fix: ensure relative links open a new tab
anegg0 Oct 11, 2024
22a3095
fix: use relative links for each card
anegg0 Oct 11, 2024
58a6338
feat: rename "quickstart" > "node-types" with title: "What node shoul…
anegg0 Oct 11, 2024
2074d40
fix: rename quickstart file to "node-types" with relevant metadata
anegg0 Oct 11, 2024
25d3560
fix: ensure the stylus overview page opens relative URLs in a new tab
anegg0 Oct 11, 2024
129e87f
fix: reduce cards height
anegg0 Oct 11, 2024
2fa639f
feat: add feed relay pages to map page
anegg0 Oct 11, 2024
b9d55b8
fix: rename "stylus-overview" to "stylus-content-map" + add to sidebar
anegg0 Oct 11, 2024
188432b
feat: add troubleshooting and FAQ to mapping page
anegg0 Oct 11, 2024
f61b861
feat: add submap page for sequencer-related content
anegg0 Oct 11, 2024
e8cf870
Merge branch 'master' into node-running-overview
anegg0 Oct 11, 2024
6b8372b
fix: broken link to former "node quickstart"
anegg0 Oct 11, 2024
eb45bd2
Merge branch 'master' into node-running-overview
anegg0 Oct 15, 2024
bb5bcf1
Merge branch 'master' into node-running-overview
anegg0 Oct 18, 2024
ad11fc1
Merge branch 'master' into node-running-overview
anegg0 Oct 25, 2024
f3e09af
feat: delete unneeded "overview" page
anegg0 Oct 31, 2024
360c8a5
This is a combination of 3 commits.
anegg0 Oct 31, 2024
08f5f87
fix: revert file naming
anegg0 Oct 31, 2024
10153f3
Merge branch 'master' into node-running-overview
anegg0 Nov 1, 2024
4e735c2
Merge branch 'master' into node-running-overview
anegg0 May 27, 2025
1a60863
fix: reformat
anegg0 May 27, 2025
601eb4b
fix: repair broken links
anegg0 May 27, 2025
660d276
fix: repair additional broken links
anegg0 May 27, 2025
92aa512
refactor: remove redundant overview article + edit links to comply wi…
anegg0 May 27, 2025
3818d19
fix: repair more links
anegg0 May 27, 2025
c769004
fix: repair links on map content page
anegg0 May 27, 2025
8330fa8
refactor: merge only relevant content from deleted node overview article
anegg0 May 27, 2025
fc8124a
fix: re-add admonition + renamed file to numbered names
anegg0 May 27, 2025
72f525a
rename quickstart > its content wasn't that of a quickstart
anegg0 May 27, 2025
7e5db26
fix: repair broken links after file rename
anegg0 May 27, 2025
dfb8010
rename node-types to overview
anegg0 May 27, 2025
5e0c44e
update and fix sidebar
anegg0 May 27, 2025
f68b53c
update links with new file names
anegg0 May 27, 2025
3f4bda2
fix: repair broken links
anegg0 May 27, 2025
c687aae
minor readability changes; style
pete-vielhaber May 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The following are the only exceptions:

- Contributing to the three troubleshooting pages — [nodes](arbitrum-docs/partials/_troubleshooting-nodes-partial.mdx), [builders](arbitrum-docs/partials/_troubleshooting-building-partial.mdx), and [users](arbitrum-docs/partials/_troubleshooting-users-partial.mdx), as well as the [glossary](arbitrum-docs/partials/_glossary-partial.md) page — requires internal Offchain Labs access. If you'd like to make a suggestion about content on any of those pages, open an [issue ticket](https://github.com/OffchainLabs/arbitrum-docs/issues).

- To request to have your project added to the [3rd party node providers page](arbitrum-docs/build-decentralized-apps/reference/01-node-providers.md), use [this form](https://docs.google.com/forms/d/e/1FAIpQLSc_v8j7sc4ffE6U-lJJyLMdBoIubf7OIhGtCqvK3cGPGoLr7w/viewform).
- To request to have your project added to the [3rd party node providers page](arbitrum-docs/build-decentralized-apps/reference/01-node-providers.mdx), use [this form](https://docs.google.com/forms/d/e/1FAIpQLSc_v8j7sc4ffE6U-lJJyLMdBoIubf7OIhGtCqvK3cGPGoLr7w/viewform).

### Initial set up

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ Before updating the contracts, you want to make sure your nodes are ready for th
Most of the parameters used in Nitro before v3.5.4 will stay the same when running a higher version but, depending on the type of node, you'll have to include a few more BoLD-specific parameters after the upgrade:

- For validator nodes: add `--node.bold.strategy=<MakeNodes | ResolveNodes | Defensive>` to configure the validator to create and/or confirm assertions in the new Rollup contract (find more information in [How to run a validator](/run-arbitrum-node/more-types/02-run-validator-node.mdx#step-1-configure-and-run-your-validator))
- For all other types of node before Nitro v3.6.0: add `--node.bold.enable=true` to enable [watchtower mode](/run-arbitrum-node/03-run-full-node.mdx#watchtower-mode)
- For all other types of node after Nitro v3.6.0: [watchtower mode](/run-arbitrum-node/03-run-full-node.mdx#watchtower-mode) is automatically enabled
- For all other types of node before Nitro v3.6.0: add `--node.bold.enable=true` to enable [watchtower mode](/run-arbitrum-node/02-run-full-node.mdx#watchtower-mode)
- For all other types of node after Nitro v3.6.0: [watchtower mode](/run-arbitrum-node/02-run-full-node.mdx#watchtower-mode) is automatically enabled

Additionally, after performing the upgrade, the `--chain.info-json` object also needs to be modified:

Expand Down Expand Up @@ -186,8 +186,8 @@ execute(...) call to upgrade executor: 0x1cff79cd000000000000000000000000f8199ca
As stated at the beginning, you need to add a few parameters to your node configuration for it to support BoLD:

- For validator nodes: add `--node.bold.strategy=<MakeNodes | ResolveNodes | Defensive>` to configure the validator to create and/or confirm assertions in the new Rollup contract (find more information in [How to run a validator](/run-arbitrum-node/more-types/02-run-validator-node.mdx#step-1-configure-and-run-your-validator))
- For all other types of node before Nitro v3.6.0: add `--node.bold.enable=true` to enable [watchtower mode](/run-arbitrum-node/03-run-full-node.mdx#watchtower-mode)
- For all other types of node after Nitro v3.6.0: [watchtower mode](/run-arbitrum-node/03-run-full-node.mdx#watchtower-mode) is automatically enabled
- For all other types of node before Nitro v3.6.0: add `--node.bold.enable=true` to enable [watchtower mode](/run-arbitrum-node/02-run-full-node.mdx#watchtower-mode)
- For all other types of node after Nitro v3.6.0: [watchtower mode](/run-arbitrum-node/02-run-full-node.mdx#watchtower-mode) is automatically enabled

Additionally, the `--chain.info-json` object also needs to be modified:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ docker run --rm -it -v /path/to/your/node/dir:/home/user/.arbitrum -p 0.0.0.0:84

:::info

The instructions provided in [How to run a full node](/run-arbitrum-node/03-run-full-node.mdx) **will not** work with your Arbitrum chain node. See [Optional parameters (Arbitrum chain)](/run-arbitrum-node/03-run-full-node.mdx#optional-parameters) for Arbitrum chain (Orbit)-specific CLI flags.
The instructions provided in [How to run a full node](/run-arbitrum-node/02-run-full-node.mdx) **will not** work with your Arbitrum chain node. See [Optional parameters (Arbitrum chain)](/run-arbitrum-node/02-run-full-node.mdx#optional-parameters) for Arbitrum chain (Orbit)-specific CLI flags.

:::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,4 @@ After generating the node configuration object, it can be saved to a file for la

### 3. Next step

You can now run the Nitro node for your Arbitrum chain with the node configuration generated. You can find instructions for running a node in [How to run a full node](/run-arbitrum-node/03-run-full-node.mdx).
You can now run the Nitro node for your Arbitrum chain with the node configuration generated. You can find instructions for running a node in [How to run a full node](/run-arbitrum-node/02-run-full-node.mdx).
98 changes: 98 additions & 0 deletions arbitrum-docs/node-running/node-running-content-map.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
id: node-running-content-map
title: Run an Arbitrum node
sidebar_label: Run an Arbitrum node
---

import Card from '@site/src/components/Cards/Card';

# Run an Arbitrum node

Learn how to run an Arbitrum node.

<div
style={{
display: 'grid',
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
gap: '20px',
}}
>
<Card
title="What node should I run?"
description="Overview of node types"
href="/run-arbitrum-node/overview"
target="_blank"
/>
<Card
title="Run a full node"
description="Installation and configuration"
href="/run-arbitrum-node/run-full-node"
target="_blank"
/>
<Card
title="Run a local dev node"
description="Installation and configuration"
href="/run-arbitrum-node/run-nitro-dev-node"
target="_blank"
/>
<Card
title="Run a validator node"
description="Installation and configuration"
href="/run-arbitrum-node/more-types/run-validator-node"
target="_blank"
/>
<Card
title="Data Availability Committees"
description="Setup an Arbitrum chain AnyTrust node"
href="/run-arbitrum-node/data-availability-committees/get-started"
target="_blank"
/>
<Card
title="Run an archive node"
description="Installation and configuration"
href="/run-arbitrum-node/more-types/run-archive-node"
target="_blank"
/>
<Card
title="Run a Classic node"
description="Installation and configuration"
href="/run-arbitrum-node/more-types/run-classic-node"
target="_blank"
/>
<Card
title="Sequencer"
description="Keep your node in sync with the sequencer"
href="/node-running/sequencer-content-map"
target="_blank"
/>
<Card
title="Use a node provider"
description="Infrastructure node list"
href="/build-decentralized-apps/reference/node-providers"
target="_blank"
/>
<Card
title="Beacon Chain RPC providers"
description="Beacon Chain provider list"
href="/run-arbitrum-node/l1-ethereum-beacon-chain-rpc-providers"
target="_blank"
/>
<Card
title="ArbOS software releases"
description="ArbOS release list"
href="/run-arbitrum-node/arbos-releases/overview"
target="_blank"
/>
<Card
title="Troubleshooting"
description="Common issues and solutions"
href="/run-arbitrum-node/troubleshooting"
target="_blank"
/>
<Card
title="FAQ"
description="Frequently asked questions"
href="/node-running/faq"
target="_blank"
/>
</div>
38 changes: 38 additions & 0 deletions arbitrum-docs/node-running/sequencer-content-map.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
id: sequencer-content-map
title: Sequencer
sidebar_label: Sequencer
---

import Card from '@site/src/components/Cards/Card';

# Sequencer

Keep your node in sync with the sequencer.

<div
style={{
display: 'grid',
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
gap: '20px',
}}
>
<Card
title="Run a feed relay"
description="Installation and configuration."
href="/run-arbitrum-node/sequencer/run-feed-relay"
target="_blank"
/>
<Card
title="Read the sequencer feed"
description="Installation and configuration."
href="/run-arbitrum-node/sequencer/read-sequencer-feed"
target="_blank"
/>
<Card
title="Run a Sequencer Coordination Manager (SQM)"
description="Installation and configuration."
href="/run-arbitrum-node/sequencer/run-sequencer-coordination-manager"
target="_blank"
/>
</div>
77 changes: 65 additions & 12 deletions arbitrum-docs/run-arbitrum-node/01-overview.mdx
Original file line number Diff line number Diff line change
@@ -1,18 +1,71 @@
---
title: 'Arbitrum nodes overview'
description: "Arbitrum is a suite of Ethereum L2 scaling solutions supported by a decentralized network of nodes. This guide introduces you to Arbitrum's node types and how they work together to scale Ethereum."
author: mahsamoosavi
title: 'Arbitrum nodes: an overview'
description: Learn more about what type of ARb node one needs to run.
author-objective: Build a quickstart that helps readers understand why they might want to run a specific type of an Arbitrum node.
reader-audience: Moderately-technical readers who are familiar with command lines, but not Ethereum / Arbitrum infrastructure
reader-task: Learn about the different types of Arbitrum nodes and understand the benefits and trade-offs of each type.
content_type: overview
---

In order to be able to _interact with_ or _build applications on_ any of the Arbitrum chains, you need access to the corresponding Arbitrum node. Options are:
import PublicPreviewBannerPartial from '../partials/_public-preview-banner-partial.mdx';
import { VanillaAdmonition } from '@site/src/components/VanillaAdmonition/';

- You can use third party node providers (see the list [here](/build-decentralized-apps/reference/01-node-providers.mdx)) to get RPC access to fully-managed nodes
- You can run your own Arbitrum node, especially if you want to always know the state of the Arbitrum chain
<VanillaAdmonition type="note">

Here, you can find resources that help you run different types of Arbitrum nodes:
There is no protocol-level incentive to run an Arbitum full node. If you’re interested in accessing an Arbitrum chain but don’t want to set up a node locally, see our [RPC endpoints and providers](/build-decentralized-apps/reference/01-node-providers.mdx) to get RPC access to fully managed nodes hosted by a third-party provider.

- Step-by-step instructions for running different Arbitrum nodes, including [full Nitro node](/run-arbitrum-node/03-run-full-node.mdx), [full Classic node](/run-arbitrum-node/more-types/03-run-classic-node.mdx), [local full chain simulation](/run-arbitrum-node/04-run-local-full-chain-simulation.mdx), [Nitro dev node](/run-arbitrum-node/run-nitro-dev-node.mdx), [feed relay](/run-arbitrum-node/sequencer/01-run-feed-relay.mdx), and [validator](/run-arbitrum-node/more-types/02-run-validator-node.mdx)
- Step-by-step instructions for how to [read the sequencer feed](/run-arbitrum-node/sequencer/02-read-sequencer-feed.mdx), [build the Nitro locally](/run-arbitrum-node/nitro/01-build-nitro-locally.mdx) and [run the sequencer coordinator manager UI tool](/run-arbitrum-node/sequencer/03-run-sequencer-coordination-manager.mdx)
- Step-by-step instructions for [how to configure a Data Availability Committee](/run-arbitrum-node/data-availability-committees/01-get-started.mdx)
- [Troubleshooting page](/run-arbitrum-node/06-troubleshooting.mdx)
- [Frequently asked questions](/node-running/faq.mdx)
</VanillaAdmonition>

:::caution API security disclaimer

When exposing API endpoints to the Internet or any untrusted/hostile network, the following risks may arise:

- **Increased risk of crashes due to Out-of-Memory (OOM)**:
Exposing endpoints increases the risk of OOM crashes.
- **Increased risk of not keeping up with chain progression**:
Resource starvation (IO or CPU) may occur, leading to an inability to keep up with chain progression.

We strongly advise against exposing API endpoints publicly. Users considering such exposure should exercise caution and implement the right measures to enhance resilience.

:::

To be able to _interact with_ or _build applications on_ any of the Arbitrum chains, you need access to the corresponding Arbitrum node. Options are:

- You can use [ third party node providers ](/build-decentralized-apps/reference/01-node-providers.mdx) to get RPC access to fully-managed nodes
- You can run your own Arbitrum node, especially if you want always to know the state of the Arbitrum chain

The rest of this series focuses on the second approach: running your own Arbitrum node.

:::

To be able to _interact with_ or _build applications on_ any of the Arbitrum chains, you need access to the corresponding Arbitrum node. Options are:

When interacting with the Arbitrum network, users have the option to run either a full node or an archive node. There are distinct advantages to running an Arbitrum full node. In this quick start, we will explore the reasons why a user may prefer to run a full node instead of an archive node. By understanding the benefits and trade-offs of each node type, users can make an informed decision based on their specific requirements and objectives.

### Considerations for running an Arbitrum full node

- **Transaction validation and security**: Running a full node allows users to independently validate transactions and verify the state of the Arbitrum blockchain. Users can have complete confidence in the authenticity and integrity of the transactions they interact with.
- **Reduced trust requirements**: By running a full node, users can interact with the Arbitrum network without relying on third-party services or infrastructure. This independence reduces the need to trust external entities and mitigates the risk of potential centralized failures or vulnerabilities.
- **Lower resource requirements**: Compared to archive nodes, full nodes generally require fewer resources such as storage and computational power. These requirements make it more accessible to users with limited hardware capabilities or those operating in resource-constrained environments.

For detailed instructions, read [how to run an Arbitrum full node](/run-arbitrum-node/02-run-full-node.mdx).

### Considerations for running an Arbitrum archive node

While full nodes offer numerous advantages, there are situations where running an archive node may be more appropriate. Archive nodes store the complete history of the Arbitrum network, making them suitable for users who require access to extensive historical data or advanced analytical purposes. However, it's important to note that archive nodes are more resource-intensive, requiring significant storage capacity and computational power.

For detailed instructions, read [how to run an Arbitrum archive node](/run-arbitrum-node/more-types/01-run-archive-node.mdx).

### Considerations for running an Arbitrum classic node

The significance of running an Arbitrum classic node is mainly applicable to individuals with specific needs for an archive node and access to classic-related commands.

For detailed instructions, read [how to run an Arbitrum classic node](/run-arbitrum-node/more-types/03-run-classic-node.mdx).

### Considerations for running a feed relay

If you are running a single node, there is no requirement to set up a feed relay. However, if you have multiple nodes, it is highly recommended to have a single feed relay per data center. This setup offers several advantages, including reducing ingress fees and enhancing network stability.

Soon, feed endpoints will mandate compression using a custom dictionary. Therefore, if you plan to connect to a feed using anything other than a standard node, it is strongly advised to run a local feed relay. This local feed relay will ensure that you have access to an uncompressed feed by default, maintaining optimal performance and compatibility.

For detailed instructions, read [how to run an Arbitrum feed relay](/run-arbitrum-node/sequencer/01-run-feed-relay.mdx).
Loading