Skip to content

Centralized sequencer middleware that implements go-sequencing interface using Celestia backend

License

Notifications You must be signed in to change notification settings

rollkit/centralized-sequencer

Repository files navigation

Centralized Sequencer

centralized-sequencer is an implementation of the Generic Sequencer interface for modular blockchains. It runs a gRPC service, which can be used by rollup clients to sequence transactions to DA layer.

build-and-test golangci-lint Go Report Card codecov GoDoc

Minimum requirements

Requirement Notes
Go version 1.22 or higher

Installation

git clone https://github.com/rollkit/centralized-sequencer.git
cd centralized-sequencer
make build
./build/centralized-sequencer -h

Usage

centralized-sequencer exposes a gRPC service that can be used with any gRPC client to sequence rollup transactions to a DA layer.

Example

Run centralized-sequencer by specifying DA network details:

    ./build/centralized-sequencer -da_address <da_address> -da_auth_token <da_auth_token> -da_namespace $(openssl rand -hex 10)

Flags

Flag Usage Default
batch-time time in seconds to wait before generating a new batch 2 seconds
da_address DA address http:////localhost:26658
da_auth_token auth token for the DA ""
da_namespace DA namespace where the sequencer submits transactions ""
host centralized sequencer host localhost
port centralized sequencer port 50051
listen-all listen on all network interfaces (0.0.0.0) instead of just localhost disabled
metrics enable prometheus metrics disabled
metrics-address address to expose prometheus metrics ":8080"

See ./build/centralized-sequencer --help for details.

Tools

  1. Install golangci-lint
  2. Install markdownlint
  3. Install hadolint
  4. Install yamllint

Helpful commands

# Print centralized-sequencer commands
centralized-sequencer --help

# Run unit tests
make test-unit

# Run all tests including integration tests
make test

# Run linters (requires golangci-lint, markdownlint, hadolint, and yamllint)
make lint

Contributing

We welcome your contributions! Everyone is welcome to contribute, whether it's in the form of code, documentation, bug reports, feature requests, or anything else.

If you're looking for issues to work on, try looking at the good first issue list. Issues with this tag are suitable for a new external contributor and is a great way to find something you can help with!

About

Centralized sequencer middleware that implements go-sequencing interface using Celestia backend

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •