From bffc711470c46ed0f191bfbaf4a716a91b554f54 Mon Sep 17 00:00:00 2001 From: Daniil Polyakov Date: Tue, 10 Mar 2026 14:58:06 +0300 Subject: [PATCH] refactor: move `sequencer_` directories into `sequencer` --- .github/workflows/publish_images.yml | 8 +++--- .gitignore | 2 +- Cargo.lock | 4 +-- Cargo.toml | 4 +-- Justfile | 8 +++--- README.md | 8 +++--- .../sequencer/sequencer_config.json | 2 +- docker-compose.override.yml | 4 +-- docker-compose.yml | 2 +- integration_tests/Cargo.toml | 2 +- integration_tests/src/lib.rs | 4 +-- {sequencer_core => sequencer/core}/Cargo.toml | 0 .../core}/src/block_settlement_client.rs | 0 .../core}/src/block_store.rs | 0 .../core}/src/config.rs | 0 .../core}/src/indexer_client.rs | 0 {sequencer_core => sequencer/core}/src/lib.rs | 0 .../core}/src/mock.rs | 0 .../service}/Cargo.toml | 2 +- .../service}/Dockerfile | 28 +++++++++---------- .../configs/debug/sequencer_config.json | 0 .../configs/docker/sequencer_config.json | 2 +- sequencer/service/docker-compose.yml | 14 ++++++++++ .../service}/docker-entrypoint.sh | 4 +-- .../service/rpc}/Cargo.toml | 0 .../service/rpc}/src/lib.rs | 0 .../service/rpc}/src/net_utils.rs | 0 .../service/rpc}/src/process.rs | 0 .../service/rpc}/src/types/err_rpc.rs | 0 .../service/rpc}/src/types/mod.rs | 0 .../service}/src/lib.rs | 0 .../service}/src/main.rs | 2 +- sequencer_runner/docker-compose.yml | 14 ---------- wallet/src/main.rs | 2 +- 34 files changed, 58 insertions(+), 58 deletions(-) rename {sequencer_core => sequencer/core}/Cargo.toml (100%) rename {sequencer_core => sequencer/core}/src/block_settlement_client.rs (100%) rename {sequencer_core => sequencer/core}/src/block_store.rs (100%) rename {sequencer_core => sequencer/core}/src/config.rs (100%) rename {sequencer_core => sequencer/core}/src/indexer_client.rs (100%) rename {sequencer_core => sequencer/core}/src/lib.rs (100%) rename {sequencer_core => sequencer/core}/src/mock.rs (100%) rename {sequencer_runner => sequencer/service}/Cargo.toml (96%) rename {sequencer_runner => sequencer/service}/Dockerfile (79%) rename {sequencer_runner => sequencer/service}/configs/debug/sequencer_config.json (100%) rename {sequencer_runner => sequencer/service}/configs/docker/sequencer_config.json (98%) create mode 100644 sequencer/service/docker-compose.yml rename {sequencer_runner => sequencer/service}/docker-entrypoint.sh (81%) rename {sequencer_rpc => sequencer/service/rpc}/Cargo.toml (100%) rename {sequencer_rpc => sequencer/service/rpc}/src/lib.rs (100%) rename {sequencer_rpc => sequencer/service/rpc}/src/net_utils.rs (100%) rename {sequencer_rpc => sequencer/service/rpc}/src/process.rs (100%) rename {sequencer_rpc => sequencer/service/rpc}/src/types/err_rpc.rs (100%) rename {sequencer_rpc => sequencer/service/rpc}/src/types/mod.rs (100%) rename {sequencer_runner => sequencer/service}/src/lib.rs (100%) rename {sequencer_runner => sequencer/service}/src/main.rs (91%) delete mode 100644 sequencer_runner/docker-compose.yml diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index 619a6209..5076a430 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -12,12 +12,12 @@ jobs: strategy: matrix: include: - - name: sequencer_runner - dockerfile: ./sequencer_runner/Dockerfile + - name: sequencer_service + dockerfile: ./sequencer/service/Dockerfile build_args: | STANDALONE=false - - name: sequencer_runner-standalone - dockerfile: ./sequencer_runner/Dockerfile + - name: sequencer_service-standalone + dockerfile: ./sequencer/service/Dockerfile build_args: | STANDALONE=true - name: indexer_service diff --git a/.gitignore b/.gitignore index e4898102..b265e9aa 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ data/ .idea/ .vscode/ rocksdb -sequencer_runner/data/ +sequencer/service/data/ storage.json result wallet-ffi/wallet_ffi.h diff --git a/Cargo.lock b/Cargo.lock index 6bb8255c..d8b51cbc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3839,7 +3839,7 @@ dependencies = [ "nssa", "nssa_core", "sequencer_core", - "sequencer_runner", + "sequencer_service", "serde_json", "tempfile", "testcontainers", @@ -7479,7 +7479,7 @@ dependencies = [ ] [[package]] -name = "sequencer_runner" +name = "sequencer_service" version = "0.1.0" dependencies = [ "actix", diff --git a/Cargo.toml b/Cargo.toml index bcd11651..78d5adb7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ members = [ "programs/token", "sequencer_core", "sequencer_rpc", - "sequencer_runner", + "sequencer_service", "indexer/core", "indexer/service", "indexer/service/protocol", @@ -44,7 +44,7 @@ storage = { path = "storage" } key_protocol = { path = "key_protocol" } sequencer_core = { path = "sequencer_core" } sequencer_rpc = { path = "sequencer_rpc" } -sequencer_runner = { path = "sequencer_runner" } +sequencer_service = { path = "sequencer/service" } indexer_core = { path = "indexer/core" } indexer_service = { path = "indexer/service" } indexer_service_protocol = { path = "indexer/service/protocol" } diff --git a/Justfile b/Justfile index b4ec3a98..e6eab8d9 100644 --- a/Justfile +++ b/Justfile @@ -30,10 +30,10 @@ run-bedrock: docker compose up # Run Sequencer -[working-directory: 'sequencer_runner'] +[working-directory: 'sequencer/service'] run-sequencer: @echo "🧠 Running sequencer" - RUST_LOG=info RISC0_DEV_MODE=1 cargo run --release -p sequencer_runner configs/debug + RUST_LOG=info RISC0_DEV_MODE=1 cargo run --release -p sequencer_service configs/debug # Run Indexer [working-directory: 'indexer/service'] @@ -62,8 +62,8 @@ run-wallet +args: # Clean runtime data clean: @echo "🧹 Cleaning run artifacts" - rm -rf sequencer_runner/bedrock_signing_key - rm -rf sequencer_runner/rocksdb + rm -rf sequencer/service/bedrock_signing_key + rm -rf sequencer/service/rocksdb rm -rf indexer/service/rocksdb rm -rf wallet/configs/debug/storage.json rm -rf rocksdb diff --git a/README.md b/README.md index 1619747b..a08b81fb 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ The sequencer and logos blockchain node can be run locally: - `RUST_LOG=info cargo run -p indexer_service indexer/service/configs/indexer_config.json` 3. On another terminal go to the `logos-blockchain/lssa` repo and run the sequencer: - - `RUST_LOG=info cargo run -p sequencer_runner sequencer_runner/configs/debug` + - `RUST_LOG=info cargo run -p sequencer_service sequencer/service/configs/debug/sequencer_config.json` 4. (To run the explorer): on another terminal go to `logos-blockchain/lssa/explorer_service` and run the following: - `cargo install cargo-leptos` - `cargo leptos build --release` @@ -171,8 +171,8 @@ The sequencer and logos blockchain node can be run locally: After stopping services above you need to remove 3 folders to start cleanly: 1. In the `logos-blockchain/logos-blockchain` folder `state` (not needed in case of docker setup) - 2. In the `lssa` folder `sequencer_runner/rocksdb` - 3. In the `lssa` file `sequencer_runner/bedrock_signing_key` + 2. In the `lssa` folder `sequencer/service/rocksdb` + 3. In the `lssa` file `sequencer/service/bedrock_signing_key` 4. In the `lssa` folder `indexer/service/rocksdb` ### Normal mode (`just` commands) @@ -220,7 +220,7 @@ This will use a wallet binary built from this repo and not the one installed in ### Standalone mode The sequencer can be run in standalone mode with: ```bash -RUST_LOG=info cargo run --features standalone -p sequencer_runner sequencer_runner/configs/debug +RUST_LOG=info cargo run --features standalone -p sequencer_service sequencer/service/configs/debug ``` ## Running with Docker diff --git a/configs/docker-all-in-one/sequencer/sequencer_config.json b/configs/docker-all-in-one/sequencer/sequencer_config.json index 8fc34911..c03cbf5e 100644 --- a/configs/docker-all-in-one/sequencer/sequencer_config.json +++ b/configs/docker-all-in-one/sequencer/sequencer_config.json @@ -1,5 +1,5 @@ { - "home": "/var/lib/sequencer_runner", + "home": "/var/lib/sequencer_service", "override_rust_log": null, "genesis_id": 1, "is_genesis_random": true, diff --git a/docker-compose.override.yml b/docker-compose.override.yml index fe0d18f9..af70ddd6 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -7,12 +7,12 @@ services: environment: - RUST_LOG=error - sequencer_runner: + sequencer_service: depends_on: - logos-blockchain-node-0 - indexer_service volumes: !override - - ./configs/docker-all-in-one/sequencer:/etc/sequencer_runner + - ./configs/docker-all-in-one/sequencer:/etc/sequencer_service indexer_service: depends_on: diff --git a/docker-compose.yml b/docker-compose.yml index 93b5896b..4fd3910f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ include: - path: bedrock/docker-compose.yml - path: - sequencer_runner/docker-compose.yml + sequencer/service/docker-compose.yml - path: indexer/service/docker-compose.yml - path: diff --git a/integration_tests/Cargo.toml b/integration_tests/Cargo.toml index b18b782f..a68609a3 100644 --- a/integration_tests/Cargo.toml +++ b/integration_tests/Cargo.toml @@ -11,7 +11,7 @@ workspace = true nssa_core = { workspace = true, features = ["host"] } nssa.workspace = true sequencer_core = { workspace = true, features = ["default", "testnet"] } -sequencer_runner.workspace = true +sequencer_service.workspace = true wallet.workspace = true common.workspace = true key_protocol.workspace = true diff --git a/integration_tests/src/lib.rs b/integration_tests/src/lib.rs index 6929ec92..d7324f8a 100644 --- a/integration_tests/src/lib.rs +++ b/integration_tests/src/lib.rs @@ -11,7 +11,7 @@ use log::{debug, error, warn}; use nssa::{AccountId, PrivacyPreservingTransaction}; use nssa_core::Commitment; use sequencer_core::indexer_client::{IndexerClient, IndexerClientTrait as _}; -use sequencer_runner::SequencerHandle; +use sequencer_service::SequencerHandle; use tempfile::TempDir; use testcontainers::compose::DockerCompose; use wallet::{WalletCore, config::WalletConfigOverrides}; @@ -229,7 +229,7 @@ impl TestContext { ) .context("Failed to create Sequencer config")?; - let sequencer_handle = sequencer_runner::startup_sequencer(config).await?; + let sequencer_handle = sequencer_service::startup_sequencer(config).await?; Ok((sequencer_handle, temp_sequencer_dir)) } diff --git a/sequencer_core/Cargo.toml b/sequencer/core/Cargo.toml similarity index 100% rename from sequencer_core/Cargo.toml rename to sequencer/core/Cargo.toml diff --git a/sequencer_core/src/block_settlement_client.rs b/sequencer/core/src/block_settlement_client.rs similarity index 100% rename from sequencer_core/src/block_settlement_client.rs rename to sequencer/core/src/block_settlement_client.rs diff --git a/sequencer_core/src/block_store.rs b/sequencer/core/src/block_store.rs similarity index 100% rename from sequencer_core/src/block_store.rs rename to sequencer/core/src/block_store.rs diff --git a/sequencer_core/src/config.rs b/sequencer/core/src/config.rs similarity index 100% rename from sequencer_core/src/config.rs rename to sequencer/core/src/config.rs diff --git a/sequencer_core/src/indexer_client.rs b/sequencer/core/src/indexer_client.rs similarity index 100% rename from sequencer_core/src/indexer_client.rs rename to sequencer/core/src/indexer_client.rs diff --git a/sequencer_core/src/lib.rs b/sequencer/core/src/lib.rs similarity index 100% rename from sequencer_core/src/lib.rs rename to sequencer/core/src/lib.rs diff --git a/sequencer_core/src/mock.rs b/sequencer/core/src/mock.rs similarity index 100% rename from sequencer_core/src/mock.rs rename to sequencer/core/src/mock.rs diff --git a/sequencer_runner/Cargo.toml b/sequencer/service/Cargo.toml similarity index 96% rename from sequencer_runner/Cargo.toml rename to sequencer/service/Cargo.toml index 71404d13..235b4d71 100644 --- a/sequencer_runner/Cargo.toml +++ b/sequencer/service/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "sequencer_runner" +name = "sequencer_service" version = "0.1.0" edition = "2024" license = { workspace = true } diff --git a/sequencer_runner/Dockerfile b/sequencer/service/Dockerfile similarity index 79% rename from sequencer_runner/Dockerfile rename to sequencer/service/Dockerfile index 0efdf561..73db0336 100644 --- a/sequencer_runner/Dockerfile +++ b/sequencer/service/Dockerfile @@ -40,7 +40,7 @@ RUN r0vm --version # Install logos blockchain circuits RUN curl -sSL https://raw.githubusercontent.com/logos-blockchain/logos-blockchain/main/scripts/setup-logos-blockchain-circuits.sh | bash -WORKDIR /sequencer_runner +WORKDIR /sequencer_service # Build argument to enable standalone feature (defaults to false) ARG STANDALONE=false @@ -48,17 +48,17 @@ ARG STANDALONE=false # Planner stage - generates dependency recipe FROM chef AS planner COPY . . -RUN cargo chef prepare --bin sequencer_runner --recipe-path recipe.json +RUN cargo chef prepare --bin sequencer_service --recipe-path recipe.json # Builder stage - builds dependencies and application FROM chef AS builder ARG STANDALONE -COPY --from=planner /sequencer_runner/recipe.json recipe.json +COPY --from=planner /sequencer_service/recipe.json recipe.json # Build dependencies only (this layer will be cached) RUN if [ "$STANDALONE" = "true" ]; then \ - cargo chef cook --bin sequencer_runner --features standalone --release --recipe-path recipe.json; \ + cargo chef cook --bin sequencer_service --features standalone --release --recipe-path recipe.json; \ else \ - cargo chef cook --bin sequencer_runner --release --recipe-path recipe.json; \ + cargo chef cook --bin sequencer_service --release --recipe-path recipe.json; \ fi # Copy source code @@ -66,13 +66,13 @@ COPY . . # Build the actual application RUN if [ "$STANDALONE" = "true" ]; then \ - cargo build --release --features standalone --bin sequencer_runner; \ + cargo build --release --features standalone --bin sequencer_service; \ else \ - cargo build --release --bin sequencer_runner; \ + cargo build --release --bin sequencer_service; \ fi # Strip debug symbols to reduce binary size -RUN strip /sequencer_runner/target/release/sequencer_runner +RUN strip /sequencer_service/target/release/sequencer_service # Runtime stage - minimal image FROM debian:trixie-slim @@ -84,11 +84,11 @@ RUN apt-get update \ # Create non-root user for security RUN useradd -m -u 1000 -s /bin/bash sequencer_user && \ - mkdir -p /sequencer_runner /etc/sequencer_runner && \ - chown -R sequencer_user:sequencer_user /sequencer_runner /etc/sequencer_runner + mkdir -p /sequencer_service /etc/sequencer_service && \ + chown -R sequencer_user:sequencer_user /sequencer_service /etc/sequencer_service # Copy binary from builder -COPY --from=builder --chown=sequencer_user:sequencer_user /sequencer_runner/target/release/sequencer_runner /usr/local/bin/sequencer_runner +COPY --from=builder --chown=sequencer_user:sequencer_user /sequencer_service/target/release/sequencer_service /usr/local/bin/sequencer_service # Copy r0vm binary from builder COPY --from=builder --chown=sequencer_user:sequencer_user /usr/local/bin/r0vm /usr/local/bin/r0vm @@ -97,7 +97,7 @@ COPY --from=builder --chown=sequencer_user:sequencer_user /usr/local/bin/r0vm /u COPY --from=builder --chown=sequencer_user:sequencer_user /root/.logos-blockchain-circuits /home/sequencer_user/.logos-blockchain-circuits # Copy entrypoint script -COPY sequencer_runner/docker-entrypoint.sh /docker-entrypoint.sh +COPY sequencer_service/docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh # Expose default port @@ -124,5 +124,5 @@ USER root ENTRYPOINT ["/docker-entrypoint.sh"] -WORKDIR /sequencer_runner -CMD ["sequencer_runner", "/etc/sequencer_runner"] +WORKDIR /sequencer_service +CMD ["sequencer_service", "/etc/sequencer_service"] diff --git a/sequencer_runner/configs/debug/sequencer_config.json b/sequencer/service/configs/debug/sequencer_config.json similarity index 100% rename from sequencer_runner/configs/debug/sequencer_config.json rename to sequencer/service/configs/debug/sequencer_config.json diff --git a/sequencer_runner/configs/docker/sequencer_config.json b/sequencer/service/configs/docker/sequencer_config.json similarity index 98% rename from sequencer_runner/configs/docker/sequencer_config.json rename to sequencer/service/configs/docker/sequencer_config.json index 45cef1b6..adefe1f4 100644 --- a/sequencer_runner/configs/docker/sequencer_config.json +++ b/sequencer/service/configs/docker/sequencer_config.json @@ -1,5 +1,5 @@ { - "home": "/var/lib/sequencer_runner", + "home": "/var/lib/sequencer_service", "override_rust_log": null, "genesis_id": 1, "is_genesis_random": true, diff --git a/sequencer/service/docker-compose.yml b/sequencer/service/docker-compose.yml new file mode 100644 index 00000000..ebc024d6 --- /dev/null +++ b/sequencer/service/docker-compose.yml @@ -0,0 +1,14 @@ +services: + sequencer_service: + image: lssa/sequencer_service + build: + context: .. + dockerfile: sequencer/service/Dockerfile + container_name: sequencer_service + ports: + - "3040:3040" + volumes: + # Mount configuration folder + - ./configs/docker:/etc/sequencer_service + # Mount data folder + - ./data:/var/lib/sequencer_service diff --git a/sequencer_runner/docker-entrypoint.sh b/sequencer/service/docker-entrypoint.sh similarity index 81% rename from sequencer_runner/docker-entrypoint.sh rename to sequencer/service/docker-entrypoint.sh index fb117131..131c83e6 100644 --- a/sequencer_runner/docker-entrypoint.sh +++ b/sequencer/service/docker-entrypoint.sh @@ -1,11 +1,11 @@ #!/bin/sh -# This is an entrypoint script for the sequencer_runner Docker container, +# This is an entrypoint script for the sequencer_service Docker container, # it's not meant to be executed outside of the container. set -e -CONFIG="/etc/sequencer_runner/sequencer_config.json" +CONFIG="/etc/sequencer/service/sequencer_config.json" # Check config file exists if [ ! -f "$CONFIG" ]; then diff --git a/sequencer_rpc/Cargo.toml b/sequencer/service/rpc/Cargo.toml similarity index 100% rename from sequencer_rpc/Cargo.toml rename to sequencer/service/rpc/Cargo.toml diff --git a/sequencer_rpc/src/lib.rs b/sequencer/service/rpc/src/lib.rs similarity index 100% rename from sequencer_rpc/src/lib.rs rename to sequencer/service/rpc/src/lib.rs diff --git a/sequencer_rpc/src/net_utils.rs b/sequencer/service/rpc/src/net_utils.rs similarity index 100% rename from sequencer_rpc/src/net_utils.rs rename to sequencer/service/rpc/src/net_utils.rs diff --git a/sequencer_rpc/src/process.rs b/sequencer/service/rpc/src/process.rs similarity index 100% rename from sequencer_rpc/src/process.rs rename to sequencer/service/rpc/src/process.rs diff --git a/sequencer_rpc/src/types/err_rpc.rs b/sequencer/service/rpc/src/types/err_rpc.rs similarity index 100% rename from sequencer_rpc/src/types/err_rpc.rs rename to sequencer/service/rpc/src/types/err_rpc.rs diff --git a/sequencer_rpc/src/types/mod.rs b/sequencer/service/rpc/src/types/mod.rs similarity index 100% rename from sequencer_rpc/src/types/mod.rs rename to sequencer/service/rpc/src/types/mod.rs diff --git a/sequencer_runner/src/lib.rs b/sequencer/service/src/lib.rs similarity index 100% rename from sequencer_runner/src/lib.rs rename to sequencer/service/src/lib.rs diff --git a/sequencer_runner/src/main.rs b/sequencer/service/src/main.rs similarity index 91% rename from sequencer_runner/src/main.rs rename to sequencer/service/src/main.rs index 3bf4ee2d..d0c51073 100644 --- a/sequencer_runner/src/main.rs +++ b/sequencer/service/src/main.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use sequencer_runner::main_runner; +use sequencer_service::main_runner; pub const NUM_THREADS: usize = 4; diff --git a/sequencer_runner/docker-compose.yml b/sequencer_runner/docker-compose.yml deleted file mode 100644 index 5301962c..00000000 --- a/sequencer_runner/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - sequencer_runner: - image: lssa/sequencer_runner - build: - context: .. - dockerfile: sequencer_runner/Dockerfile - container_name: sequencer_runner - ports: - - "3040:3040" - volumes: - # Mount configuration folder - - ./configs/docker:/etc/sequencer_runner - # Mount data folder - - ./data:/var/lib/sequencer_runner diff --git a/wallet/src/main.rs b/wallet/src/main.rs index 4704675b..e055bd63 100644 --- a/wallet/src/main.rs +++ b/wallet/src/main.rs @@ -15,7 +15,7 @@ use wallet::{ // TODO #169: We have sample configs for sequencer, but not for wallet // TODO #168: Why it requires config as a directory? Maybe better to deduce directory from config // file path? -// TODO #172: Why it requires config as env var while sequencer_runner accepts as +// TODO #172: Why it requires config as env var while sequencer_service accepts as // argument? #[tokio::main] async fn main() -> Result<()> {