Comments (3)
SendTransactionService should have some sort of priority-queue that we use to drop lowest priority transactions, and send/retry transactions with higher priority first.
This feels a little dogmatic to me. It should really be up to the RPC operators how they want to filter or prioritize transactions. We could think about ways we could expose controls or customization to them, however...
Because we want to consider priority, we should be reasonably sure txs can pay for fees. We already load and check nonce-accounts, it seems reasonable we could load and check fee-payer balance.
The SendTransactionService only checks nonce accounts for (a) nonce transaction and (b) after the initial send to determine when to stop retrying. So much more limited than a fee-payer check before send. Adding this account load to every transaction before send will add some latency to the service, we can bench to see how much. In assessing whether that's worth imposing, we should see whether RPC operators generally support skipPreflight
, because such a fee-payer check is already done in simulation.
from solana.
@lijunwangs or @CriesofCarrots do you have thoughts on the proposed solution? It seems like the current behavior contributes to priority fees not working as well as they should, although there are certainly other factors at play.
from solana.
This feels a little dogmatic to me. It should really be up to the RPC operators how they want to filter or prioritize transactions. We could think about ways we could expose controls or customization to them, however...
I'm all for letting things be modular and RPCs implementing their own logic, but we need to provide sane defaults, which the current one does not seem to be.
The SendTransactionService only checks nonce accounts for (a) nonce transaction and (b) after the initial send to determine when to stop retrying. So much more limited than a fee-payer check before send. Adding this account load to every transaction before send will add some latency to the service, we can bench to see how much. In assessing whether that's worth imposing, we should see whether RPC operators generally support skipPreflight, because such a fee-payer check is already done in simulation.
Happy to give RPCs ability to opt-out of fee-payer checks via some configuration similar to pre-flight.
However, pre-flight checks do not seem to be sufficient since they are only checked before we send the transaction the first timess; balance may have changed and the RPC is spamming transactions to leader that can never be processed due to lack of funds.
Adding this account load to every transaction before send will add some latency to the service, we can bench to see how much.
Yeah, agree this needs to be benched to see the affect. I think you are right in calling out what I said, in that nonce'd checks are far more limited.
from solana.
Related Issues (20)
- security page - "This repo will be archived soon" HOT 1
- Computer Budget Programm have issu HOT 2
- It is strongly recommended to replace the Chinese tutorials under 'https://www.solanazh.com/' with the English tutorials under 'https://www.soldev.app/course', even with Google Translate!! HOT 1
- It is strongly recommended to replace the Chinese tutorials under 'https://www.solanazh.com/' with the English tutorials under 'https://www.soldev.app/course', even with Google Translate!! HOT 1
- JUPITER HOT 1
- Docs(gossip): Broken link to plum tree documentation HOT 1
- getSignaturesForAddress not returning expected transactions HOT 1
- send transaction to node, return hash,but finally can not find transaction on explorer HOT 1
- Best Solana RPC HOT 1
- [Geyser Plugin] Provide account state diffs instead of entire account (discussion) HOT 1
- Geyser: incorrectly ordered slot status notifications HOT 1
- node websocket subscription has 15s delay and missing data HOT 1
- validator crash after error "duplicate_confirmed_slot slot=258293789i duplicate_confirmed_hash" HOT 1
- Solana transaction not sending (block height exceeded) HOT 1
- Can we mark this repo as deprecated, so we don't make PRs here instead of anza-xyz/agave? HOT 3
- Dependency issue with subtle HOT 1
- getSignaturesForAddress going forward in time HOT 1
- invalid type: null, expected struct EncodedConfirmedTransactionWithStatusMeta HOT 1
- How do I use an HTTP proxy while running a Solana validator? HOT 1
- Nonblocking slot_subscribe stuck HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solana.