diff --git a/README.md b/README.md index a67ea403e8b53..9565e93ffb149 100644 --- a/README.md +++ b/README.md @@ -1,235 +1,14 @@ -
+# ARCHIVED -**Table of Contents** +This fork is no longer maintained, and all users should migrate to the [official releases of OP](https://github.com/ethereum-optimism/optimism/releases). +Migration should be quite simple: - +- Review [How to run an Alt-DA mode chain](https://docs.optimism.io/chain-operators/guides/features/alt-da-mode-guide) +- Add the [Celestia OP Alt-DA service](https://github.com/celestiaorg/op-alt-da/) to your OP stack of running services +- (Optionally) add the [OP Alt-DA indexing service](https://github.com/celestiaorg/op-da-indexer/) to have an easy way to local DA when split between Celestia and/or \[Ethereum\] L1 calldata/blobs. -- [What is Optimism?](#what-is-optimism) -- [Documentation](#documentation) -- [Specification](#specification) -- [Community](#community) -- [Contributing](#contributing) -- [Security Policy and Vulnerability Reporting](#security-policy-and-vulnerability-reporting) -- [Directory Structure](#directory-structure) -- [Development and Release Process](#development-and-release-process) - - [Overview](#overview) - - [Production Releases](#production-releases) - - [Development branch](#development-branch) -- [License](#license) +## OP Resources - - -## What is Optimism? - -[Optimism](https://www.optimism.io/) is a project dedicated to scaling Ethereum's technology and expanding its ability to coordinate people from across the world to build effective decentralized economies and governance systems. The [Optimism Collective](https://www.optimism.io/vision) builds open-source software that powers scalable blockchains and aims to address key governance and economic challenges in the wider Ethereum ecosystem. Optimism operates on the principle of **impact=profit**, the idea that individuals who positively impact the Collective should be proportionally rewarded with profit. **Change the incentives and you change the world.** -If you're looking to run the OP Stack + Celestia setup for this repository, please visit the [Optimism & Celestia guides and tutorials](https://docs.celestia.org/developers/intro-to-op-stack/) to get started. - -In this repository you'll find numerous core components of the OP Stack, the decentralized software stack maintained by the Optimism Collective that powers Optimism and forms the backbone of blockchains like [OP Mainnet](https://explorer.optimism.io/) and [Base](https://base.org). The OP Stack is designed to be aggressively open-source — you are welcome to explore, modify, and extend this code. -The OP Stack powers Optimism, an Ethereum L2 blockchain, and forms the technical foundation for the [the Optimism Collective](https://app.optimism.io/announcement)—a group committed to the **impact=profit** principle. This principle rewards individuals for their positive contributions to the collective. - -Optimism addresses critical coordination failures in the crypto ecosystem, such as funding public goods and infrastructure. The OP Stack focuses on creating a shared, open-source system for developing new L2 blockchains within the proposed Superchain ecosystem, promoting collaboration and preventing redundant efforts. - -As Optimism evolves, the OP Stack will adapt, encompassing components ranging from blockchain infrastructure to governance systems. This software suite aims to simplify L2 blockchain creation while supporting the growth and development of the Optimism ecosystem. - -## What is Celestia? - -Celestia is a modular consensus and data network, built to enable anyone to easily deploy their own blockchain with minimal overhead. - -Celestia is a minimal blockchain that only orders and publishes transactions and does not execute them. By decoupling the consensus and application execution layers, Celestia modularizes the blockchain technology stack and unlocks new possibilities for decentralized application builders. Lean more at [Celestia.org](https://celestia.org). - -## Maintenance - -The maintenance guide for this repository can be found in the Wiki tab of the repository or [here](https://github.com/celestiaorg/optimism/wiki). - -## Documentation - -- If you want to build on top of OP Mainnet, refer to the [Optimism Documentation](https://docs.optimism.io) -- If you want to build your own OP Stack based blockchain, refer to the [OP Stack Guide](https://docs.optimism.io/stack/getting-started) and make sure to understand this repository's [Development and Release Process](#development-and-release-process) - -## Specification - -Detailed specifications for the OP Stack can be found within the [OP Stack Specs](https://github.com/ethereum-optimism/specs) repository. -If you're interested in the technical details of how Optimism works, refer to the [Optimism Protocol Specification](https://github.com/ethereum-optimism/specs). -If you want to build on top of Celestia, take a look at the documentation at [docs.celestia.org](https://docs.celestia.org). - -If you want to learn more about the OP Stack, check out the documentation at [stack.optimism.io](https://stack.optimism.io/). - -## Community - -### Optimism - -General discussion happens most frequently on the [Optimism discord](https://discord.gg/optimism). -Governance discussion can also be found on the [Optimism Governance Forum](https://gov.optimism.io/). - -### Celestia - -General discussion happens most frequently on the [Celestia discord](https://discord.com/invite/YsnTPcSfWQ). -Other discussions can be found on the [Celestia forum](https://forum.celestia.org). - -## Community - -General discussion happens most frequently on the [Optimism discord](https://discord.gg/optimism). -Governance discussion can also be found on the [Optimism Governance Forum](https://gov.optimism.io/). - -## Contributing - -The OP Stack is a collaborative project. By collaborating on free, open software and shared standards, the Optimism Collective aims to prevent siloed software development and rapidly accelerate the development of the Ethereum ecosystem. Come contribute, build the future, and redefine power, together. - -[CONTRIBUTING.md](./CONTRIBUTING.md) contains a detailed explanation of the contributing process for this repository. Make sure to use the [Developer Quick Start](./CONTRIBUTING.md#development-quick-start) to properly set up your development environment. - -[Good First Issues](https://github.com/ethereum-optimism/optimism/issues?q=is:open+is:issue+label:D-good-first-issue) are a great place to look for tasks to tackle if you're not sure where to start, and see [CONTRIBUTING.md](./CONTRIBUTING.md) for info on larger projects. - -## e2e testing - -Please refer to the canonical [Security Policy](https://github.com/ethereum-optimism/.github/blob/master/SECURITY.md) document for detailed information about how to report vulnerabilities in this codebase. -Bounty hunters are encouraged to check out the [Optimism Immunefi bug bounty program](https://immunefi.com/bounty/optimism/). -The Optimism Immunefi program offers up to $2,000,042 for in-scope critical vulnerabilities. -This repository has updated end-to-end tests in the `op-e2e` package to work with -Celestia as the data availability (DA) layer. - -Currently, the tests assume a working [Celestia devnet](https://github.com/rollkit/local-celestia-devnet) running locally: - -```sh -CELESTIA_DEVNET_CONTAINER_ID=$(docker run -d -p 26658:26658 ghcr.io/rollkit/local-celestia-devnet:v0.13.1) -echo "$CELESTIA_DEVNET_CONTAINER_ID" -``` - -To communicate with the Celestia node, we need to prepare an authentication token and a namespace: - -```sh -export OP_E2E_DA_AUTH_TOKEN=$(docker exec "$CELESTIA_DEVNET_CONTAINER_ID" celestia bridge auth admin --node.store "~/bridge") -echo "$OP_E2E_DA_AUTH_TOKEN" - -export OP_E2E_DA_NAMESPACE="00000000000000000000000000000000000000$(head -c 10 /dev/urandom | xxd -p -c 10)" -echo "$OP_E2E_DA_NAMESPACE" - -export OP_E2E_DA_ENABLED='true' -export OP_E2E_DA_RPC='http://localhost:26658' -export OP_E2E_DA_FALLBACK_MODE='calldata' -``` - -The e2e tests can be triggered with: - -```sh -cd $HOME/optimism -cd op-e2e -export OP_E2E_DISABLE_PARALLEL='true' -export OP_E2E_CANNON_ENABLED='false' -make test -``` - -## Bridging - -If you have the OP Stack + Celestia setup running, you can test out bridging from the L1 -to the L2. - -To do this, first navigate to the `packages/contracts-bedrock` directory and create a -`.env` file with the following contents: - -```bash -L1_PROVIDER_URL=http://localhost:8545 -L2_PROVIDER_URL=http://localhost:9545 -PRIVATE_KEY=bf7604d9d3a1c7748642b1b7b05c2bd219c9faa91458b370f85e5a40f3b03af7 -``` - -Then, run the following from the same directory: - -```bash -npx hardhat deposit --network devnetL1 --l1-provider-url http://localhost:8545 --l2-provider-url http://localhost:9545 --amount-eth-├── cannon: Onchain MIPS instruction emulator for fault proofs -├── devnet-sdk: Comprehensive toolkit for standardized devnet interactions -├── docs: A collection of documents including audits and post-mortems -├── kurtosis-devnet: OP-Stack Kurtosis devnet -├── op-acceptance-tests: Acceptance tests and configuration for OP Stack -├── op-alt-da: Alternative Data Availability mode (beta) -├── op-batcher: L2-Batch Submitter, submits bundles of batches to L1 -├── op-chain-ops: State surgery utilities -├── op-challenger: Dispute game challenge agent -├── op-conductor: High-availability sequencer service -├── op-deployer: CLI tool for deploying and upgrading OP Stack smart contracts -├── op-devstack: Flexible test frontend for integration and acceptance testing -├── op-dispute-mon: Off-chain service to monitor dispute games -├── op-dripper: Controlled token distribution service -├── op-e2e: End-to-End testing of all bedrock components in Go -├── op-faucet: Dev-faucet with support for multiple chains -├── op-fetcher: Data fetching utilities -├── op-interop-mon: Interoperability monitoring service -├── op-node: Rollup consensus-layer client -├── op-preimage: Go bindings for Preimage Oracle -├── op-program: Fault proof program -├── op-proposer: L2-Output Submitter, submits proposals to L1 -├── op-service: Common codebase utilities -├── op-supervisor: Service to monitor chains and determine cross-chain message safety -├── op-sync-tester: Sync testing utilities -├── op-test-sequencer: Test sequencer for development -├── op-up: Deployment and management utilities -├── op-validator: Tool for validating Optimism chain configurations and deployments -├── op-wheel: Database utilities -├── ops: Various operational packages -├── packages -│ ├── contracts-bedrock: OP Stack smart contracts -- -## Development and Release Process - -### Overview - -Please read this section carefully if you're planning to fork or make frequent PRs into this repository. - -### Production Releases - -Production releases are always tags, versioned as `