Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pages/builders/node-operators/network-upgrades.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ before the timestamp will cause a chain divergence. You will need to resync
your node to reconcile the chain. Optimistic activation times refer to times
that are pending governance approval.

| Upgrade | Governance Approval | [OP Mainnet Activations](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.yaml) | [OP Sepolia Activations](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/sepolia/superchain.yaml) |
| Upgrade | Governance Approval | [OP Mainnet Activations](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml) | [OP Sepolia Activations](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/sepolia/superchain.toml) |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| [Fjord](https://specs.optimism.io/protocol/superchain-upgrades.html#fjord) | [TBD](https://gov.optimism.io/t/upgrade-proposal-9-fjord-network-upgrade/8236) | Optimistically Wed Jul 10 16:00:01 UTC 2024 (`1720627201`) | Wed May 29 16:00:00 UTC 2024 (`1716998400`) |
| [Ecotone](https://specs.optimism.io/protocol/superchain-upgrades.html#ecotone) | [approved](https://gov.optimism.io/t/upgrade-proposal-5-ecotone-network-upgrade/7669) | Thu Mar 14 00:00:01 UTC 2024 (`1710374401`) | Wed Feb 21 17:00:00 UTC 2024 (`1708534800`) |
Expand Down
4 changes: 2 additions & 2 deletions pages/builders/notices/fjord-changes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ The proposed Fjord upgrade impacts OP chains and requires chain operators to upg
If you are operating an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Fjord activation date is part of the `op-node` and `op-geth` nodes, and are using the [--network](/builders/node-operators/configuration/consensus-config#network) and [--op-network](/builders/node-operators/configuration/execution-config#op-network-betaop-network) flags. No action is needed for the sequencer after preparing the `SystemConfig` transaction. Please skip to [Step 3: Prepare Batcher](#prepare-batcher).
</Callout>

For custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.yaml). You have two configuration options for your sequencer node:
For custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). You have two configuration options for your sequencer node:

* **Option 1:** Set the Fjord activation date in your `rollup.json` config file. You will still need to set the `override.fjord` flag in `op-geth` with the UNIX timestamp.
* **Option 2:** Alternatively, chain operators can use the override flags to configure your sequencer node by specifying a time in the future when Fjord will activate.
Expand Down Expand Up @@ -122,7 +122,7 @@ These following steps are necessary for EVERY node operator:
If you are operating a node for an OP Chain that has an entry in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the Fjord activation date is part of the `op-node` and `op-geth` nodes. So, no action is needed for the sequencer after upgrading to the latest release. Please skip to [Step 3: Verify Your Configuration](#verify-your-configuration).
</Callout>

For node operators of custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.yaml). This can be done one of two ways:
For node operators of custom chains not included in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), you will need to manually configure the [activation timestamp](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/configs/mainnet/superchain.toml). This can be done one of two ways:

* **Option 1:** Set the activation time in the `rollup.json` for `op-node`. You will still need to set the `override.fjord` flag in `op-geth` if you use this option.
* **Option 2:** Set the activation time via overrides (CLI) in both `op-node` and `op-geth`. These will need to be set on `op-node` and `op-geth` for the sequencer and all other nodes.
Expand Down
2 changes: 1 addition & 1 deletion pages/builders/tools/build/account-abstraction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { Callout } from 'nextra/components'
# Account Abstraction

