Skip to content

Commit

Permalink
Merge branch 'master' into timeboost-gentle-intro
Browse files Browse the repository at this point in the history
  • Loading branch information
anegg0 authored Nov 25, 2024
2 parents 17c12c3 + 835f38c commit 087dfc0
Show file tree
Hide file tree
Showing 20 changed files with 74 additions and 31 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
arbitrum-docs/sdk
arbitrum-docs/stylus-by-example
.vercel
.DS_Store
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ import KnowMoreToolsBox from '../../for-devs/partials/_know-more-tools-box-parti

Here, we offer a compilation of tools and blockchain explorers that enable you to examine and oversee transactions, smart contracts, and overall blockchain activity related to decentralized applications (dApps) on different Arbitrum chains.

| Tool | Use-cases | Relevant links |
| ---------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Arbiscan | Track/trace transactions and examine addresses on Arbitrum networks | <ul><li>Arbitrum One: [https://arbiscan.io/](https://arbiscan.io/)</li><li>Arbitrum Nova: [https://nova.arbiscan.io/](https://nova.arbiscan.io/)</li><li>Arbitrum Sepolia: [https://sepolia.arbiscan.io](https://sepolia.arbiscan.io)</li></ul> |
| Blockscout | Track/trace transactions and examine addresses on Arbitrum networks | <ul><li>Stylus Testnet: [https://stylus-testnet-explorer.arbitrum.io](https://stylus-testnet-explorer.arbitrum.io)</li></ul> |
| Chainbase | Index, transform, and use on-chain data at scale | [Chainbase](https://chainbase.com/) |
| DexGuru | Track/trace transactions and examine addresses on Arbitrum networks | <ul><li>Arbitrum One: [https://arbitrum.dex.guru/](https://arbitrum.dex.guru/)</li><li>Arbitrum Nova: [https://nova.dex.guru/](https://nova.dex.guru/)</li></ul> |
| Dune | Visualize and analyze Arbitrum network data | <ul><li>[Dune](https://dune.com/)</li><li>[Arbitrum community-created Duune dashboard](https://dune.com/browse/dashboards?q=arbitrum)</li></ul> |
| OKLINK | Track/trace transactions and examine addresses on Arbitrum One network | <ul><li>Arbitrum One: [https://www.oklink.com/arbitrum](https://www.oklink.com/arbitrum)</li></ul> |
| Tool | Use-cases | Relevant links |
| ---------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Arbiscan | Track/trace transactions and examine addresses on Arbitrum networks | <ul><li>Arbitrum One: [https://arbiscan.io/](https://arbiscan.io/)</li><li>Arbitrum Nova: [https://nova.arbiscan.io/](https://nova.arbiscan.io/)</li><li>Arbitrum Sepolia: [https://sepolia.arbiscan.io](https://sepolia.arbiscan.io)</li></ul> |
| Blockscout | Track/trace transactions and examine addresses on Arbitrum networks | <ul><li>Arbitrum One: [https://arbitrum.blockscout.com/](https://arbitrum.blockscout.com/)</li><li>Arbitrum Nova: [https://arbitrum-nova.blockscout.com/](https://arbitrum-nova.blockscout.com/)</li><li>Arbitrum Sepolia: [https://arbitrum-sepolia.blockscout.com/](https://arbitrum-sepolia.blockscout.com/)</li></ul> |
| Chainbase | Index, transform, and use on-chain data at scale | [Chainbase](https://chainbase.com/) |
| DexGuru | Track/trace transactions and examine addresses on Arbitrum networks | <ul><li>Arbitrum One: [https://arbitrum.dex.guru/](https://arbitrum.dex.guru/)</li><li>Arbitrum Nova: [https://nova.dex.guru/](https://nova.dex.guru/)</li></ul> |
| Dune | Visualize and analyze Arbitrum network data | <ul><li>[Dune](https://dune.com/)</li><li>[Arbitrum community-created Duune dashboard](https://dune.com/browse/dashboards?q=arbitrum)</li></ul> |
| OKLINK | Track/trace transactions and examine addresses on Arbitrum One network | <ul><li>Arbitrum One: [https://www.oklink.com/arbitrum](https://www.oklink.com/arbitrum)</li></ul> |
2 changes: 1 addition & 1 deletion arbitrum-docs/for-devs/contribute.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'Contribute docs'
description: "Learn how to contribute to Arbitrum's documentation"
description: "Learn how to contribute to Arbitrum's open-source documentation. Enhance developer resources and play a key role in scaling Ethereum's leading Layer 2 ecosystem."
author: symbolpunk
---

Expand Down
2 changes: 1 addition & 1 deletion arbitrum-docs/for-devs/third-party-docs/contribute.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'Contribute third-party docs'
description: "Learn how to contribute to Arbitrum's documentation"
description: "Discover how to contribute third-party resources to Arbitrum's documentation. Share your expertise and help expand the largest Ethereum Layer 2 developer ecosystem."
sidebar_position: 0
---

Expand Down
6 changes: 3 additions & 3 deletions arbitrum-docs/how-arbitrum-works/arbos/geth.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Please note any links on this page may be referencing old releases of Nitro or o

Arbitrum uses various hooks to modify Geth's behavior when processing transactions. Each provides an opportunity for ArbOS to update its state and make decisions about the transaction during its lifetime. Transactions are applied using Geth's [`ApplyTransaction`][applytransaction_link] function.

Below is [`ApplyTransaction`][applytransaction_link]'s callgraph, with additional info on where the various Arbitrum-specific hooks are inserted. Click on any to go to their section. By default, these hooks do nothing so as to leave Geth's default behavior unchanged, but for chains configured with [`EnableArbOS`](#EnableArbOS) set to true, [`ReadyEVMForL2`](#ReadyEVMForL2) installs the alternative L2 hooks.
Below is [`ApplyTransaction`][applytransaction_link]'s callgraph, with additional info on where the various Arbitrum-specific hooks are inserted. Click on any to go to their section. By default, these hooks do nothing so as to leave Geth's default behavior unchanged, but for chains configured with [`EnableArbOS`](/how-arbitrum-works/arbos/geth#EnableArbOS) set to true, [`ReadyEVMForL2`](#ReadyEVMForL2) installs the alternative L2 hooks.

- `core.ApplyTransaction``core.applyTransaction``core.ApplyMessage`
- `core.NewStateTransition`
Expand All @@ -34,7 +34,7 @@ Below is [`ApplyTransaction`][applytransaction_link]'s callgraph, with additiona
- `evm.Call`
- `core.vm.EVMInterpreter.Run`
- [`PushCaller`](#PushCaller)
- [`PopCaller`](#PopCaller)
- [`PopCaller`](/how-arbitrum-works/arbos/geth#PopCaller)
- `core.StateTransition.refundGas`
- [`ForceRefundGas`](#ForceRefundGas)
- [`NonrefundableGas`](#NonrefundableGas)
Expand Down Expand Up @@ -176,7 +176,7 @@ Represents a user deposit from L1 to L2. This increases the user's balance by th

### [`ArbitrumSubmitRetryableTx`][arbitrumsubmitretryabletx_link]{#ArbitrumSubmitRetryableTx}

Represents a retryable submission and may schedule an [`ArbitrumRetryTx`](#ArbitrumRetryTx) if provided enough gas. Please see the [retryables documentation](/how-arbitrum-works/arbos/introduction.mdx#Retryables) for more info.
Represents a retryable submission and may schedule an [`ArbitrumRetryTx`](#ArbitrumRetryTx) if provided enough gas. Please see the [retryables documentation](/how-arbitrum-works/arbos/introduction.mdx#retryables) for more info.

### [`ArbitrumRetryTx`][arbitrumretrytx_link]{#ArbitrumRetryTx}

Expand Down
2 changes: 1 addition & 1 deletion arbitrum-docs/how-arbitrum-works/arbos/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ Based on this information, ArbOS maintains an L1 data fee, also tracked as part

The L2 pricing state tracks L2 resource usage to determine a reasonable L2 gas price. This process considers a variety of factors, including user demand, the state of Geth, and the computational speed limit. The primary mechanism for doing so consists of a pair of pools, one larger than the other, that drain as L2-specific resources are consumed and filled as time passes. L1-specific resources like L1 `calldata` are not tracked by the pools, as they have little bearing on the actual work done by the network actors that the speed limit is meant to keep stable and synced.

While much of this state is accessible through the [`ArbGasInfo`](/build-decentralized-apps/precompiles/02-reference.mdx#arbgasinfo) and [`ArbOwner`](/build-decentralized-apps/precompiles/02-reference.mdx#arbowner) precompiles, most changes are automatic and happen during [block production][block_production_link] and [the transaction hooks](geth#Hooks). Each of an incoming message's transactions removes from the pool the L2 component of the gas it uses, and afterward the message's timestamp [informs the pricing mechanism][notify_pricer_link] of the time that's passed as ArbOS [finalizes the block][finalizeblock_link].
While much of this state is accessible through the [`ArbGasInfo`](/build-decentralized-apps/precompiles/02-reference.mdx#arbgasinfo) and [`ArbOwner`](/build-decentralized-apps/precompiles/02-reference.mdx#arbowner) precompiles, most changes are automatic and happen during [block production][block_production_link] and [the transaction hooks](/how-arbitrum-works/arbos/geth#Hooks). Each of an incoming message's transactions removes from the pool the L2 component of the gas it uses, and afterward the message's timestamp [informs the pricing mechanism][notify_pricer_link] of the time that's passed as ArbOS [finalizes the block][finalizeblock_link].

ArbOS's larger gas pool [determines][maintain_limit_link] the per-block gas limit, setting a dynamic [upper limit][per_block_limit_link] on the amount of compute gas an L2 block may have. This limit is always enforced, though for the [first transaction][first_transaction_link] it's done in the [GasChargingHook](geth#GasChargingHook) to avoid sharp decreases in the L1 gas price from over-inflating the compute component purchased to above the gas limit. This improves UX by allowing the first transaction to succeed rather than requiring a resubmission. Because the first transaction lowers the amount of space left in the block, subsequent transactions do not employ this strategy and may fail from such compute-component inflation. This is acceptable because such transactions are only present in cases where the system is under heavy load and the result is that the user's transaction is dropped without charges since the state transition fails early. Those trusting the sequencer can rely on the transaction being automatically resubmitted in such a scenario.

Expand Down
2 changes: 1 addition & 1 deletion arbitrum-docs/how-arbitrum-works/assertion-tree.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ The only delay that users experience during a dispute is of their [L2 to L1 mess

### Detailed Spec

For a more detailed breakdown / specification of the assertion tree protocol, see [Inside Arbitrum](/how-arbitrum-works/inside-arbitrum-nitro.mdx#arbitrum#rollup#protocol).
For a more detailed breakdown / specification of the assertion tree protocol, see [Inside Arbitrum](/how-arbitrum-works/inside-arbitrum-nitro.mdx#arbitrum-rollup-protocol).
23 changes: 23 additions & 0 deletions arbitrum-docs/launch-orbit-chain/AEPLicense.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: 'The AEP License'
sidebar_label: 'Orbit Licensing'
description: 'Learn about the Orbit license and AEP.'
author: SHughes
sme: SHughes
user_story: As a prospective Orbit chain owner, I need to understand the Orbit license.
content_type: get-started
---

## What do I need to know about the Orbit license?

Nitro is currently licensed under a [Business Source License](https://github.com/OffchainLabs/nitro?tab=License-1-ov-file), similar to DeFi protocols like Uniswap and Aave, among others, with an “Additional Use Grant” to ensure that everyone can have full comfort using and running nodes on all public Arbitrum chains.

The Additional Use Grant also permits deployment of the Nitro software in a permissionless, zero-cost fashion, as a new blockchain provided that the chain settles to either Arbitrum One or Arbitrum Nova. L3s that settle to Arbitrum One or Nova have no obligation to share revenue with the Arbitrum DAO and remain first class members of the Arbitrum ecosystem.
As an expansion of this license, the [Arbitrum Expansion Program](https://docs.arbitrum.foundation/aep/ArbitrumExpansionProgramTerms.pdf) (AEP) is a self-service licensing model that makes it easy for developers to build and customize L2s/L3s using Arbitrum’s technology alongside different parent chains.

Benefits:

- Leverage battle-tested technology to permissionlessly deploy L2s/L3s that settle to any supported parent chain.
- Governance freedom - Orbit chains are not required to be governed by the Arbitrum DAO.
- Flexible licensing allows developers to modify chain configurations. Orbit chains are free to modify any part of the stack, including implementation of custom gas tokens, alternative DA integrations, novel sequencing mechanisms, account abstraction, altVMs, etc.
- L3s that settle to parent chains other than Arb1 and Nova must contribute [net chain revenue](https://docs.arbitrum.io/launch-orbit-chain/how-tos/calculate-aep-fees#calculating-aep-fees), where 8% flows to the DAO and 2% to the developer guild.
6 changes: 6 additions & 0 deletions arbitrum-docs/launch-orbit-chain/how-tos/fast-withdrawals.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -194,3 +194,9 @@ The following parameters need to be configured in those nodes.
| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--node.staker.enable-fast-confirmation=true` | Enables fast withdrawals in the validator node |
| `--node.staker.make-assertion-interval=0h15m0s` | Since assertions need to be created for them to be confirmed, the minimum interval to create these assertions should be set to an amount close to the `minimumAssertionPeriod` defined in the Rollup contract. Modify `0h15m0s` to the configured value. |

:::note

Immediately after configuring fast withdrawals, your chain may not operate at full speed yet. This ramp-up is because the validators must work through the backlog of assertions that have yet to be confirmed. You will see a series of 'NodeCreated' and 'NodeConfirmed' events. Once the backlog is processed, your chain should operate fully at speed.

:::
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ The Orbit SDK provides two APIs, `createRollupPrepareDeploymentParamsConfig` and

This API is designed to take parameters defined in the Config struct and fill in the rest with default values. It outputs a complete Config struct that is ready for use.

For example, to create a Config struct with a specific chain ID (`chainId`), an owner address (`deployer_address`), and a `chainConfig` as described in the [previous section](#chain-config-parameter), you would use the Orbit SDK as follows:
For example, to create a Config struct with a specific chain ID (`chainId`), an owner address (`deployer_address`), and a `chainConfig` as described in the [previous section](/launch-orbit-chain/how-tos/orbit-sdk-deploying-rollup-chain#chain-config-parameter), you would use the Orbit SDK as follows:

```js
import { createPublicClient, http } from 'viem';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ Once an Orbit chain has been deployed and initialized, the bridge contracts need

The token bridge deployment process is the same for all Orbit chains types except for the following:

- **Custom fee token Orbit chains** which require [token approval](#step-1).
- **`ETH`-based Orbit chains**, for which you need to [set up a WETH gateway](#step-5).
- **Custom fee token Orbit chains** which require [token approval](/launch-orbit-chain/how-tos/orbit-sdk-deploying-token-bridge#step-1).
- **`ETH`-based Orbit chains**, for which you need to [set up a WETH gateway](/launch-orbit-chain/how-tos/orbit-sdk-deploying-token-bridge#step-5).

:::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ Orbit's product roadmap is firmly aligned with Ethereum's vision of a decentrali

### What should I know about Orbit's licensing?

L3 Orbit chains that settle to DAO-governed chains like Arbitrum One and Nova can be permissionlessly deployed without restrictions. For Orbit chains that are settling to any other Ethereum chain, the [Arbitrum Orbit Expansion program](https://forum.arbitrum.foundation/t/the-arbitrum-expansion-program-and-developer-guild/20722) creates a self-service path to launching. Via the permissionless revenue-sharing model of the program, Orbit chains are granted the rights to build customized L2s or L3s (or L4s and beyond) that settle to Ethereum directly or other Ethereum chains, such as optimistic rollups, zk-rollups, optimiums, and validiums.
You can launch any Orbit chain permissionlessly. Nitro is licensed under a Business Source license, similar to DeFi protocols like Uniswap and Aave, among others. This license contains an Additional Use Grant that permits the permissionless deployment of Nitro software on blockchains that settle to Arbitrum One or Nova. However, Orbit chains that settle to a parent chain other than Arbitrum One or Nova are subject to additional licensing guidelines under the [AEP](https://docs.arbitrum.foundation/aep/ArbitrumExpansionProgramTerms.pdf).

### I'd love to tinker with Orbit! What should I do next?

Expand Down
Loading

0 comments on commit 087dfc0

Please sign in to comment.