solana/geyser-plugin-interface
Tyera Eulberg a6ba5a9a05
Add transaction index in slot to geyser plugin TransactionInfo (#25688)
* Define shuffle to prep using same shuffle for multiple slices

* Determine transaction indexes and plumb to execute_batch

* Pair transaction_index with transaction in TransactionStatusService

* Add new ReplicaTransactionInfoVersion

* Plumb transaction_indexes through BankingStage

* Prepare BankingStage to receive transaction indexes from PohRecorder

* Determine transaction indexes in PohRecorder; add field to WorkingBank

* Add PohRecorder::record unit test

* Only pass starting_transaction_index around PohRecorder

* Add helper structs to simplify test DashMap

* Pass entry and starting-index into process_entries_with_callback together

* Add tx-index checks to test_rebatch_transactions

* Revert shuffle definition and use zip/unzip

* Only zip/unzip if randomize

* Add confirm_slot_entries test

* Review nits

* Add type alias to make sender docs more clear
2022-06-23 13:37:38 -06:00
..
src Add transaction index in slot to geyser plugin TransactionInfo (#25688) 2022-06-23 13:37:38 -06:00
Cargo.toml Bump Version to 1.11.2 (#26159) 2022-06-22 21:16:18 -05:00
README.md Rename AccountsDb plugins to Geyser plugins (#23604) 2022-03-14 19:18:46 -06:00

README.md

Solana

Solana Geyser Plugin Interface

This crate enables an plugin to be added into the Solana Validator runtime to take actions at the time of account updates or block and transaction processing; for example, saving the account state to an external database. The plugin must implement the GeyserPlugin trait. Please see the detail of the geyser_plugin_interface.rs for the interface definition.

The plugin should produce a cdylib dynamic library, which must expose a C function _create_plugin() that instantiates the implementation of the interface.

The https://github.com/solana-labs/solana-accountsdb-plugin-postgres repository provides an example of how to create a plugin which saves the accounts data into an external PostgreSQL databases.

More information about Solana is available in the Solana documentation.

Still have questions? Ask us on Discord