Go to file
Kirill Fomichev a0aa76b51d
change accounts filter
2022-10-19 22:30:18 -03:00
.github/workflows init 2022-10-19 13:27:22 -03:00
ci init 2022-10-19 13:27:22 -03:00
proto change accounts filter 2022-10-19 22:30:18 -03:00
src change accounts filter 2022-10-19 22:30:18 -03:00
.gitignore init 2022-10-19 13:27:22 -03:00
Cargo.lock change accounts filter 2022-10-19 22:30:18 -03:00
Cargo.toml change accounts filter 2022-10-19 22:30:18 -03:00
README.md change accounts filter 2022-10-19 22:30:18 -03:00
build.rs init 2022-10-19 13:27:22 -03:00
config.json change accounts filter 2022-10-19 22:30:18 -03:00
rust-toolchain.toml init 2022-10-19 13:27:22 -03:00

README.md

Public GRPC interface to Geyser

Validator

$ solana-validator --geyser-plugin-config ./config.json

Client

  • Always broadcast new slots
  • Accounts can be filtered by pubkey and owner fields, also all accounts can be broadcasted with *
 cargo run --bin client -- --accounts SysvarC1ock11111111111111111111111111111111
    Finished dev [unoptimized + debuginfo] target(s) in 0.21s
     Running `target/debug/client --accounts SysvarC1ock11111111111111111111111111111111`
stream opened
new message: Ok(SubscribeUpdate { update_oneof: Some(Slot(SubscribeUpdateSlot { slot: 3159, parent: Some(3158), status: Processed })) })
new message: Ok(SubscribeUpdate { update_oneof: Some(Slot(SubscribeUpdateSlot { slot: 3128, parent: Some(3127), status: Rooted })) })
new message: Ok(SubscribeUpdate { update_oneof: Some(Account(SubscribeUpdateAccount { account: Some(SubscribeUpdateAccountInfo { pubkey: [6, 167, 213, 23, 24, 199, 116, 201, 40, 86, 99, 152, 105, 29, 94, 182, 139, 94, 184, 163, 155, 75, 109, 92, 115, 85, 91, 33, 0, 0, 0, 0], lamports: 1169280, owner: [6, 167, 213, 23, 24, 117, 247, 41, 199, 61, 147, 64, 143, 33, 97, 32, 6, 126, 216, 140, 118, 224, 140, 40, 127, 193, 148, 96, 0, 0, 0, 0], executable: false, rent_epoch: 0, data: [88, 12, 0, 0, 0, 0, 0, 0, 205, 209, 77, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 22, 215, 77, 99, 0, 0, 0, 0], write_version: 22722 }), slot: 3160, is_startup: false })) })
new message: Ok(SubscribeUpdate { update_oneof: Some(Slot(SubscribeUpdateSlot { slot: 3159, parent: None, status: Confirmed })) })
^C

Filters

See proto/geyser.proto.

Slots

  • enabled — broadcast slots updates

Account

Accounts can be filtered by:

  • account — acount Pubkey, match to any Pubkey from the array
  • owner — account owner Pubkey, match to any Pubkey from the array

All fields in filter are optional, if all filters are empty then all accounts broadcasted. Fields works as logical AND. Values in the arrays works as logical OR.