You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ecosystem/supersim.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -160,35 +160,35 @@ Given the application flow, the following services will be part of supersim:
160
160
161
161
1. **Orchestrator**: This is the main focus and interface for developers using supersim.
162
162
163
-
i. Runs all of the other services in supersim and manages their lifecycle.
164
-
ii. Provides an interface to the user
163
+
* Runs all of the other services in supersim and manages their lifecycle
164
+
* Provides an interface to the user
165
165
166
166
* Initially a static interface.
167
167
* Medium-term, offer an API interface that the orchestrator exposes to make it easier to build new offchain services that hook into the runtime.
168
168
169
169
2. **Anvil Instances**: Anvil instances are run by the orchestrator after initial prep work to allow them to mirror the Superchain interop environment.
170
170
171
-
i. Should be run in `--optimism` mode so the extra fields in transactions are there.
172
-
ii. Orchestrator should also run an L1 instance, though L1 withdrawals won’t initially be supported.
173
-
iii. Eventually supersim can be extended to be used with HardHat and other local simulation tools as well.
171
+
* Should be run in `--optimism` mode so the extra fields in transactions are there.
172
+
* Orchestrator should also run an L1 instance, though L1 withdrawals won’t initially be supported.
173
+
* Eventually supersim can be extended to be used with HardHat and other local simulation tools as well.
174
174
175
175
3. **Genesis-applier** : The `genesis-applier` takes genesis files output by the monorepo and applies them to anvil instances.
176
176
177
-
i. The genesis files needed will differ depending on whether the user is in vanilla or forked mode, and forked mode is unlikely to need anything other than the interop contracts initially.
178
-
ii. Can be multi-step: multiple genesis files can be applied idempotently, particularly in forking mode (when you fork a network that has bedrock contracts but not interop contracts, for instance).
179
-
iii. Genesis-applier should work as a standalone tool: if a developer is using Anvil outside the context of the orchestrator, they should be able to use genesis-applier to apply genesis state to their instance. In the context of supersim, the `orchestrator` will use the `genesis-applier` to apply the needed genesis state to the anvil instances it is running.
177
+
* The genesis files needed will differ depending on whether the user is in vanilla or forked mode, and forked mode is unlikely to need anything other than the interop contracts initially.
178
+
* Can be multi-step: multiple genesis files can be applied idempotently, particularly in forking mode (when you fork a network that has bedrock contracts but not interop contracts, for instance).
179
+
* Genesis-applier should work as a standalone tool: if a developer is using Anvil outside the context of the orchestrator, they should be able to use genesis-applier to apply genesis state to their instance. In the context of supersim, the `orchestrator` will use the `genesis-applier` to apply the needed genesis state to the anvil instances it is running.
180
180
181
181
4. **Chain-config-loader**: Downloads the latest chain config from the superchain registry to allow the orchestrator to apply needed configs to anvil instances. Should be a standalone tool that works with the orchestrator but could be used directly on local testing nodes.
182
182
183
183
5. **L2-fork-state-finder**: From an L1 reference block, runs an algorithm to identify the latest L2 height derived from the L1 block for each network.
184
184
185
185
6. **Op-simulator**: Proxy server in front of anvil instances that simulates op-stack services without the real derivation pipeline.
186
186
187
-
i. Simulates deposits by listening to the `optimismPortal` and forwarding deposit txs via `eth_sendRawTransaction`.
188
-
ii. Implements `eth_sendRawTransaction` and first applies any necessary out-of-protocol validation such as the interop spec variants.
189
-
iii. Calls `eth_getLog` on other chains to fetch event logs for invariant checks.
190
-
iv. All other rpc calls are proxied by the orchestrator to the anvil instances.
191
-
v. **Withdrawal pathway to Ethereum is not supported** (at least to start)
187
+
* Simulates deposits by listening to the `optimismPortal` and forwarding deposit txs via `eth_sendRawTransaction`.
188
+
* Implements `eth_sendRawTransaction` and first applies any necessary out-of-protocol validation such as the interop spec variants.
189
+
* Calls `eth_getLog` on other chains to fetch event logs for invariant checks.
190
+
* All other rpc calls are proxied by the orchestrator to the anvil instances.
191
+
* **Withdrawal pathway to Ethereum is not supported** (at least to start)
0 commit comments