An open API service indexing awesome lists of open source software.

https://github.com/magicblock-labs/magicblock-source

MagicBlock Solana account update pipeline monorepo with shared protobuf crate, Geyser plugin, gRPC service, and local Kafka/ksqlDB setup
https://github.com/magicblock-labs/magicblock-source

Last synced: 23 days ago
JSON representation

MagicBlock Solana account update pipeline monorepo with shared protobuf crate, Geyser plugin, gRPC service, and local Kafka/ksqlDB setup

Awesome Lists containing this project

README

          

# magicblock-source

This repo contains the MagicBlock account update pipeline:

- `event-proto` owns the shared protobuf schema and generated wire types.
- `geyser-plugin` publishes confirmed account updates to Kafka.
- `kafka-setup` stands up Kafka, ksqlDB, Schema Registry, and Redpanda Console and prepares stream/table state.
- `grpc-service` serves snapshot and live account updates to clients.

## Layout

- `event-proto/`: shared Rust crate `magigblock-event-proto`
- `grpc-service/`: Rust crate `magigblock-grpc-service`
- `geyser-plugin/`: Solana Geyser plugin crate
- `ix-tests/`: local end-to-end gRPC integration harness
- `kafka-setup/`: minimal Kafka/ksqlDB local environment
- `Makefile`: top-level operator entrypoint

## CI Contract

The repository-level CI in `.github/workflows/test.yml` runs the
same workspace checks on every push and pull request:

```sh
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --no-deps -- -D warnings
cargo build --workspace
cargo test --workspace -- --test-threads=16
```

## Common Root Workflows

- `make build`
- `make check`
- `make kafka-up`
- `make kafka-down`
- `make kafka-ready`
- `make kafka-ui`
- `make kafka-ui-down`
- `make ix-tests-build`
- `make ix-tests-run`
- `make ix-tests-scenario SCENARIO=single-basic`
- `make grpc-service-run`
- `make grpc-service-build`
- `make grpc-service-client`
- `make grpc-service-client-add-sub PUBKEY=`
- `make grpc-service-client-remove-sub PUBKEY=`
- `make geyser-plugin-build`
- `make geyser-plugin-launch`

The integration suite assumes Kafka/ksqlDB and the validator-with-plugin are already up. Scenarios are isolated and can be run individually. Failure artifacts are written under `target/ix-tests/failures/`.