solana/geyser-plugin-interface
ivandzen 2251aa2809
Report transaction signature on update account (#25726)
There's no direct linkage between account-update events and transaction-events

Issue is linked with geyser plugin interface
Currently, there's no straightforward way to determine what notify_transaction call is related to particular update_account call. So, there's no simple way to determine what transaction caused what changes in accounts. This issue is especially valuable in case when several transactions modifies single account in the same slot.

Add txn_signature field to ReplicaTransactionInfo structure

This additional field will contain the signature of transaction which caused this account update event. This modification is not bringing significant overhead because all necessary information for such linkage already available inside Accounts::collect_accounts_to_store method
2022-06-10 10:24:35 -07:00
..
src Report transaction signature on update account (#25726) 2022-06-10 10:24:35 -07:00
Cargo.toml chore: bump log from 0.4.16 to 0.4.17 (#24987) 2022-05-05 01:49:18 +00: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