solana-labs / solana

Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
https://solanalabs.com
Apache License 2.0
12.95k stars 4.16k forks source link

Geyser plugins do not have any tests, integration or benchmark #33672

Open godmodegalactus opened 11 months ago

godmodegalactus commented 11 months ago

Problem

Currently, we want to implement and integrate a few PR to change the geyser interface, which is primordial to implement the new RPC-v2 interface. We plan to stream all the data out over the geyser for the new RPC implementation.

But any changes to the geyser interface is difficult to merge because there is not enough testing on this part. We want to ensure that any changes to this interface do not break Solana validator, existing infrastructure or degrade the performance.

Proposed Solution

KirillLykov commented 11 months ago

My understanding from the discussion with Mango is there are two things regarding regression tests for geyser.

  1. verify that whatever changes in the geyser do not affect the throughput of geyser.
  2. verify that whatever changes in the geyser do not affect the QoS of the network of validators.

For this, we need to have minimum overhead plugin. This will be also useful to measure the overhead of real plugin that is going to be used.

Another dimension on this is timeline. As far as I understood these PRs need to be merged and, hence, tested in the next month or so. For that some intermediate testing solution might be sufficient. Like develop this vanilla plugin and measure the throughput before/after changes on testnet to address (1). For (2), probably need to simulate conditions when throughput of this plugin is at max and meanwhile check that the key validator metrics are as expected (best effort approach for now).

KirillLykov commented 11 months ago

Lets add @lijunwangs and @CriesofCarrots because they might have more context

godmodegalactus commented 11 months ago

Some PRs that i would like to be merge eventually.

godmodegalactus commented 11 months ago

https://github.com/solana-labs/solana/pull/33401

godmodegalactus commented 11 months ago

https://github.com/solana-labs/solana/pull/33292