Comments (2)
Notes from initial discussion with @aeyakovenko:
- First event seen gets added to the entry. Any event that can't be processed in parallel gets pushed back and considered in the following entry.
- Calculating only deltas without any context sounds appealing. Applying the delta can be a separate validation step. Note this is only applicable to validators, where you have the option to reject an entire block. The leader, on the other hand, needs to reject bad transactions individually.
- No intent to parallelize event processing across entries. Note that may massively reduce the opportunity for parallelism. Need to run the numbers on that.
Takeaway: maximize transaction throughput.
from solana.
What I ended up implementing is to put separate read/write locks on each of the following:
- account balance
- the table of all balances
- each pending smart contract
- the table of pending smart contracts
- the set of previous transaction signatures
I also changed transaction processing to apply all debits first, and once complete, start applying all credits. This ensures that the same set can be validated in any order and that no debit will pull the account below zero. The strategy therefore rejects transactions that would otherwise be valid if a credit was applied first.
from solana.
Related Issues (20)
- Missing v1.17.20 for `solana-cli` crate HOT 1
- Something is wrong with the ledger shrinking HOT 5
- getStakeActivation rpc method incorrect inactive balance HOT 2
- token-2022: `zk-ops` is not enabled for the inlined program
- InfluxDB does not support datapoints without fields HOT 3
- SendTransactionService sends in random order HOT 3
- SVM: Update `account_loader.rs` unit tests to remove `accounts-db` deps HOT 1
- `set-identity` causes undesirable behavior when used while validator is waiting for supermajority. HOT 8
- Feature request: Save disk space and computational power when running local solana node HOT 1
- Solana command completion - clap bug? 1.18.1
- solana-test-validator fails with 'blockstore error' when used with non-GNU tar HOT 1
- sudo reboot mb validator recovery fails HOT 13
- Flaky Test: solana-cli::vote test_offline_vote_authorize_and_withdraw
- Failed to start validator: PoH is slower than cluster target tick rate! HOT 1
- CPU metric doesn't show utilization of cores
- Inconsistent cargo build tools interface HOT 1
- solana-test-validator rpc responsecode 502
- Error: IDL for program `day_1` does not have `metadata.address` field. HOT 3
- Unify the uses of `PurgeType::Exact` and `purge_from_next_slots`
- Help Needed - Solana Validator Node not syncing 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.