From 972edcafc0b99ecc6067544b4f4e5cbba949a33b Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 02:51:54 +0000 Subject: [PATCH 1/5] docs: add dev node example to README Co-authored-by: Vui-Chee --- README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/README.md b/README.md index 9721af6..a150267 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,38 @@ xlayer-reth-node init --chain /path/to/genesis.json --datadir /data/xlayer > **Note**: The `init` command only needs to be run once before the first start. It creates the database and writes the genesis block. +## Running a Dev Node + +For local development and testing, you can run a dev node without requiring an external sequencer or L1 connection. The dev mode automatically mines blocks at a configurable interval. + +```bash +OTEL_EXPORTER_OTLP_PROTOCOL=http cargo r -p xlayer-reth-node node \ + --datadir .op-reth-ttt \ + --engine.legacy-state-root \ + --dev \ + --dev.block-time 1s \ + --builder.gaslimit 1500000000 \ + --txpool.pending-max-count 10000000 \ + --txpool.pending-max-size 10000 \ + --txpool.basefee-max-count 10000000 \ + --txpool.basefee-max-size 10000 \ + --txpool.queued-max-count 10000000 \ + --txpool.queued-max-size 10000 \ + --txpool.blobpool-max-count 10000000 \ + --txpool.blobpool-max-size 10000 \ + --txpool.max-account-slots 10000000 \ + --http \ + --http.api eth,debug,net,web3,txpool \ + --log.stdout.filter "info,engine::tree::payload_validator=debug" +``` + +Key flags: +- `--dev`: Enables dev mode (auto-mining, no consensus required) +- `--dev.block-time 1s`: Mine a new block every second +- `--engine.legacy-state-root`: Use legacy state root computation +- `--http` / `--http.api`: Enable HTTP RPC with the listed namespaces +- `--datadir`: Directory for node data (created automatically if it doesn't exist) + ## Configuration XLayer Reth inherits all configuration options from [Reth](https://reth.rs/) and [OP Reth](https://github.com/paradigmxyz/reth). Run `xlayer-reth-node --help` for a complete list. From 7566343f274999a10f56d30ad0520f6abb4d2e44 Mon Sep 17 00:00:00 2001 From: Vui-Chee Date: Mon, 30 Mar 2026 10:56:37 +0800 Subject: [PATCH 2/5] docs: add table of contents to README Co-Authored-By: Claude Sonnet 4.6 --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index a150267..0ef3724 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,23 @@ [![GitHub release](https://img.shields.io/github/v/release/okx/xlayer-reth)](https://github.com/okx/xlayer-reth/releases) +## Contents + +- [Overview](#overview) +- [Getting Started](#getting-started) + - [Prerequisites](#prerequisites) + - [Building from Source](#building-from-source) + - [Docker Build](#docker-build) +- [Initialization](#initialization) +- [Running a Dev Node](#running-a-dev-node) +- [Configuration](#configuration) +- [Development](#development) +- [Testing](#testing) + - [End-to-end Testing](#end-to-end-testing) + - [Flashblocks Tests](#flashblocks-tests) +- [Contributing](#contributing) +- [License](#license) + ## Overview XLayer Reth is a customized implementation of [Reth](https://github.com/paradigmxyz/reth) optimized for the XLayer network, an Optimism-based Layer 2 solution. From 4415190f6cec943f6d01a73c3cc89653884c60d1 Mon Sep 17 00:00:00 2001 From: Vui-Chee Date: Mon, 30 Mar 2026 11:02:26 +0800 Subject: [PATCH 3/5] docs: add XLayer logo as header image in README Co-Authored-By: Claude Sonnet 4.6 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0ef3724..209d4b3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # XLayer Reth +

+ XLayer +

+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Rust](https://img.shields.io/badge/Rust-1.93+-orange.svg)](https://www.rust-lang.org/) From 41401bfe55438d156ae8aa2a2d12cefd84c40cf3 Mon Sep 17 00:00:00 2001 From: Vui-Chee Date: Mon, 30 Mar 2026 11:16:58 +0800 Subject: [PATCH 4/5] tidy readme --- README.md | 24 ++++++++++++------------ xlayer-logo.png | Bin 0 -> 50736 bytes 2 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 xlayer-logo.png diff --git a/README.md b/README.md index 209d4b3..e77ea80 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ -# XLayer Reth - -

- XLayer +

+ XLayer

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) @@ -9,10 +7,18 @@ [![Rust](https://img.shields.io/badge/Rust-1.93+-orange.svg)](https://www.rust-lang.org/) [![GitHub release](https://img.shields.io/github/v/release/okx/xlayer-reth)](https://github.com/okx/xlayer-reth/releases) +# XLayer Reth + +XLayer Reth is a customized implementation of [Reth](https://github.com/paradigmxyz/reth) optimized for the XLayer network, an Optimism-based Layer 2 solution. + +This project provides a high-performance, production-ready Ethereum execution client tailored for XLayer's specific requirements. It builds upon the upstream Reth codebase with custom optimizations and features for the XLayer network. + +**[Run a dev node](#running-a-dev-node)** | **[Build a node](#building-from-source)** | **[Contribute to XLayer Reth](#contributing)** + +--- -## Contents +## Table of Contents -- [Overview](#overview) - [Getting Started](#getting-started) - [Prerequisites](#prerequisites) - [Building from Source](#building-from-source) @@ -27,12 +33,6 @@ - [Contributing](#contributing) - [License](#license) -## Overview - -XLayer Reth is a customized implementation of [Reth](https://github.com/paradigmxyz/reth) optimized for the XLayer network, an Optimism-based Layer 2 solution. - -This project provides a high-performance, production-ready Ethereum execution client tailored for XLayer's specific requirements. It builds upon the upstream Reth codebase with custom optimizations and features for the XLayer network. - ### Why built on top of Reth XLayer Reth is built on top of [Reth](https://github.com/paradigmxyz/reth), extending it with XLayer-specific functionality: diff --git a/xlayer-logo.png b/xlayer-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f34161709e987a558c175cd6d2d2c75505849e GIT binary patch literal 50736 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Ɩ>_w>8OPvO8v7KrRSk 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
H*Y4WFr-T|-)A^uDHE=Cau= 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 literal 0 HcmV?d00001 From 7af3b2aa83823e3b68dfe5920c34a4e6109ccb99 Mon Sep 17 00:00:00 2001 From: Vui-Chee Date: Mon, 30 Mar 2026 11:18:09 +0800 Subject: [PATCH 5/5] docs: add reth dependency version badge to README Co-Authored-By: Claude Sonnet 4.6 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e77ea80..bb33f52 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Rust](https://img.shields.io/badge/Rust-1.93+-orange.svg)](https://www.rust-lang.org/) [![GitHub release](https://img.shields.io/github/v/release/okx/xlayer-reth)](https://github.com/okx/xlayer-reth/releases) +[![Reth](https://img.shields.io/badge/reth-v1.11.3-purple.svg)](https://github.com/paradigmxyz/reth/releases/tag/v1.11.3) # XLayer Reth