diff --git a/pages/builders/node-operators/network-upgrades.mdx b/pages/builders/node-operators/network-upgrades.mdx index 5574cc91f..619f3cf3b 100644 --- a/pages/builders/node-operators/network-upgrades.mdx +++ b/pages/builders/node-operators/network-upgrades.mdx @@ -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`) | diff --git a/pages/builders/notices/fjord-changes.mdx b/pages/builders/notices/fjord-changes.mdx index 354ae0d1e..29832e28c 100644 --- a/pages/builders/notices/fjord-changes.mdx +++ b/pages/builders/notices/fjord-changes.mdx @@ -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). - 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. @@ -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). - 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. diff --git a/pages/builders/tools/build/account-abstraction.mdx b/pages/builders/tools/build/account-abstraction.mdx index 1d8e4acaf..4f3847c5f 100644 --- a/pages/builders/tools/build/account-abstraction.mdx +++ b/pages/builders/tools/build/account-abstraction.mdx @@ -9,7 +9,7 @@ import { Callout } from 'nextra/components' # Account Abstraction - 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. [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: diff --git a/pages/builders/tools/build/oracles.mdx b/pages/builders/tools/build/oracles.mdx index 10c7b7042..d6268d293 100644 --- a/pages/builders/tools/build/oracles.mdx +++ b/pages/builders/tools/build/oracles.mdx @@ -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! diff --git a/pages/stack/protocol/fault-proofs/cannon.mdx b/pages/stack/protocol/fault-proofs/cannon.mdx index 315bbb774..4a86b4ce6 100644 --- a/pages/stack/protocol/fault-proofs/cannon.mdx +++ b/pages/stack/protocol/fault-proofs/cannon.mdx @@ -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. @@ -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 @@ -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. @@ -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).