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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5f2a130 · Nov 4, 2024

History

23 Commits
Oct 29, 2024
Nov 4, 2024
Nov 4, 2024
Oct 18, 2024
Sep 19, 2024
Jul 19, 2024
Sep 19, 2024
Jul 19, 2024
Sep 19, 2024
Jul 19, 2024
Nov 4, 2024
Nov 4, 2024
Oct 21, 2024
Nov 4, 2024

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 Celestia da.

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 the celestia network.

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!

Please join our Community Discord to ask questions, discuss your ideas, and connect with other contributors.

Code of Conduct

See our Code of Conduct here.

About

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

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published