diff --git a/README.md b/README.md index 2d46af3b35..790f2cb286 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx b/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx index bcf690f64d..37214de874 100644 --- a/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx +++ b/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx @@ -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=` 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: @@ -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=` 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: diff --git a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx index 56212a7730..4e33b67952 100644 --- a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx +++ b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx @@ -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. ::: diff --git a/arbitrum-docs/launch-arbitrum-chain/how-tos/arbitrum-chain-sdk-preparing-node-config.md b/arbitrum-docs/launch-arbitrum-chain/how-tos/arbitrum-chain-sdk-preparing-node-config.md index 43f4ec3a81..92a6af32be 100644 --- a/arbitrum-docs/launch-arbitrum-chain/how-tos/arbitrum-chain-sdk-preparing-node-config.md +++ b/arbitrum-docs/launch-arbitrum-chain/how-tos/arbitrum-chain-sdk-preparing-node-config.md @@ -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). diff --git a/arbitrum-docs/node-running/node-running-content-map.mdx b/arbitrum-docs/node-running/node-running-content-map.mdx new file mode 100644 index 0000000000..01e0c38fb9 --- /dev/null +++ b/arbitrum-docs/node-running/node-running-content-map.mdx @@ -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. + +
+ + + + + + + + + + + + + +
diff --git a/arbitrum-docs/node-running/sequencer-content-map.mdx b/arbitrum-docs/node-running/sequencer-content-map.mdx new file mode 100644 index 0000000000..cd4465ec67 --- /dev/null +++ b/arbitrum-docs/node-running/sequencer-content-map.mdx @@ -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. + +
+ + + +
diff --git a/arbitrum-docs/run-arbitrum-node/01-overview.mdx b/arbitrum-docs/run-arbitrum-node/01-overview.mdx index 8858ada07e..ef7f3f3459 100644 --- a/arbitrum-docs/run-arbitrum-node/01-overview.mdx +++ b/arbitrum-docs/run-arbitrum-node/01-overview.mdx @@ -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 + -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) + + +:::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). diff --git a/arbitrum-docs/run-arbitrum-node/02-quickstart.mdx b/arbitrum-docs/run-arbitrum-node/02-quickstart.mdx deleted file mode 100644 index 18cd4b5cb3..0000000000 --- a/arbitrum-docs/run-arbitrum-node/02-quickstart.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: 'Quickstart: Run a node' -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: Run a node with minimal effort and maximum understanding -content_type: quickstart ---- - -:::info - -There is no protocol level incentive to run an Arbitum full node. If you’re interested in accessing an Arbitrum chain, but you don’t want to set up your own node, 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. - -::: - -:::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 OOM: - Exposing endpoints raises the risk of Out-of-Memory (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. -::: - -When it comes to 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 quickstart, 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 type of node, 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 full 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 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. This makes them more accessible to users with limited hardware capabilities or those operating on resource-constrained environments. - -For detailed instructions on how to run an Arbitrum full node, see [here](/run-arbitrum-node/03-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 extensive historical data access 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 on how to run an Arbitrum archive node, see [here](/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. More details can be found [here](/run-arbitrum-node/more-types/01-run-archive-node.mdx). - -For detailed instructions on how to run an Arbitrum classic node, see [here](/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 datacenter. This setup offers several advantages such as reducing ingress fees and enhancing stability within the network. - -In the near future, 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 will ensure that you have access to an uncompressed feed by default, maintaining optimal performance and compatibility. - -For detailed instructions on how to run a feed relay, see [here](/run-arbitrum-node/sequencer/01-run-feed-relay.mdx). diff --git a/arbitrum-docs/run-arbitrum-node/03-run-full-node.mdx b/arbitrum-docs/run-arbitrum-node/02-run-full-node.mdx similarity index 100% rename from arbitrum-docs/run-arbitrum-node/03-run-full-node.mdx rename to arbitrum-docs/run-arbitrum-node/02-run-full-node.mdx diff --git a/arbitrum-docs/run-arbitrum-node/04-run-local-full-chain-simulation.mdx b/arbitrum-docs/run-arbitrum-node/03-run-local-full-chain-simulation.mdx similarity index 100% rename from arbitrum-docs/run-arbitrum-node/04-run-local-full-chain-simulation.mdx rename to arbitrum-docs/run-arbitrum-node/03-run-local-full-chain-simulation.mdx diff --git a/arbitrum-docs/run-arbitrum-node/05-l1-ethereum-beacon-chain-rpc-providers.mdx b/arbitrum-docs/run-arbitrum-node/04-l1-ethereum-beacon-chain-rpc-providers.mdx similarity index 98% rename from arbitrum-docs/run-arbitrum-node/05-l1-ethereum-beacon-chain-rpc-providers.mdx rename to arbitrum-docs/run-arbitrum-node/04-l1-ethereum-beacon-chain-rpc-providers.mdx index 7b1d8d45ad..291f6ee3b3 100644 --- a/arbitrum-docs/run-arbitrum-node/05-l1-ethereum-beacon-chain-rpc-providers.mdx +++ b/arbitrum-docs/run-arbitrum-node/04-l1-ethereum-beacon-chain-rpc-providers.mdx @@ -11,7 +11,7 @@ Following [Ethereum's Dencun upgrade in March 2024](https://eips.ethereum.org/EI ### What does this mean for node operators? -To run a node for a child Arbitrum chain (i.e., Arbitrum One, Arbitrum Nova, and L3 Arbitrum chains), your node will need access to blob data to sync up to the latest state of your Arbitrum child chain. Blob data on Ethereum is stored on the beacon chain and is inaccessible to the EVM, hence why dedicated RPC endpoints for the beacon chain will be required after the Dencun upgrade. You can find more details on node requirements in the [Run a full node guide](/run-arbitrum-node/03-run-full-node.mdx). +To run a node for a child Arbitrum chain (i.e., Arbitrum One, Arbitrum Nova, and L3 Arbitrum chains), your node will need access to blob data to sync up to the latest state of your Arbitrum child chain. Blob data on Ethereum is stored on the beacon chain and is inaccessible to the EVM, hence why dedicated RPC endpoints for the beacon chain will be required after the Dencun upgrade. You can find more details on node requirements in the [Run a full node guide](/run-arbitrum-node/02-run-full-node.mdx). Furthermore, new node operators joining a network or node operators who come online following an extended period of offline time will require access to _historical_ blob data to sync up to the latest state of their Arbitrum chain. diff --git a/arbitrum-docs/run-arbitrum-node/run-nitro-dev-node.mdx b/arbitrum-docs/run-arbitrum-node/05-run-nitro-dev-node.mdx similarity index 100% rename from arbitrum-docs/run-arbitrum-node/run-nitro-dev-node.mdx rename to arbitrum-docs/run-arbitrum-node/05-run-nitro-dev-node.mdx diff --git a/arbitrum-docs/run-arbitrum-node/arbos-releases/arbos20.mdx b/arbitrum-docs/run-arbitrum-node/arbos-releases/arbos20.mdx index cfe8ada887..8f5799408c 100644 --- a/arbitrum-docs/run-arbitrum-node/arbos-releases/arbos20.mdx +++ b/arbitrum-docs/run-arbitrum-node/arbos-releases/arbos20.mdx @@ -12,7 +12,7 @@ ArbOS 20 Atlas is shipped via Nitro v2.3.1, which is available on Docker hub wit - [Nitro v2.3.1](https://github.com/OffchainLabs/nitro/releases/tag/v2.3.1) or higher - [nitro-contracts v1.2.1](https://github.com/OffchainLabs/nitro-contracts/releases/tag/v1.2.1) or higher - Wasm module root: `0x8b104a2e80ac6165dc58b9048de12f301d70b02a0ab51396c22b4b4b802a16a4` -- Access to the [Ethereum Beacon Chain APIs](https://ethereum.github.io/beacon-APIs/#/), either from your own self-managed parent chain Ethereum node or from a 3rd party provider like [those on this list](/run-arbitrum-node/05-l1-ethereum-beacon-chain-rpc-providers.mdx). +- Access to the [Ethereum Beacon Chain APIs](https://ethereum.github.io/beacon-APIs/#/), either from your own self-managed parent chain Ethereum node or from a 3rd party provider like [those on this list](/run-arbitrum-node/04-l1-ethereum-beacon-chain-rpc-providers.mdx). ### High-level description of ArbOS 20 changes @@ -28,7 +28,7 @@ ArbOS 20 is an upgrade to enable Arbitrum's support for the parent chain Ethereu ### Special notes on ArbOS 20: Atlas support for EIP-4844 -- Upgrading to **the Atlas ArbOS release will require access to the parent chain's Ethereum beacon chain endpoints to retrieve blob data. For nodes of a chain that come online 18 days after Atlas gets activated on their chain will need access to historical data to sync up to the latest state.** If you are not operating your own Ethereum consensus client, [please visit this page to view a list of beacon chain RPC providers](/run-arbitrum-node/05-l1-ethereum-beacon-chain-rpc-providers.mdx) where you can access blob data. +- Upgrading to **the Atlas ArbOS release will require access to the parent chain's Ethereum beacon chain endpoints to retrieve blob data. For nodes of a chain that come online 18 days after Atlas gets activated on their chain will need access to historical data to sync up to the latest state.** If you are not operating your own Ethereum consensus client, [please visit this page to view a list of beacon chain RPC providers](/run-arbitrum-node/04-l1-ethereum-beacon-chain-rpc-providers.mdx) where you can access blob data. - Applications on Arbitrum will not have to be modified or take any explicit action to get the benefits of using EIP-4844 (i.e., the whole chain opts-in with ArbOS 20 “Atlas”). - ArbOS 20 “Atlas” adds support for Arbitrum chains to send data in a blob storage format to data availability layers, like the parent chain Ethereum, that support the blob transaction type. This includes Arbitrum One and Arbitrum Nova. ArbOS 20 “Atlas” does not add support for Arbitrum chains to receive data in a blob storage format. This means that an L3 Arbitrum chain on top of an Arbitrum L2 will use calldata when posting L3 transaction data to the underlying L2. The child chain (L2) Arbitrum chain will then be able to post data to a parent chain data availability layer like Ethereum using blobs. - There currently aren’t estimates on what the end-user gas savings of using blob data will be. This topic is something being actively worked on and monitored. Without Mainnet data, the estimates for blob gas prices will not be accurate enough to reliably predict the cost reductions that users will experience - and even with Mainnet data, the savings will vary by use case (i.e., no current way to predict the price impacts from all blob gas market participants yet). In general, however, the use of blobs will reduce the cost of using Arbitrum L2s. To learn more about what EIP-4844 will mean for the child chain users, please checkout this [blog post on Medium by Offchain Lab's Co-foudner and Chief Scientist Ed Felten](https://medium.com/offchainlabs/eip-4844-what-does-it-mean-for-l2-users-5e86ebc4c028). @@ -58,7 +58,7 @@ To enable the posting of transaction data in Blobs to L1 Ethereum, you must set | `--node.batch-poster.post-4844-blobs` | Boolean. Default: `false`. Used to enable or disable the posting of transaction data using Blobs to L1 Ethereum. If using calldata is more expensive and if the parent chain supports EIP4844 blobs, the batch poster will use blobs when this flag is set to `true`. Can be `true` or `false`. | | `--node.batch-poster.ignore-blob-price` | Boolean. Default: `false`. If the parent chain supports EIP4844 blobs and `ignore-blob-price` is set to `true`, the batch poster will use EIP4844 blobs even if using calldata is cheaper. Can be `true` or `false`. | -The above configurations are also available in the [Nitro command line options reference section](/run-arbitrum-node/03-run-full-node.mdx#optional-parameters) and can be set using the command line or using the JSON node configuration below: +The above configurations are also available in the [Nitro command line options reference section](/run-arbitrum-node/02-run-full-node.mdx#optional-parameters) and can be set using the command line or using the JSON node configuration below: ```json "node": { diff --git a/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx b/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx index 9e00ea64aa..844703e912 100644 --- a/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx +++ b/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx @@ -88,7 +88,7 @@ DA servers also have an optional REST aggregator which, when a data batch is not Gather the following information: - The latest Nitro docker image: `@@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.4-28199cd@@` -- An RPC endpoint for the parent chain. It is recommended to use a [third-party provider RPC](/build-decentralized-apps/reference/01-node-providers.mdx#third-party-rpc-providers) or [run your own node](/run-arbitrum-node/03-run-full-node.mdx) to prevent being rate limited. +- An RPC endpoint for the parent chain. It is recommended to use a [third-party provider RPC](/build-decentralized-apps/reference/01-node-providers.mdx#third-party-rpc-providers) or [run your own node](/run-arbitrum-node/02-run-full-node.mdx) to prevent being rate limited. - The `SequencerInbox` contract address in the parent chain. - If you wish to configure a [REST aggregator for your DAS](#state-synchronization), you'll need the URL where the list of REST endpoints is kept. diff --git a/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx b/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx index d6bc5eb0ab..e5369fc53a 100644 --- a/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx +++ b/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx @@ -46,7 +46,7 @@ A mirror DAS will use the same tool and, thus, the same configuration options as Gather the following information: - The latest Nitro docker image: `@@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.4-28199cd@@` -- An RPC endpoint for the parent chain. It is recommended to use a [third-party provider RPC](/build-decentralized-apps/reference/01-node-providers.mdx#third-party-rpc-providers) or [run your own node](/run-arbitrum-node/03-run-full-node.mdx) to prevent being rate limited. +- An RPC endpoint for the parent chain. It is recommended to use a [third-party provider RPC](/build-decentralized-apps/reference/01-node-providers.mdx#third-party-rpc-providers) or [run your own node](/run-arbitrum-node/02-run-full-node.mdx) to prevent being rate limited. - The SequencerInbox contract address in the parent chain. - URL of the list of REST endpoints of other DA servers to configure the REST aggregator. diff --git a/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx b/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx index 24d8267233..001b1b20a8 100644 --- a/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx +++ b/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx @@ -23,8 +23,8 @@ Running an Arbitrum One **full node** in **archive mode** lets you access both p | Use case | Required node type(s) | Docs | | ------------------------------------------------------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | Access the **Arbitrum network** without running your own node | Fully managed by third-parties, exposed via RPC endpoints | [RPC endpoints and providers](/build-decentralized-apps/reference/01-node-providers.mdx) | -| Run an **archive node** for **Arbitrum Sepolia (testnet)** or **Arbitrum Nova** | Full node (Nitro) | [How to run a full node (Nitro)](/run-arbitrum-node/03-run-full-node.mdx) | -| Send **post-Nitro** archive requests | Full node (Nitro) | [How to run a full node (Nitro)](/run-arbitrum-node/03-run-full-node.mdx) | +| Run an **archive node** for **Arbitrum Sepolia (testnet)** or **Arbitrum Nova** | Full node (Nitro) | [How to run a full node (Nitro)](/run-arbitrum-node/02-run-full-node.mdx) | +| Send **post-Nitro** archive requests | Full node (Nitro) | [How to run a full node (Nitro)](/run-arbitrum-node/02-run-full-node.mdx) | | Send **pre-Nitro** archive requests | Full node (Classic) | [How to run a full node (Classic, pre-Nitro)](/run-arbitrum-node/more-types/03-run-classic-node.mdx) | | Send **post-Nitro** _and_ **pre-Nitro** archive requests | Full node (Nitro) _and_ full node (Classic) | That's what this how-to is for; you're in the right place. | diff --git a/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx b/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx index 2cef50d941..eace9d13f5 100644 --- a/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx +++ b/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx @@ -12,7 +12,7 @@ This page describes the different strategies a validator may follow and provides This how-to assumes that you're familiar with the following: -- How to run a full node (see instructions [here](/run-arbitrum-node/03-run-full-node.mdx)) +- How to run a full node (see instructions [here](/run-arbitrum-node/02-run-full-node.mdx)) - [How the Rollup protocol works](/how-arbitrum-works/05-validation-and-proving/02-rollup-protocol.mdx) - [How BoLD works](/how-arbitrum-works/bold/bold-technical-deep-dive.mdx#how-bold-uses-ethereum), if you're running a validator for a chain that has BoLD activated @@ -56,7 +56,7 @@ This section explains how to configure your node to act as a validator. ### Step 0: prerequisites -A validator node is a regular full node with validation enabled, so you'll have to know how to configure a full node. You can find instructions [here](/run-arbitrum-node/03-run-full-node.mdx). +A validator node is a regular full node with validation enabled, so you'll have to know how to configure a full node. You can find instructions [here](/run-arbitrum-node/02-run-full-node.mdx). Additionally, you'll need a wallet with enough funds to perform actions onchain and enough tokens to bond. Keep in mind that: @@ -100,7 +100,7 @@ Furthermore, the following logs will indicate that all components are working as ## Run a validator for an Arbitrum chain -Validation for Arbitrum chains (Orbit) works the same way as for DAO-governed Arbitrum chains. However, as specified in [How to run a node](/run-arbitrum-node/03-run-full-node.mdx#required-parameters), you need to include the information of the chain when configuring your node by using `--chain.info-json`. +Validation for Arbitrum chains (Orbit) works the same way as for DAO-governed Arbitrum chains. However, as specified in [How to run a node](/run-arbitrum-node/02-run-full-node.mdx#required-parameters), you need to include the information of the chain when configuring your node by using `--chain.info-json`. ```shell --chain.info-json= diff --git a/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx b/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx index 5e09792267..774eaa26ac 100644 --- a/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx +++ b/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx @@ -6,7 +6,7 @@ sidebar_position: 7 content_type: how-to --- -Arbitrum Nitro is the software that powers all Arbitrum chains. This how-to shows how you can build a Docker image, or binaries, directly from Nitro's source code. If you want to run a node for one of the Arbitrum chains, however, it is recommended that you use the docker image available on DockerHub, as explained in [How to run a full node](/run-arbitrum-node/03-run-full-node.mdx). +Arbitrum Nitro is the software that powers all Arbitrum chains. This how-to shows how you can build a Docker image, or binaries, directly from Nitro's source code. If you want to run a node for one of the Arbitrum chains, however, it is recommended that you use the docker image available on DockerHub, as explained in [How to run a full node](/run-arbitrum-node/02-run-full-node.mdx). This how-to assumes that you're running one of the following operating systems: diff --git a/arbitrum-docs/run-arbitrum-node/nitro/02-migrate-state-and-history-from-classic.mdx b/arbitrum-docs/run-arbitrum-node/nitro/02-migrate-state-and-history-from-classic.mdx index 286d0ce38c..43193b5bf0 100644 --- a/arbitrum-docs/run-arbitrum-node/nitro/02-migrate-state-and-history-from-classic.mdx +++ b/arbitrum-docs/run-arbitrum-node/nitro/02-migrate-state-and-history-from-classic.mdx @@ -8,7 +8,7 @@ content_type: how-to sidebar_position: 11 --- -When running a Nitro node for the first time on a chain that produced [classic blocks](/build-decentralized-apps/03-public-chains.mdx#classic-deprecated) in the past (like Arbitrum One), you need to initialize its database to, at least, the state of the chain after executing the last classic block. The common, and recommended, way of doing that is to provide a database snapshot using the `--init.url` option (as mentioned in [How to run a full node (Nitro)](/run-arbitrum-node/03-run-full-node.mdx)). In this how-to we show you an alternative way for doing that, migrating the state and history of the chain from a fully synced classic node. +When running a Nitro node for the first time on a chain that produced [classic blocks](/build-decentralized-apps/03-public-chains.mdx#classic-deprecated) in the past (like Arbitrum One), you need to initialize its database to, at least, the state of the chain after executing the last classic block. The common, and recommended, way of doing that is to provide a database snapshot using the `--init.url` option (as mentioned in [How to run a full node (Nitro)](/run-arbitrum-node/02-run-full-node.mdx)). In this how-to we show you an alternative way for doing that, migrating the state and history of the chain from a fully synced classic node. :::info Is this How-to for you? @@ -23,7 +23,7 @@ Keep in mind that this process only applies to Arbitrum One. Other Arbitrum chai To successfully migrate the state and history of the chain from a classic (pre-Nitro) node to a Nitro node, you'll need: - A fully synced classic node: you can find instructions on how to run a classic node in [this page](/run-arbitrum-node/more-types/03-run-classic-node.mdx). -- A clean, uninitialized Nitro node: you can find instructions on how to set up a Nitro node in [this page](/run-arbitrum-node/03-run-full-node.mdx). +- A clean, uninitialized Nitro node: you can find instructions on how to set up a Nitro node in [this page](/run-arbitrum-node/02-run-full-node.mdx). ## Step 1: Enable export options in your classic node @@ -87,5 +87,5 @@ This state import operation requires more resources than a regular run of a Nitr ## See also -- [How to run a full node (Nitro)](/run-arbitrum-node/03-run-full-node.mdx) +- [How to run a full node (Nitro)](/run-arbitrum-node/02-run-full-node.mdx) - [How to run a full node (Classic, pre-Nitro)](/run-arbitrum-node/more-types/03-run-classic-node.mdx) diff --git a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-parameters.mdx b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-parameters.mdx index 943b7e94cb..771d127e05 100644 --- a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-parameters.mdx +++ b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-parameters.mdx @@ -16,7 +16,7 @@ Additionally, use the parameter `--parent-chain.blob-client.beacon-url` to provi --parent-chain.blob-client.beacon-url= ``` -You can find a list of Ethereum beacon chain RPC providers [here](/run-arbitrum-node/05-l1-ethereum-beacon-chain-rpc-providers.mdx). Note that historical blob data is required for these chains to properly sync up if they are new or have been offline for more than 18 days. This means that the beacon chain RPC endpoint you use may also need to provide historical blob data. Please see [Special notes on ArbOS 20: Atlas support for EIP-4844](/run-arbitrum-node/arbos-releases/arbos20.mdx#special-notes-on-arbos-20-atlas-support-for-eip-4844) for more details. +You can find a list of Ethereum beacon chain RPC providers [here](/run-arbitrum-node/04-l1-ethereum-beacon-chain-rpc-providers.mdx). Note that historical blob data is required for these chains to properly sync up if they are new or have been offline for more than 18 days. This means that the beacon chain RPC endpoint you use may also need to provide historical blob data. Please see [Special notes on ArbOS 20: Atlas support for EIP-4844](/run-arbitrum-node/arbos-releases/arbos20.mdx#special-notes-on-arbos-20-atlas-support-for-eip-4844) for more details. #### 2. Arbitrum chain parameters diff --git a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-parameters.mdx b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-parameters.mdx index 0b08a8a3ab..1a8203f01d 100644 --- a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-parameters.mdx +++ b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-parameters.mdx @@ -22,7 +22,7 @@ Additionally, if the chain is a Layer-2 (L2) chain on top of Ethereum and uses b --parent-chain.blob-client.beacon-url= ``` -You can find a list of Ethereum beacon chain RPC providers [here](/run-arbitrum-node/05-l1-ethereum-beacon-chain-rpc-providers.mdx). Note that historical blob data is required for these chains to properly sync up if they are new or have been offline for more than 18 days. This means that the beacon chain RPC endpoint you use may also need to provide historical blob data. Please see [Special notes on ArbOS 20: Atlas support for EIP-4844](/run-arbitrum-node/arbos-releases/arbos20.mdx#special-notes-on-arbos-20-atlas-support-for-eip-4844) for more details. +You can find a list of Ethereum beacon chain RPC providers [here](/run-arbitrum-node/04-l1-ethereum-beacon-chain-rpc-providers.mdx). Note that historical blob data is required for these chains to properly sync up if they are new or have been offline for more than 18 days. This means that the beacon chain RPC endpoint you use may also need to provide historical blob data. Please see [Special notes on ArbOS 20: Atlas support for EIP-4844](/run-arbitrum-node/arbos-releases/arbos20.mdx#special-notes-on-arbos-20-atlas-support-for-eip-4844) for more details. #### 2. Child chain parameters diff --git a/arbitrum-docs/stylus/cli-tools-overview.md b/arbitrum-docs/stylus/cli-tools-overview.md index f14d25ab13..ba9675b99d 100644 --- a/arbitrum-docs/stylus/cli-tools-overview.md +++ b/arbitrum-docs/stylus/cli-tools-overview.md @@ -38,6 +38,6 @@ For more advanced usage and detailed guides, refer to the following resources: - **[Optimize WASM binaries](/stylus/how-tos/optimizing-binaries.mdx)** - **[Troubleshooting](/stylus/troubleshooting-building-stylus.md)** -- **[Run a Stylus dev node](/run-arbitrum-node/04-run-local-full-chain-simulation.mdx)** +- **[Run a Stylus dev node](/run-arbitrum-node/03-run-local-full-chain-simulation.mdx)** This overview page serves as the starting point for mastering the CLI tools available for Stylus development. From optimizing your contracts to debugging and verifying them, the `cargo-stylus` toolset is integral to a smooth development experience. diff --git a/arbitrum-docs/stylus/stylus-content-map.mdx b/arbitrum-docs/stylus/stylus-content-map.mdx new file mode 100644 index 0000000000..04f9fa60f8 --- /dev/null +++ b/arbitrum-docs/stylus/stylus-content-map.mdx @@ -0,0 +1,92 @@ +--- +id: stylus-content-map +title: Write Stylus Contracts +sidebar_label: Write Stylus contracts +--- + +import Card from '@site/src/components/Cards/Card'; + +# Write Stylus Contracts + +Let's learn how to write contracts with Stylus! + +
+ + + + + + + + + + + + +
diff --git a/arbitrum-docs/stylus/using-cli.mdx b/arbitrum-docs/stylus/using-cli.mdx index 1790ab0184..87e3573ea7 100644 --- a/arbitrum-docs/stylus/using-cli.mdx +++ b/arbitrum-docs/stylus/using-cli.mdx @@ -121,7 +121,7 @@ Available for commands involving transactions: | [Learn how to optimize WASM binaries](/stylus/how-tos/optimizing-binaries.mdx) | The `cargo-stylus` tool allows you to optimize WebAssembly (WASM) binaries, ensuring that your contracts are as efficient as possible. | | [Debug Stylus transactions](/stylus/how-tos/debugging-tx.mdx) | A guide to debugging transactions, helping you identify and fix issues. Gain insights into your Stylus contracts by debugging transactions. | | [Verify contracts](/stylus/how-tos/verifying-contracts.mdx) | Ensure that your Stylus contracts are correctly verified. Step-by-step instructions on how to verify your contracts using `cargo-stylus`. | -| [Run a Stylus dev node](/run-arbitrum-node/04-run-local-full-chain-simulation.mdx) | Learn how to run a local Arbitrum dev node to test your Stylus contracts. | +| [Run a Stylus dev node](/run-arbitrum-node/03-run-local-full-chain-simulation.mdx) | Learn how to run a local Arbitrum dev node to test your Stylus contracts. | #### Additional resources diff --git a/arbitrum-docs/welcome/get-started.mdx b/arbitrum-docs/welcome/get-started.mdx index 8103de6701..b9e8a3c6c1 100644 --- a/arbitrum-docs/welcome/get-started.mdx +++ b/arbitrum-docs/welcome/get-started.mdx @@ -14,17 +14,17 @@ Arbitrum suite along with onboarding guidance tailored to specific audiences. The Arbitrum suite includes the protocols, chains, services, and SDKs that power the Arbitrum ecosystem: -| Component | Description | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -| [Arbitrum Rollup](/how-arbitrum-works/05-validation-and-proving/02-rollup-protocol.mdx) | A **protocol** for scaling Ethereum smart contracts. | -| [Arbitrum AnyTrust](/how-arbitrum-works/08-anytrust-protocol.mdx) | A **protocol** for scaling Ethereum smart contracts even further, with a mild trust assumption. | -| [Arbitrum Nitro](/how-arbitrum-works/01-a-gentle-introduction.mdx) | The node **software** that codifies the Rollup and AnyTrust protocols. | -| [Arbitrum nodes](/run-arbitrum-node/03-run-full-node.mdx) | **Machines** that run Nitro in order to service and/or interact with an Arbitrum chain. | -| [Arbitrum One](https://portal.arbitrum.io/?chains=arbitrum-one) | A public Rollup **chain**. | -| [Arbitrum Nova](https://portal.arbitrum.io/?chains=arbitrum-nova) | A public AnyTrust **chain**. | -| [Arbitrum bridge](https://bridge.arbitrum.io/) | Lets you move ETH and ERC-20 tokens between Ethereum, Arbitrum, and select Arbitrum (Orbit) chains. | -| [Arbitrum (Orbit) chains](https://orbit.arbitrum.io/) | Lets you run your own Rollup and AnyTrust chains. | -| [Arbitrum Stylus](/stylus/gentle-introduction.mdx) | Lets you write EVM-compatible smart contracts in Rust and any other language that compiles to Wasm. | +| Component | Description | +| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| [Arbitrum Rollup](/how-arbitrum-works/05-validation-and-proving/02-rollup-protocol.mdx) | A **protocol** for scaling Ethereum smart contracts. | +| [Arbitrum AnyTrust](/how-arbitrum-works/08-anytrust-protocol.mdx) | A **protocol** for scaling Ethereum smart contracts even further, with a mild trust assumption. | +| [Arbitrum Nitro](/how-arbitrum-works/01-a-gentle-introduction.mdx) | The node **software** that codifies the Rollup and AnyTrust protocols. | +| [Arbitrum nodes](/run-arbitrum-node/02-run-full-node.mdx) | **Machines** that run Nitro in order to service and/or interact with an Arbitrum chain. | +| [Arbitrum One](https://portal.arbitrum.io/?chains=arbitrum-one) | A public Rollup **chain**. | +| [Arbitrum Nova](https://portal.arbitrum.io/?chains=arbitrum-nova) | A public AnyTrust **chain**. | +| [Arbitrum bridge](https://bridge.arbitrum.io/) | Lets you move `ETH` and `ERC-20` tokens between Ethereum, Arbitrum, and select Arbitrum (Orbit) chains. | +| [Arbitrum (Orbit) chains](https://orbit.arbitrum.io/) | Lets you run your own Rollup and AnyTrust chains. | +| [Arbitrum Stylus](/stylus/gentle-introduction.mdx) | Lets you write EVM-compatible smart contracts in Rust and any other language that compiles to Wasm. | ## Arbitrum for users @@ -52,7 +52,7 @@ The Arbitrum suite includes the protocols, chains, services, and SDKs that power | Resource | Description | | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -| [Run a full node](/run-arbitrum-node/03-run-full-node.mdx) | Targeted at node runners who want to access Arbitrum chains without having to connect to a third-party node. | +| [Run a full node](/run-arbitrum-node/02-run-full-node.mdx) | Targeted at node runners who want to access Arbitrum chains without having to connect to a third-party node. | | [Configure a Data Availability Committee](/run-arbitrum-node/data-availability-committees/01-get-started.mdx) | Targeted at Data Availability Committee members and Arbitrum chain operators who want to run a Data Availability Server. | ## Arbitrum for chain operators diff --git a/vercel.json b/vercel.json index 82cb408bd5..be3d90389c 100644 --- a/vercel.json +++ b/vercel.json @@ -1430,6 +1430,11 @@ "destination": "/(run-arbitrum-node/more-types/run-split-validator-node/?)", "permanent": false }, + { + "source": "/(run-arbitrum-node/node-types/?)", + "destination": "/(run-arbitrum-node/overview/?)", + "permanent": false + }, { "source": "/(run-arbitrum-node/run-local-dev-node/?)", "destination": "/run-arbitrum-node/run-local-full-chain-simulation", diff --git a/website/sidebars.js b/website/sidebars.js index 455afc9136..a076d9a184 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -575,7 +575,7 @@ const sidebars = { collapsed: true, link: { type: 'doc', - id: 'stylus/stylus-overview', + id: 'stylus/stylus-content-map', }, items: [ { @@ -746,17 +746,16 @@ const sidebars = { type: 'category', label: 'Run an Arbitrum node', collapsed: true, + link: { + type: 'doc', + id: 'node-running/node-running-content-map', + }, items: [ { type: 'doc', id: 'run-arbitrum-node/overview', label: 'Overview', }, - { - type: 'doc', - id: 'run-arbitrum-node/quickstart', - label: 'Quickstart', - }, { type: 'doc', id: 'run-arbitrum-node/run-full-node', @@ -842,6 +841,10 @@ const sidebars = { type: 'category', label: 'Sequencer', collapsed: true, + link: { + type: 'doc', + id: 'node-running/sequencer-content-map', + }, items: [ { type: 'doc', diff --git a/website/src/components/HomepageFeatures/index.tsx b/website/src/components/HomepageFeatures/index.tsx index dbed44849e..e9df00a1d7 100644 --- a/website/src/components/HomepageFeatures/index.tsx +++ b/website/src/components/HomepageFeatures/index.tsx @@ -27,7 +27,7 @@ const FeatureList: FeatureItem[] = [ { title: 'Quickstart: Run a node', Svg: require('@site/static/img/node.svg').default, - href: '/run-arbitrum-node/quickstart', + href: '/run-arbitrum-node/overview', description: 'Learn how to run a node to interact with any Arbitrum network.', }, {