Skip to content

Commit

Permalink
fixing broken links
Browse files Browse the repository at this point in the history
  • Loading branch information
pete-vielhaber committed Jan 8, 2025
1 parent f8338ef commit ca821a5
Show file tree
Hide file tree
Showing 21 changed files with 79 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ The Arbitrum Foundation will track compliance based on fees received through the

## How can I set up an AEP fee router on my Orbit chain?

You can learn how to set up your AEP fee router in [implementation guide](/launch-orbit-chain/how-tos/set-up-aep-fee-router.mdx).
You can learn how to set up your AEP fee router in [implementation guide](/launch-orbit-chain/02-configure-your-chain/common-configurations/set-up-aep-fee-router.mdx).
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ target_audience: 'Developers maintaining Orbit chains.'
sidebar_position: 3
---

This how-to provides step-by-step instructions for Orbit chain operators who want to upgrade ArbOS on their Orbit chain(s). Familiarity with ArbOS, Orbit, and [chain ownership](../concepts/chain-ownership.md) is expected. Note that Orbit chain owners have full discretion over when and whether to upgrade their ArbOS version.
This how-to provides step-by-step instructions for Orbit chain operators who want to upgrade ArbOS on their Orbit chain(s). Familiarity with ArbOS, Orbit, and [chain ownership](../../concepts/chain-ownership.md) is expected. Note that Orbit chain owners have full discretion over when and whether to upgrade their ArbOS version.

