This repo contains the MagicBlock account update pipeline:
event-protoowns the shared protobuf schema and generated wire types.geyser-pluginpublishes confirmed account updates to Kafka.kafka-setupstands up Kafka, ksqlDB, Schema Registry, and Redpanda Console and prepares stream/table state.grpc-serviceserves snapshot and live account updates to clients.
event-proto/: shared Rust cratemagigblock-event-protogrpc-service/: Rust cratemagigblock-grpc-servicegeyser-plugin/: Solana Geyser plugin crateix-tests/: local end-to-end gRPC integration harnesskafka-setup/: minimal Kafka/ksqlDB local environmentMakefile: top-level operator entrypoint
The repository-level CI in .github/workflows/test.yml runs the
same workspace checks on every push and pull request:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --no-deps -- -D warnings
cargo build --workspace
cargo test --workspace -- --test-threads=16make buildmake checkmake kafka-upmake kafka-downmake kafka-readymake kafka-uimake kafka-ui-downmake ix-tests-buildmake ix-tests-runmake ix-tests-scenario SCENARIO=single-basicmake grpc-service-runmake grpc-service-buildmake grpc-service-clientmake grpc-service-client-add-sub PUBKEY=<base58-pubkey>make grpc-service-client-remove-sub PUBKEY=<base58-pubkey>make geyser-plugin-buildmake 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/.