<Callout type="default">
This page includes providers that meet specific [inclusion criteria](#inclusion-criteria), as outlined below. Please visit the [community account abstractions page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/account-abstraction) for an additional listing of third-party account abstraction tools.
This page includes providers that meet specific [inclusion criteria](#inclusion-criteria), as outlined below. Please visit the [community account abstractions page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/account-abstraction.md) for an additional listing of third-party account abstraction tools.
</Callout>

[ERC-4337](https://www.erc4337.io/docs/paymasters/introduction), also known as Account Abstraction, enables more opportunities for apps and wallet developers to innovate on user experiences, including the ability to:
Expand Down
6 changes: 3 additions & 3 deletions pages/builders/tools/build/oracles.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,9 @@ You can explore the full catalog of Pyth Price Feed IDs for [OP Mainnet and Sepo

Builders can choose how they want to consume the data among 3 dedicated models:

* [RedStone Core](https://docs.redstone.finance/docs/smart-contract-devs/get-started/redstone-core) (pull oracle) - less than 10s update time, broad spectrum of feeds, best for most use cases. All [Core Price Feeds](https://app.redstone.finance/#/app/tokens) are available on OP Mainnet & OP Sepolia.
* [RedStone Classic](https://docs.redstone.finance/docs/smart-contract-devs/get-started/redstone-classic) (push oracle) - for protocols designed for the traditional oracle interface, customizable heartbeat and deviation threshold.
* [RedStone X](https://docs.redstone.finance/docs/smart-contract-devs/get-started/redstone-x) - specifically for Perps and Options, highest update frequency and front-running protection.
* [RedStone Core](https://docs.redstone.finance/docs/get-started/models/redstone-core) (pull oracle) - less than 10s update time, broad spectrum of feeds, best for most use cases. All [Core Price Feeds](https://app.redstone.finance/#/app/tokens) are available on OP Mainnet & OP Sepolia.
* [RedStone Classic](https://docs.redstone.finance/docs/get-started/models/redstone-classic) (push oracle) - for protocols designed for the traditional oracle interface, customizable heartbeat and deviation threshold.
* [RedStone X](https://docs.redstone.finance/docs/get-started/models/redstone-x) - specifically for Perps and Options, highest update frequency and front-running protection.

Interested in integration? [Get in contact](https://discord.com/invite/PVxBZKFr46) with the RedStone team!

Expand Down
12 changes: 6 additions & 6 deletions pages/stack/protocol/fault-proofs/cannon.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ For the `mipsevm`, how memory is stored isn't important, as it can hold the enti
In this way, how memory is represented is abstracted away from the VM itself. However, it is important for memory to be represented
such that only small portions are needed in order to run a MIPS instruction onchain. This is because it is infeasible to represent the
entire 32-bit memory space onchain due to cost. Therefore, memory is stored in a binary Merkle tree data structure, with the implementation
spread across [`memory.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/memory.go) and
[`page.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/page.go).
spread across [`memory.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/memory/memory.go) and
[`page.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/memory/page.go).
The tree has a fixed-depth of 27 levels, with leaf values of 32 bytes each. This spans the full 32-bit address space: `2**27 * 32 = 2**32`.
Each leaf contains the memory for that part of the tree.

Expand Down Expand Up @@ -141,7 +141,7 @@ witness proof is generated after running the instruction offchain, the state tha
Once the execution trace portion of the bisection game begins, the ELF file containing OP-Program compiled into MIPS instructions will
be run within Cannon. However, getting OP-Program into Cannon so that it can be run requires
a binary loader. The binary loader is composed of [`load_elf.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/cmd/load_elf.go)
and [`patch.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/patch.go). `load_elf.go` parses
and [`patch.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/program/patch.go). `load_elf.go` parses
the top-level arguments and reads, loads, and patches the ELF binary such that it can be run by Cannon.

`patch.go` is responsible for actually parsing the headers of the ELF file, which among other information specifies what programs
Expand All @@ -150,7 +150,7 @@ for the `mipsevm` and load each program into memory at the expected location. Ad
state, `patch.go` sets the values of `PC`, `NextPC`, the initial Heap location of `0x20000000`, the initial stack location of `0x7fffd000`,
and also sets the arguments required for the Go runtime above the stack pointer location.

While loading the ELF file into Cannon, [`metadata.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/metadata.go)
While loading the ELF file into Cannon, [`metadata.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/program/metadata.go)
is used to parse all the symbols stored in the ELF file. Understanding which ELF symbols exist and at which regions of memory
they are located is important for other functionality, such as understanding if the current `PC` is running within a specific function.

Expand All @@ -175,13 +175,13 @@ Actions to be performed are instantiated and checked by [`matcher.go`](https://g
which generates a match function that triggers when the configured regular expression is true.

Within `run.go`, the `StepFn` is the wrapper that initiates the MIPS instruction to be run.
[`instrumented.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/instrumented.go) implements `Step` as the
[`instrumented.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/singlethreaded/instrumented.go) implements `Step` as the
interface to be initiated for each MIPS instruction. Additionally, `instrumented.go` handles encoding information for the witness proof
and Pre-image information (if required for the MIPS instruction).

### `mips.go`

[`mips.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/mips.go) implements all the required MIPS
[`mips.go`](https://github.com/ethereum-optimism/optimism/blob/develop/cannon/mipsevm/singlethreaded/mips.go) implements all the required MIPS
instructions, and also tracks additional memory access for the instruction currently being run.
This is important to make sure that the second memory proof is encoded correctly for instructions that use it, such as loads, stores, and
certain syscalls. The full list of instructions supported can be found [here](mips#table-of-supported-mips-instructions).
Expand Down