Giter Site home page Giter Site logo

harsh4786 / geyser-grpc-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jito-foundation/geyser-grpc-plugin

0.0 0.0 0.0 69 KB

Solana Geyser plugin for account and slot updates over GRPC

License: Other

Shell 1.15% Rust 98.10% Dockerfile 0.74%

geyser-grpc-plugin's Introduction

geyser-grpc-plugin

A lightweight gRPC service for streaming account and slot updates to subscribers.

server

This where the server side logic lives i.e implements the geyser-plugin-interface, wires up the gRPC service, and manages connections. Note, what accounts are streamed is decided upon on the initial load of the plugin via a config json file.

get_heartbeat_interval

Returns the server's configured heartbeat interval. Clients should consider the server unhealthy if some N consecutive heartbeats are missed.

subscribe_account_updates

Subscribe to this endpoint if you're interested in receiving the entire account payload including the account's data bytes.

subscribe_partial_account_updates

This endpoint streams account updates similar to subscribe_account_updates except consuming much less bandwidth. You may want to use this when you only care to be notified when an account is updated and don't neccessarily care to what the actual state transition was.

subscribe_slot_updates

Notifies subscribers of slot state transitions i.e. processed, confirmed, rooted.

Necessary Assumptions

The following assumptions must be made:

  • Clients may receive data for slots out of order.
  • Clients may receive account updates for a given slot out of order.

proto

Contains the protobuf API definitions.

client

A simple gRPC client wrapper that Takes an opinionated approach to how account updates shall be consumed. Clients using this consumer can expect the following:

  1. Account updates will be streamed in monotonically; i.e. updates for older slots are discarded in the event that they were streamed by the server late.
  2. Account updates received out of order will trigger an error.

Helper Scripts

For your convenience:

  • Run ./s script to rsync to a server.
  • Run ./f to build the binary within a container and spit out to a container-output folder. Run ./f jito-solana if you plan on running it with a jito-solana node. Be sure to use the same rustc version used to build your RPC node as was used to build this.

geyser-grpc-plugin's People

Contributors

segfaultdoc avatar buffalu avatar davewk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.