Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get transaction execution status over geyser #33182

Closed
godmodegalactus opened this issue Sep 7, 2023 · 0 comments
Closed

Get transaction execution status over geyser #33182

godmodegalactus opened this issue Sep 7, 2023 · 0 comments
Labels
community Community contribution stale [bot only] Added to stale content; results in auto-close after a week.

Comments

@godmodegalactus
Copy link
Contributor

Problem

Currently, we do not have any information on why the transaction was not executed during the banking stage. As we crank the market and send many transactions per block, we would like feedback on why the transaction was not included. We only have feedback if the transaction was executed; the feedback is either Ok or Err. Usually, transactions are dropped because of errors in the scheduling stage, mainly when a writable account or the block hits the CU limit.

As a client, I would like to know if the cluster rejects my transaction and the reason. I would like to benchmark the cluster to understand bottlenecks and adapt my dapp design by following the lifecycle of a transaction. Solana logs are too verbose, and we need access to all the machines in the cluster. So, to get valid logs, we have to run a validator and get a few slots as a leader. Solana metrics can be only used to get an overview of statistics at a particular point in time but not a particular transaction.

I had proposed a solution to tackle this problem with the help of bidirectional quic service, which is a separate service:
#30161
The proposal was not accepted on basis of security (i.e could be attack vector) and too much development. But I was advised to make changes in RPC so that we can get this data over RPC from the leader.

Proposed Solution

We are going to migrate all the RPC services over geyser. I want to propose that this feature could be easily implemented over geyser. There is no need for any separate service; we will miss a few transactions that may be dropped during sigverify stage but would be a tiny portion after the updates to drop_excess packets in sigverify.

The Geyser plugin will have a new channel connected to the banking stage. A message will be sent over the channel if the scheduler cannot schedule the transaction properly.

@godmodegalactus godmodegalactus added the community Community contribution label Sep 7, 2023
@github-actions github-actions bot added the stale [bot only] Added to stale content; results in auto-close after a week. label Sep 9, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community Community contribution stale [bot only] Added to stale content; results in auto-close after a week.
Projects
None yet
Development

No branches or pull requests

1 participant