Skip to content

ethereum-optimism/specs



Optimism

Optimism is Ethereum, scaled.


OP Stack Specification

This repository contains the Specs Book.

Please chat with us on the discussion board.

Contributing

We welcome your contributions. Read through CONTRIBUTING.md for a general overview of the contributing process for this repository.

Dependencies

Using mise

We use mise as a dependency manager for these tools. Once properly installed, mise will provide the correct versions for each tool. mise does not replace any other installations of these binaries and will only serve these binaries when you are working inside of the optimism directory.

Install mise

Install mise by following the instructions provided on the Getting Started page.

Install dependencies
mise install

Manual installation

Rust Toolchain

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

mdbook + plugins

cargo install mdbook mdbook-katex mdbook-linkcheck mdbook-mermaid

just installation

brew install just

Serving the book locally

just serve

Linting

doctoc is used to automatically add a table of contents.

just lint-specs-toc-check

To fix markdown linting errors:

just lint-specs-md-fix

See the markdownlint rule reference and an example config file.

Justification for linting rules in .markdownlint.json:

  • line_length (!strict && stern): don't trip up on url lines
  • no-blanks-blockquote: enable multiple consecutive blockquotes separated by white lines
  • single-title: enable reusing <h1> for content
  • no-emphasis-as-heading: enable emphasized paragraphs

To lint links:

just lint-links

lychee is used for linting links.