Skip to content

Commit 9e18388

Browse files
authored
Merge pull request #1741 from OffchainLabs/node-running-overview
Node running section overhaul
2 parents 525aa77 + c687aae commit 9e18388

28 files changed

+346
-113
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ The following are the only exceptions:
1212

1313
- 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).
1414

15-
- 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).
15+
- 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).
1616

1717
### Initial set up
1818

arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ Before updating the contracts, you want to make sure your nodes are ready for th
3232
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:
3333

3434
- 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))
35-
- 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)
36-
- 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
35+
- 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)
36+
- 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
3737

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

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

188188
- 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))
189-
- 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)
190-
- 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
189+
- 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)
190+
- 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
191191

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

arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ docker run --rm -it -v /path/to/your/node/dir:/home/user/.arbitrum -p 0.0.0.0:84
139139

140140
:::info
141141

142-
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.
142+
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.
143143

144144
:::
145145

arbitrum-docs/launch-arbitrum-chain/how-tos/arbitrum-chain-sdk-preparing-node-config.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,4 @@ After generating the node configuration object, it can be saved to a file for la
156156

157157
### 3. Next step
158158

159-
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).
159+
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).
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
id: node-running-content-map
3+
title: Run an Arbitrum node
4+
sidebar_label: Run an Arbitrum node
5+
---
6+
7+
import Card from '@site/src/components/Cards/Card';
8+
9+
# Run an Arbitrum node
10+
11+
Learn how to run an Arbitrum node.
12+
13+
<div
14+
style={{
15+
display: 'grid',
16+
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
17+
gap: '20px',
18+
}}
19+
>
20+
<Card
21+
title="What node should I run?"
22+
description="Overview of node types"
23+
href="/run-arbitrum-node/overview"
24+
target="_blank"
25+
/>
26+
<Card
27+
title="Run a full node"
28+
description="Installation and configuration"
29+
href="/run-arbitrum-node/run-full-node"
30+
target="_blank"
31+
/>
32+
<Card
33+
title="Run a local dev node"
34+
description="Installation and configuration"
35+
href="/run-arbitrum-node/run-nitro-dev-node"
36+
target="_blank"
37+
/>
38+
<Card
39+
title="Run a validator node"
40+
description="Installation and configuration"
41+
href="/run-arbitrum-node/more-types/run-validator-node"
42+
target="_blank"
43+
/>
44+
<Card
45+
title="Data Availability Committees"
46+
description="Setup an Arbitrum chain AnyTrust node"
47+
href="/run-arbitrum-node/data-availability-committees/get-started"
48+
target="_blank"
49+
/>
50+
<Card
51+
title="Run an archive node"
52+
description="Installation and configuration"
53+
href="/run-arbitrum-node/more-types/run-archive-node"
54+
target="_blank"
55+
/>
56+
<Card
57+
title="Run a Classic node"
58+
description="Installation and configuration"
59+
href="/run-arbitrum-node/more-types/run-classic-node"
60+
target="_blank"
61+
/>
62+
<Card
63+
title="Sequencer"
64+
description="Keep your node in sync with the sequencer"
65+
href="/node-running/sequencer-content-map"
66+
target="_blank"
67+
/>
68+
<Card
69+
title="Use a node provider"
70+
description="Infrastructure node list"
71+
href="/build-decentralized-apps/reference/node-providers"
72+
target="_blank"
73+
/>
74+
<Card
75+
title="Beacon Chain RPC providers"
76+
description="Beacon Chain provider list"
77+
href="/run-arbitrum-node/l1-ethereum-beacon-chain-rpc-providers"
78+
target="_blank"
79+
/>
80+
<Card
81+
title="ArbOS software releases"
82+
description="ArbOS release list"
83+
href="/run-arbitrum-node/arbos-releases/overview"
84+
target="_blank"
85+
/>
86+
<Card
87+
title="Troubleshooting"
88+
description="Common issues and solutions"
89+
href="/run-arbitrum-node/troubleshooting"
90+
target="_blank"
91+
/>
92+
<Card
93+
title="FAQ"
94+
description="Frequently asked questions"
95+
href="/node-running/faq"
96+
target="_blank"
97+
/>
98+
</div>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
id: sequencer-content-map
3+
title: Sequencer
4+
sidebar_label: Sequencer
5+
---
6+
7+
import Card from '@site/src/components/Cards/Card';
8+
9+
# Sequencer
10+
11+
Keep your node in sync with the sequencer.
12+
13+
<div
14+
style={{
15+
display: 'grid',
16+
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
17+
gap: '20px',
18+
}}
19+
>
20+
<Card
21+
title="Run a feed relay"
22+
description="Installation and configuration."
23+
href="/run-arbitrum-node/sequencer/run-feed-relay"
24+
target="_blank"
25+
/>
26+
<Card
27+
title="Read the sequencer feed"
28+
description="Installation and configuration."
29+
href="/run-arbitrum-node/sequencer/read-sequencer-feed"
30+
target="_blank"
31+
/>
32+
<Card
33+
title="Run a Sequencer Coordination Manager (SQM)"
34+
description="Installation and configuration."
35+
href="/run-arbitrum-node/sequencer/run-sequencer-coordination-manager"
36+
target="_blank"
37+
/>
38+
</div>
Lines changed: 65 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,71 @@
11
---
2-
title: 'Arbitrum nodes overview'
3-
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."
4-
author: mahsamoosavi
2+
title: 'Arbitrum nodes: an overview'
3+
description: Learn more about what type of ARb node one needs to run.
4+
author-objective: Build a quickstart that helps readers understand why they might want to run a specific type of an Arbitrum node.
5+
reader-audience: Moderately-technical readers who are familiar with command lines, but not Ethereum / Arbitrum infrastructure
6+
reader-task: Learn about the different types of Arbitrum nodes and understand the benefits and trade-offs of each type.
7+
content_type: overview
58
---
69

