Skip to content

OffchainLabs/nitro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24,871 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Arbitrum Nitro

Next Generation Ethereum L2 Technology »

About Arbitrum Nitro

Logo

Nitro is the latest iteration of the Arbitrum technology. It is a fully integrated, complete layer 2 optimistic rollup system, including fraud proofs, the sequencer, the token bridges, advanced calldata compression, and more.

See the live docs-site here (or here for markdown docs source.)

See here for security audit reports.

The Nitro stack is built on several innovations. At its core is a new prover, which can do Arbitrum’s classic interactive fraud proofs over WASM code. That means the L2 Arbitrum engine can be written and compiled using standard languages and tools, replacing the custom-designed language and compiler used in previous Arbitrum versions. In normal execution, validators and nodes run the Nitro engine compiled to native code, switching to WASM if a fraud proof is needed. We compile the core of Geth, the EVM engine that practically defines the Ethereum standard, right into Arbitrum. So the previous custom-built EVM emulator is replaced by Geth, the most popular and well-supported Ethereum client.

The last piece of the stack is a slimmed-down version of our ArbOS component, rewritten in Go, which provides the rest of what’s needed to run an L2 chain: things like cross-chain communication, and a new and improved batching and compression system to minimize L1 costs.

Essentially, Nitro runs Geth at layer 2 on top of Ethereum, and can prove fraud over the core engine of Geth compiled to WASM.

Arbitrum One successfully migrated from the Classic Arbitrum stack onto Nitro on 8/31/22. (See state migration and dapp migration for more info).

Building nitro-private

nitro-private routes a subset of submodules (go-ethereum, wasmer) through -private forks. First-time setup:

git clone git@github.com:OffchainLabs/nitro-private.git   # no need for --recurse-submodules
cd nitro-private
make init-submodules
make check-submodules

See docs/private-submodules.md for the full workflow, including branch switching, the pre-push guard hook, and the CI counterpart.

License

Nitro is currently licensed under a Business Source License, similar to our friends at Uniswap and Aave, 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 the deployment of the Nitro software, in a permissionless fashion and without cost, as a new blockchain provided that the chain settles to either Arbitrum One or Arbitrum Nova.

For those that prefer to deploy the Nitro software either directly on Ethereum (i.e. an L2) or have it settle to another Layer-2 on top of Ethereum, the Arbitrum Expansion Program (the "AEP") was recently established. The AEP allows for the permissionless deployment in the aforementioned fashion provided that 10% of net revenue (as more fully described in the AEP) is contributed back to the Arbitrum community in accordance with the requirements of the AEP.

Support policy and supported versions

We will always support the current minor release of Nitro. Older versions of Nitro will be supported until either (shortest of):

  • 30 calendar days have passed since its release and there is a newer minor release, or
  • Offchain communicates a critical security concern about a version that warrants immediate upgrading to a newer, fixed version.

Visit the documentation Support policy page for more detail.

Current supported Nitro versions

Currently supported Relevant links
Nitro 3.10.x GitHub
Nitro 3.9.9 GitHub

Special note about ArbOS & Arbitrum Classic

  • Only the ArbOS release that is activated on mainnet Arbitrum One will receive security updates and urgent vulnerability patches. We strongly recommend you stay up to date with the latest ArbOS since only the latest version will receive security updates. The activation timestamps for ArbOS upgrades on Arbitrum One can be found here, with the most recent entry being the ArbOS version that is actively being used on Arbitrum One.
    • Alternatively, you may verify the ArbOS version on Arbitrum One using the arbOSVersion() method on the ArbSys percompile at 0x000....64. The result will be offset by 55 as the first version of Nitro is known as version 56 (e.g,. a response of 106 indicates that the ArbOS version is 51).
  • Arbitrum Classic will also continue to be supported.

Contact

Discord - Arbitrum

Twitter: Arbitrum

About

Nitro goes vroom and fixes everything

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors