OP-Up is a hive tool for testing OP-Stack-compatible software modules

Overview

op-up

Warning

This is a work in progress.

OP-Up is a hive tool for testing OP-Stack-compatible software modules.

This project was born out of the need to test out Magi, a rollup client built for the OP stack. Having an easy-to-use environment to spin up a local devnet is crucial for quick testing and experimentation, especially when there exist different implementations of each component in the stack.

For instance, you can use OP-Up to spin up a devnet with a Geth L1 node, an OP-Erigon L2 node, and a Magi rollup node, and test out the interoperability between them in an end-to-end fashion.

Prerequisites

You need to have Rust, Docker, Docker Compose, Make and jq installed on your machine to use OP-Up.

Supported Components

Usage

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

git clone [email protected]:merklefruit/op-up.git && cd op-up
make devnet

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:

make devnet-stop

To reset the devnet state, run:

make nuke

Troubleshooting

  • If you are getting some "permission denied" errors, it's likely that you need to change the Docker permissions on your machine. See this guide for more details.
  • If you are getting the error: Failed to install dependencies: error [email protected]: The engine "node" is incompatible with this module. you need to switch your NodeJS version to <=16. If you are using nvm, you can do so by running nvm install 16 && nvm use 16.
  • If you are on MacOS with Apple Silicon chip and you've installed python3 via Homebrew, you might run into this error: env: python: No such file or directory. make: *** [Release/leveldb.a] Error 127. To fix this, you need to create a symlink to the python3 binary like so: sudo ln -s /Library/Developer/CommandLineTools/usr/bin/python3 /usr/local/bin/python.

Contributions & Bug Reports

Please report any bugs or issues you encounter by opening an issue here on GitHub.
Contributions are always welcome!

License

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

You might also like...
A SCALE-compatible collection of bits

scale-bits · This small utility crate provides two separate things: A Bits type that can be SCALE encoded and decoded, and is fully SCALE compatible w

An asynchronous runtime compatible with WebAssembly and non-WebAssembly targets.

Promise x Tokio = Prokio An asynchronous runtime compatible with WebAssembly and non-WebAssembly targets. Rationale When designing components and libr

An MVP stack based bytecode VM

TinyVM An MVP stack-based bytecode VM This VM runs a simplistic, Turing complete instruction set. In ~250 LOC with extensive comments, it's meant to b

A stack based interpreted programming language.

Nightmare Nightmare is a dynamically-typed, procedural programming language that aims to be fast & simple. let user = input() as Int; print("You were

Stack heap flexible string designed to improve performance for Rust

flexible-string A stack heap flexible string designed to improve performance. FlexibleString was first implemented in spdlog-rs crate, which improved

How to be a full stack Rust Developer
How to be a full stack Rust Developer

How to be a full stack Rust Developer Read Rust API guideline. Test code here and refer to the Rust blog posts at Steadylearner. If you need or know s

OOLANG - an esoteric stack-based programming language where all instructions/commands are differnet unicode O characters

OOLANG is an esoteric stack-based programming language where all instructions/commands are differnet unicode O characters

A stack based, virtual machine language written in Rust

Stackyy A stack based, virtual machine language written in Rust Description: Stackyy is a stack based, virtual machine language inspired by Forth and

Stack-based programming language which emulates the look and feel of the 60s

Cauchemar Cauchemar is a stack-based programming language inspired by FORTH but more arcane. Emulates the look and feel of a programming language from

Owner
nicolas
eth / rust / ml
nicolas
Crabzilla provides a simple interface for running JavaScript modules alongside Rust code.

Crabzilla Crabzilla provides a simple interface for running JavaScript modules alongside Rust code. Example use crabzilla::*; use std::io::stdin; #[i

Andy 14 Feb 19, 2022
A cargo plugin for showing a tree-like overview of a crate's modules.

cargo-modules Synopsis A cargo plugin for showing an overview of a crate's modules. Motivation With time, as your Rust projects grow bigger and bigger

Vincent Esche 445 Jan 3, 2023
A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.

Zerokit A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments. Initial scope Focus on RLN

vac 44 Dec 27, 2022
In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang.

Learn Rust What is this? In this repository you can find modules with code and comments that explain rust syntax and all about Rust lang. This is usef

Domagoj Ratko 5 Nov 5, 2022
Unify your game sources in one place and aquire more of them, using modules made by the community.

Project Black Pearl Unify your game sources in one place by using modules made by the community. What is Project Black Pearl? Project Black Pearl (or

Project Black Pearl 8 Jan 15, 2023
Operating system based off of blog_os, with the goal of running wasm modules as executables

yavkOS - A OS that attempts at running WASM modules as userspace programs Recommended Development Environment You need nix with the flakes, and nix-co

Yavor Kolev 12 Apr 1, 2023
rusty-riscy is a performance testing and system resource monitoring tool written in Rust to benchmark RISC-V processors.

rusty-riscy rusty-riscy is a performance testing and system resource monitoring tool written in Rust to benchmark RISC-V processors. Objectives To cre

Suhas KV 4 May 3, 2022
Goodname is a tool to assist you with cool naming of your methods and software

Goodname is a tool to assist you with cool naming of your methods and software. Given a brief description of your method or software, this tool enumerates name candidates forming subsequences of the description (i.e., abbreviation).

Shunsuke Kanda 118 Dec 28, 2022
a frontier based evm compatible chain template

Substrate Frontier Node Template A FRAME-based Substrate node with the Ethereum RPC support, ready for hacking ?? Generation & Upstream This template

zero network 2 Oct 6, 2021
Write Anchor-compatible Solana programs in Python

seahorse: Write Solana programs in Python The ease of Python with the safety of Rust. Seahorse lets you write Solana programs in Python. It is a commu

✨ amelia chen ✨ 214 Dec 28, 2022