7-
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:
10+
import PublicPreviewBannerPartial from '../partials/_public-preview-banner-partial.mdx';
11+
import { VanillaAdmonition } from '@site/src/components/VanillaAdmonition/';
812

9-
- 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
10-
- You can run your own Arbitrum node, especially if you want to always know the state of the Arbitrum chain
13+
<VanillaAdmonition type="note">
1114

12-
Here, you can find resources that help you run different types of Arbitrum nodes:
15+
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.
1316

14-
- 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)
15-
- 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)
16-
- Step-by-step instructions for [how to configure a Data Availability Committee](/run-arbitrum-node/data-availability-committees/01-get-started.mdx)
17-
- [Troubleshooting page](/run-arbitrum-node/06-troubleshooting.mdx)
18-
- [Frequently asked questions](/node-running/faq.mdx)
17+
</VanillaAdmonition>
18+
19+
:::caution API security disclaimer
20+
21+
When exposing API endpoints to the Internet or any untrusted/hostile network, the following risks may arise:
22+
23+
- **Increased risk of crashes due to Out-of-Memory (OOM)**:
24+
Exposing endpoints increases the risk of OOM crashes.
25+
- **Increased risk of not keeping up with chain progression**:
26+
Resource starvation (IO or CPU) may occur, leading to an inability to keep up with chain progression.
27+
28+
We strongly advise against exposing API endpoints publicly. Users considering such exposure should exercise caution and implement the right measures to enhance resilience.
29+
30+
:::
31+
32+
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:
33+
34+
- You can use [ third party node providers ](/build-decentralized-apps/reference/01-node-providers.mdx) to get RPC access to fully-managed nodes
35+
- You can run your own Arbitrum node, especially if you want always to know the state of the Arbitrum chain
36+
37+
The rest of this series focuses on the second approach: running your own Arbitrum node.
38+
39+
:::
40+
41+
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:
42+
43+
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.
44+
45+
### Considerations for running an Arbitrum full node
46+
47+
- **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.
48+
- **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.
49+
- **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.
50+
51+
For detailed instructions, read [how to run an Arbitrum full node](/run-arbitrum-node/02-run-full-node.mdx).
52+
53+
### Considerations for running an Arbitrum archive node
54+
55+
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.
56+
57+
For detailed instructions, read [how to run an Arbitrum archive node](/run-arbitrum-node/more-types/01-run-archive-node.mdx).
58+
59+
### Considerations for running an Arbitrum classic node
60+
61+
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.
62+
63+
For detailed instructions, read [how to run an Arbitrum classic node](/run-arbitrum-node/more-types/03-run-classic-node.mdx).
64+
65+
### Considerations for running a feed relay
66+
67+
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.
68+
69+
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.
70+
71+
For detailed instructions, read [how to run an Arbitrum feed relay](/run-arbitrum-node/sequencer/01-run-feed-relay.mdx).

0 commit comments

Comments
 (0)