Git Product home page Git Product logo

roll-op's Introduction

roll-op

roll-op is an open-source script that allows to spin up an OP stack rollup infrastructure by running only a few commands, and using a single configuration file. The package supports spinning a block explorer (Blockscout).

In this branch roll-op has been modified to

  • consume 0 gas
  • write data to a database as a Data Availability layer insted of the L1 chain.

The roll-op project was supported by an Optimism governance grant.

Versioning

The current version deploys software pinned to the following branches:

Prerequisites

  • Python >= 3.10 (to run the roll.py script) with pip
    • sudo apt install python3-pip on Debian-based systems
    • brew install python on macOS with Homebrew

You also need the following installed, rollop will warn you if these are missing:

  • Some common command line utilities: make, curl, tar, awk and grep.
  • logrotate
    • sudo apt install logrotate on Debian-based systems
    • brew install logrotate on macOS with Homebrew
  • Git
  • Docker (if you wish to run the Blockscout block explorer)

rollop will check the following dependencies and install them for you if needed (the script will always ask for your permission before installing anything outside the current directory):

  • Python libraries
    • Tomli
    • PyYAML (for block explorer support)
    • These will be installed globally by default. To install them locally instead (in a venv within the roll-op directory), you can run source devenv.sh before running rollbop.
  • Node.js 20.9.0
  • pnpm (pnpm install -g pnpm)
  • Yarn (for account abstraction support) (npm install -g yarn โ€” the old one, not yarn v3 aka yarn berry)
  • Geth >= 1.13.4 (but only if you want to run a devnet L1 node)
  • The jq command line utility
  • Foundry
  • Go >= 1.21

docker compose

The docker compose plugin is required. Note this differs from docker-compose. The presence of the plugin can be checked with

docker compose version

For manual installation refer the bottom of the official instalation description.

Usage

For a complete usage guide refer the original README. Here we only list the below examples.

Starting all services

./rollop setup --yes && ./rollop --clean --name=myTestnet --preset=dev --config=config.toml.example devnet --yes

The following starts network but sometimes the network is not fully responsive

./rollop --name=myTestnet --preset=dev --config=config.toml.example devnet

Issuing transactions

To check balances and send a tx run

npm install ethers
node myTestScripts.js

Explorer

A blockscout explorer is provided. To start the explorer clean, use

./rollop explorer --clean

For a simple restart use

./rollop explorer --config=config.toml.example

roll-op's People

Contributors

norswap avatar eerkaijun avatar apenzk avatar grapebaba avatar simluyt avatar pegahcarter avatar cygaar avatar cwkang1998 avatar upnodedev avatar

roll-op's Issues

error `unsupported protocol scheme`

When deploying with celestia DA the error unsupported protocol scheme is received in the batcher.

Specifically in https://github.com/apenzk/optimism/blob/80d3ed6e9b822b407567e487cb353a964577d7a3/op-service/txmgr/txmgr.go#L217

func (m *SimpleTxManager) send(ctx context.Context, candidate TxCandidate) (*types.Receipt, error) {
...
res, err := m.daClient.SubmitPFB(ctx, m.namespace, candidate.TxData, 21000, 700000)

where SubmitPFB is from go-cnc

func (c *Client) SubmitPFB(ctx context.Context, namespace Namespace, data []byte, fee int64, gasLimit uint64) (*TxResponse, error) {

the following error is received.

cat deployments/myTestnet/logs/l2_batcher.log 
.....
"  namespace : 00e8e5f679bf7116cb \n" service=batcher
"unable to publish tx"                err="Post \"/submit_pfb\": unsupported protocol scheme \"\"" data_size=1658
"Failed to send transaction"          err="Post \"/submit_pfb\": unsupported protocol scheme \"\""
"unable to publish transaction to my celestia" service=batcher err="Post \"/submit_pfb\": unsupported protocol scheme \"\""
"  tx content size : 1658 bytes\n"    service=batcher

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.