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
- Host: GitHub
- URL: https://github.com/magicblock-labs/magicblock-source
- Owner: magicblock-labs
- Created: 2026-04-21T05:51:28.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-05-11T10:54:09.000Z (2 months ago)
- Last Synced: 2026-05-11T12:43:33.814Z (2 months ago)
- Language: Rust
- Size: 520 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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/`.