Per documentation it is said that Geyser Plugin system can be used to offload currently validated data to different databases, however, I do not understand whether it can be used to process historical data starting from the genesis block. And if it isn't possible with Geyser, then how can it be done?
2 Answers
Theoretically this can be done, yes. At least so far back as when the Geyser Plugin interfaces were first introduced. Technically back to genesis if hero wants to build out the infrastructure.
Instead of running the plugin against a solana-validator
instance, you'd use solana-ledger-tool
to play ledger archives to backfill whatever data store your Geyser Plugin is building. Given that the binaries and ledger archives have limited compatibility, you can only do this so far back as the first version that the Geyser Plugin interface was introduced, at best. Less if you need a feature that was added later.
However, there's no technical reason that the Geyser Plugin interface (and its dependencies, as you go back further) couldn't be backported to allow for support all the way to genesis. It's non-trivial work, but doable for a motivated team. Not to mention extremely valuable to the ecosystem.
On startup Geyser plugin receives all account's states. After that, it can be used to receive new account updates, new transactions, or both.
If by historical data you mean previous transactions - they are not possible to get with Geyser plugins.
-
Thank you! Are there any other ways to process previous transactions? Commented Jul 30, 2022 at 15:57