1 unstable release

0.1.0 Oct 24, 2023

#18 in #op

38 downloads per month
Used in 2 crates

MIT license

6KB
101 lines

op-up

CI Build Status Release Tag Build Status License Docs Latest Version rustc 1.70+

Composable OP Stack Orchestration System. https://github.com/anton-rs/op-up/labels/alpha.

Install | User Docs | Crate Docs | Reference | Contributing | License

What is op-up?

op-up is the infrastructure for building composable OP Stack configurations. Given the growing number of OP Stack component implementations, having a simple service to spin up a composable devnet in a programmatical way is crucial for verifying superchain compatibility, general testing and experimentation.

The project was born out of the need to test out Magi, a rollup client built for the OP stack.

Have a new rollup derivation pipeline implementation for the OP Stack and want to test it?

Use op-up to configure an OP Stack with the new rollup derivation pipeline. Then, you can spin up a local devnet and run test suites against it!

What's the OP Stack?

The OP Stack is what powers the superchain!

It is a stack of various software components that, together, can be used to fully run a chain in the superchain. The Optimism Collective has already spent an enormous amount of effort and time building out the specifications for how OP Stack components work together in an interoperable way.

For example, want to run a pure rust op-stack?

You can use

  • reth as an L1 execution node.
  • op-reth as an L2 node (interchangeable with op-geth).
  • magi as the rollup node.

Notice, this does not include the proposer or batcher, as well as fault proof components.

Usage

Pre-requisites

First, install the following dependencies on your machine:

Installation

To get started with the interactive prompt, run the following commands:

git clone git@github.com:anton-rs/op-up.git && cd op-up
cargo run

This will bring up a local devnet using the default components.

Once the devnet is up and running, L1 is accessible at http://localhost:8545, and L2 is accessible at http://localhost:9545. Any Ethereum tool - Metamask, seth, etc. - can use these endpoints. Note that you will need to specify the L2 chain ID manually if you use Metamask. The devnet's L2 chain ID is 901.

The devnet comes with a pre-funded account you can use as a faucet:

  • Address: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
  • Private key: ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80

The faucet account exists on both L1 and L2.


To stop the devnet, run:

cargo run -- stop

To reset the devnet state, run:

cargo run -- nuke

Using op-up as a library

By building with Rust's crate system, op-up can easily be used as a library in an extensible way.

Contributing

Please report any bugs or issues you encounter by opening a github issue.

All contributions are welcome, but if you are at all unsure, visit the developer docs.

License

This project is licensed under the MIT License. Free and open-source, forever.

All our rust are belong to you.

Dependencies

~14–28MB
~395K SLoC