The specific upgrade requirements for each ArbOS release are located under each reference page for that specific [ArbOS release](/run-arbitrum-node/arbos-releases/01-overview.mdx#list-of-available-arbos-releases).

Expand All @@ -24,7 +24,7 @@ Note that upgrading your node version _must occur_ before the deadline establish

While every ArbOS upgrade will require an update to the Wasm module root, not every ArbOS upgrade will require an upgrade to the chain's `nitro-contracts` version.

If necessary, as defined in the release notes for each ArbOS release ([example of ArbOS 20](../../run-arbitrum-node/arbos-releases/arbos20.mdx)), you may need to deploy new versions of some (or all) of the Nitro contracts to the parent chain of your Orbit chain. These contracts include the rollup logic, bridging logic, fraud-proof contracts, and interfaces for interacting with Nitro precompiles. To verify the current version of your Nitro contracts, follow [these instructions](https://github.com/OffchainLabs/orbit-actions/blob/main/README.md#check-version-and-upgrade-path) while replacing the inbox contract address and network name with that of your Orbit chain. This information will allow you to find the correct upgrade path for your Nitro contracts.
If necessary, as defined in the release notes for each ArbOS release ([example of ArbOS 20](/run-arbitrum-node/arbos-releases/arbos20.mdx)), you may need to deploy new versions of some (or all) of the Nitro contracts to the parent chain of your Orbit chain. These contracts include the rollup logic, bridging logic, fraud-proof contracts, and interfaces for interacting with Nitro precompiles. To verify the current version of your Nitro contracts, follow [these instructions](https://github.com/OffchainLabs/orbit-actions/blob/main/README.md#check-version-and-upgrade-path) while replacing the inbox contract address and network name with that of your Orbit chain. This information will allow you to find the correct upgrade path for your Nitro contracts.

To update the Wasm module root and deploy your chain's Nitro contracts to the parent chain for the most recent ArbOS release, you will need the following inputs (obtained from the [requirements for the targeted ArbOS release](/run-arbitrum-node/arbos-releases/01-overview.mdx)):

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ This includes:

In the event that a `ChildToParentRouter` does not connect to the address controlled by the Arbitrum Foundation on Ethereum, an Orbit chain must deploy successive `ChildToParentRouter` contracts until a connection to such address is established. Additional `ChildToParentRouter` contracts configured to route ETH have been deployed in certain networks and can be leveraged by chains created on top of these networks. You can see which networks have a router deployed [here](#canonical-contracts).

Optionally, an Orbit chain can decide to deduct assertion costs by following the instructions in the [Deducting Assertion Costs](/launch-orbit-chain/how-tos/calculate-aep-fees#assertion-costs) section:
Optionally, an Orbit chain can decide to deduct assertion costs by following the instructions in the [Deducting Assertion Costs](/launch-orbit-chain/02-configure-your-chain/common-configurations/calculate-aep-fees.mdx#assertion-costs) section:

<aside>
🚨 Layer-3 chains with custom gas tokens with L2-based token contracts cannot send their custom gas tokens to Ethereum. A future version of the AEP Fee Router may allow Orbit chains with L2-based tokens to distribute fees using the routing system.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ Orbit chains have three areas of configuration:

## 1. Parent chain configuration

Configuring the parent chain is the initial step to setting up your Orbit chain. Most of the parent chain configurations are specified during the setup phase. Detailed instructions can be found in the [Rollup Deployment Parameters](/launch-orbit-chain/how-tos/orbit-sdk-deploying-rollup-chain.md#rollup-deployment-parameters) section of the Rollup deployment guide.
Configuring the parent chain is the initial step to setting up your Orbit chain. Most of the parent chain configurations are specified during the setup phase. Detailed instructions can be found in the [Rollup Deployment Parameters](/launch-orbit-chain/03-deploy-an-orbit-chain/02-deploying-rollup-chain.md#rollup-deployment-parameters) section of the Rollup deployment guide.

After the initial setup, the chain owner can modify configurations as needed. For instance, the validator set can be updated by invoking the [`setValidKeyset`](https://github.com/OffchainLabs/nitro-contracts/blob/90037b996509312ef1addb3f9352457b8a99d6a6/src/bridge/SequencerInbox.sol#L751) function with a new set of validators. This adaptability facilitates your chain's optimization and management.

## 2. Node configuration

As a chain deployer, you can configure a node during the node config generation process with the `nodeConfig.json` file. `nodeConfig.json` allows you to set up a node as a validator or a sequencer and specify requirements or performance criteria. For more information, refer to the [Node Configuration Preparation](orbit-sdk-preparing-node-config.md) documentation.
As a chain deployer, you can configure a node during the node config generation process with the `nodeConfig.json` file. `nodeConfig.json` allows you to set up a node as a validator or a sequencer and specify requirements or performance criteria. For more information, refer to the [Node Configuration Preparation](/launch-orbit-chain/how-tos/orbit-sdk-preparing-node-config.md) documentation.

## 3. Child chain parameter configuration

Expand All @@ -52,8 +52,8 @@ You can use these setter functions to configure the child chain parameters:
| `setSpeedLimit` | The fee mechanism on the Arbitrum Nitro stack differs from the Ethereum blockchain. The Nitro stack has a parameter called the speed limit, which targets the number of gas consumed on the child chain per second. If the amount of gas per second exceeds this pre-specified amount, the base fee on the child chain will increase, and vice versa. The current speed limit on Arbitrum One is 7 million gas per second, meaning if the Arbitrum One chain consumes more than 7 million gas per second, its base fee will increase. For more information on the speed limit, please refer to this [document explaining the concept of speed limit in the Nitro stack](https://docs.arbitrum.io/inside-arbitrum-nitro/#the-speed-limit). |
| `setInfraFeeAccount` | Sets the infrastructure fee account address, which receives all fees collected on the child chain. It is meant to receive the minimum base fee, with any amount above that going to the network fee account. |
| `setNetworkFeeAccount` | Sets the network fee account address. As mentioned, this address collects all fees above the base fee. Note that if you set this amount to the 0 address on your chain, all fees will be deposited into the infrastructure fee account. |
| `scheduleArbOSUpgrade` | If you plan to upgrade the <a data-quicklook-from="arbos">ArbOS</a> version of your chain, this method can help you schedule the upgrade. For a complete guide, please refer to the explanation for the [arbos upgrade](arbos-upgrade.md). |
| `setChainConfig` | We discussed the `chainConfig` in the [Rollup deployment guide](./orbit-sdk-deploying-rollup-chain.md#4-chainconfig) in detail. If you wish to change any field of the `chainConfig`, you need to use this method on the child chain. |
| `scheduleArbOSUpgrade` | If you plan to upgrade the <a data-quicklook-from="arbos">ArbOS</a> version of your chain, this method can help you schedule the upgrade. For a complete guide, please refer to the explanation for the [arbos upgrade](/launch-orbit-chain/02-configure-your-chain/common-configurations/arbos-upgrade.md). |
| `setChainConfig` | We discussed the `chainConfig` in the [Rollup deployment guide](/launch-orbit-chain/03-deploy-an-orbit-chain/02-deploying-rollup-chain.md#4-chainconfig) in detail. If you wish to change any field of the `chainConfig`, you need to use this method on the child chain. |

### Getter functions

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ AnyTrust chains implement the Arbitrum AnyTrust protocol, an alternative to the

### Deployment steps

The deployment process of AnyTrust chains is very similar to that of [Rollup chains](/launch-orbit-chain/how-tos/orbit-sdk-deploying-rollup-chain.md#rollup-configuration-parameters), but with some differences that we'll discuss in this guide.
The deployment process of AnyTrust chains is very similar to that of [Rollup chains](/launch-orbit-chain/03-deploy-an-orbit-chain/02-deploying-rollup-chain.md#rollup-configuration-parameters), but with some differences that we'll discuss in this guide.

Here are the steps involved in the deployment process:

Expand Down Expand Up @@ -64,7 +64,7 @@ struct Config {
}
```

You can create the `chainConfig` parameter within the `Config` using `prepareChainConfig`. You can find more details on that function [here](/launch-orbit-chain/how-tos/orbit-sdk-deploying-rollup-chain.md#41-preparechainconfig).
You can create the `chainConfig` parameter within the `Config` using `prepareChainConfig`. You can find more details on that function [here](/launch-orbit-chain/03-deploy-an-orbit-chain/02-deploying-rollup-chain.md#41-preparechainconfig).

```js
import { prepareChainConfig } from '@arbitrum/orbit-sdk';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ See the ["create a rollup custom fee token" example](https://github.com/Offchain

This guide will help you configure and deploy a custom gas token Orbit chain.

Custom gas token orbit chains let participants pay transaction fees in `ERC-20` token instead of `ETH`, which is ideal for use cases requiring this feature and low transaction fees. You can learn more on our page covering [custom gas token requirements and configuration](./launch-orbit-chain/configure-your-chain/common-configurations/01-use-a-custom-gas-token.mdx).
Custom gas token orbit chains let participants pay transaction fees in `ERC-20` token instead of `ETH`, which is ideal for use cases requiring this feature and low transaction fees. You can learn more on our page covering [custom gas token requirements and configuration](/launch-orbit-chain/02-configure-your-chain/common-configurations/01-use-a-custom-gas-token.mdx).

Deploying a custom gas token Orbit chain is similar to deploying an AnyTrust Orbit chain but with additional steps. To take advantage of all the chains configurations supported by Orbit, we recommend reading our short guides about [Rollup](orbit-sdk-deploying-rollup-chain.md) and [AnyTrust](orbit-sdk-deploying-anytrust-chain.md) configuration.
Deploying a custom gas token Orbit chain is similar to deploying an AnyTrust Orbit chain but with additional steps. To take advantage of all the chains configurations supported by Orbit, we recommend reading our short guides about [Rollup](/launch-orbit-chain/03-deploy-an-orbit-chain/02-deploying-rollup-chain.md) and [AnyTrust](/launch-orbit-chain/03-deploy-an-orbit-chain/03-deploying-anytrust-chain.md) configuration.

:::note

Expand All @@ -41,7 +41,7 @@ The difference between custom gas token chains and other Orbit chains is the use

## 2. Chain configuration

Chain configuration is the same as for any other AnyTrust chain. See more [here](/launch-orbit-chain/how-tos/orbit-sdk-deploying-anytrust-chain.md#1-setting-up-the-chain-parameters).
Chain configuration is the same as for any other AnyTrust chain. See more [here](/launch-orbit-chain/03-deploy-an-orbit-chain/03-deploying-anytrust-chain.md#1-setting-up-the-chain-parameters).

## 3. Token approval before deployment process

Expand Down Expand Up @@ -93,7 +93,7 @@ const approvalTxRequest = await createRollupPrepareCustomFeeTokenApprovalTransac

## 4. Deployment process

The overall deployment process, including the use of APIs like `createRollupPrepareDeploymentParamsConfig` and `createRollupPrepareTransactionRequest`, remains similar to the [AnyTrust deployment](orbit-sdk-deploying-anytrust-chain.md) process. However, attention must be given to incorporating the `ERC-20` token details into these configurations.
The overall deployment process, including the use of APIs like `createRollupPrepareDeploymentParamsConfig` and `createRollupPrepareTransactionRequest`, remains similar to the [AnyTrust deployment](./03-deploying-anytrust-chain.md) process. However, attention must be given to incorporating the `ERC-20` token details into these configurations.

:::note

Expand All @@ -116,4 +116,4 @@ const txRequest = await createRollupPrepareTransactionRequest({
});
```

All other parts would be the same as explained in the [Rollup Orbit chain deployment page](orbit-sdk-deploying-rollup-chain.md).
All other parts would be the same as explained in the [Rollup Orbit chain deployment page](/launch-orbit-chain/03-deploy-an-orbit-chain/02-deploying-rollup-chain.md).
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ Please continue reading [customize stf](./customize-stf.mdx#step-3-run-the-node-

## Schedule ArbOS upgrade

After you add ArbOS version control to the Nitro code, you can update ArbOS. You can refer to the document [ArbOS upgrade](/launch-orbit-chain/how-tos/arbos-upgrade) to upgrade. It is recommended that teams who opt to version control their custom ArbOS version choose an ArbOS version number that builds on top of the canonical releases shipped by Offchain Labs. As an example, if your team is customizing ArbOS 31, we recommend versioning your ArbOS version as ArbOS 32.
After you add ArbOS version control to the Nitro code, you can update ArbOS. You can refer to the document [ArbOS upgrade](/launch-orbit-chain/02-configure-your-chain/common-configurations/arbos-upgrade.md) to upgrade. It is recommended that teams who opt to version control their custom ArbOS version choose an ArbOS version number that builds on top of the canonical releases shipped by Offchain Labs. As an example, if your team is customizing ArbOS 31, we recommend versioning your ArbOS version as ArbOS 32.
It should be noted that if you set a higher ArbOS version as the upgrade target, all the features added between the current and target versions will be activated.
For example, if your current version is ArbOS v18 and you set the target version to v25, all the features between v18 and v25 will be loaded.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import CustomizeCautionBannerPartial from '../partials/_orbit-customize-caution-

The guidance in this document will only work if you use `eth_call` to call the new precompiles. If you call them from other contracts or add non-view/pure methods, this approach will break the block validation.

To support these additional use-cases, follow the instructions described in [How to customize your Orbit chain's behavior](/launch-orbit-chain/customize-your-chain/customize-stf.mdx).
To support these additional use-cases, follow the instructions described in [How to customize your Orbit chain's behavior](./customize-stf.mdx).

:::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Other requirements:

- It is assumed there is already a USDC token deployed and used on the parent chain.
- Also, it is assumed that the standard Orbit chain ownership system is used, i.e., `UpgradeExecutor` is the owner of the `ownable` contracts, and there is an EOA or multi-sig that has the executor role on the `UpgradeExecutor`.
- Refer to the [token bridge overview page](/launch-orbit-chain/deploy-an-orbit-chain/deploying-token-bridge.md) for more information about the token bridge design and operational dynamics. You can learn more in our [overview of gateways operating models](/build-decentralized-apps/token-bridging/token-bridge-erc20#other-flavors-of-gateways).
- Refer to the [token bridge overview page](/launch-orbit-chain/03-deploy-an-orbit-chain/05-deploying-token-bridge.md) for more information about the token bridge design and operational dynamics. You can learn more in our [overview of gateways operating models](/build-decentralized-apps/token-bridging/token-bridge-erc20#other-flavors-of-gateways).

## Deployment steps

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ content_type: faq
---

import FAQStructuredDataJsonLd from '@site/src/components/FAQStructuredData';
import FAQQuestions from '../partials/_troubleshooting-orbit-partial.mdx';
import FAQQuestions from '../../partials/_troubleshooting-orbit-partial.mdx';

<FAQStructuredDataJsonLd faqsId="building-orbit" />
<FAQQuestions />
Expand Down
Loading

0 comments on commit ca821a5

Please sign in to comment.