Tao Zhu
b1b3702e6d
Prioritize transactions in banking stage by their compute unit price ( #25178 )
...
* - get prioritization fee from compute_budget instruction;
- update compute_budget::process_instruction function to take instruction iter to support sanitized versioned message;
- updated runtime.md
* update transaction fee calculation for prioritization fee rate as lamports per 10K CUs
* review changes
* fix test
* fix a bpf test
* fix bpf test
* patch feedback
* fix clippy
* fix bpf test
* feedback
* rename prioritization fee rate to compute unit price
* feedback
Co-authored-by: Justin Starry <justin@solana.com>
2022-05-16 12:06:33 +08:00
sakridge
52db2e19bc
Lower default batch size to 64 and add 2 banking threads ( #25226 )
2022-05-15 16:52:47 +02:00
sakridge
3d96a1ab76
Block packets in vote-only mode ( #24906 )
2022-05-14 17:53:37 +02:00
Pankaj Garg
71dd95e842
Tune banking_stage receive loop timing ( #25172 )
2022-05-13 03:42:08 +00:00
Jeff Washington (jwash)
896729f25e
keep track of oldest slot used by last hash calculation ( #25152 )
2022-05-12 11:18:08 -05:00
Jeff Washington (jwash)
3a4f0d3397
println -> info ( #25163 )
2022-05-12 11:07:13 -05:00
Pankaj Garg
bcf4d54235
Update test_banking_stage_entryfication to be more deterministic ( #25146 )
...
* Update test_banking_stage_entryfication to be more deterministic
* revert to original test with updated checks
2022-05-12 15:36:19 +00:00
HaoranYi
41d34d45e0
pass exit by ref ( #25120 )
2022-05-11 09:17:21 -05:00
DimAn
2fa9bc3e70
Add options to store full and/or incremental snapshots in separate locations ( #24247 )
2022-05-10 16:37:41 -04:00
Justin Starry
e3bdc38f0a
Add sanitized types for use in banking stage ( #25067 )
2022-05-11 00:30:48 +08:00
HaoranYi
de96663cc4
fix typo ( #25083 )
2022-05-09 12:42:58 -05:00
Pankaj Garg
362b0526cd
Greedy receive in banking stage ( #25060 )
...
* Greedy receive in banking stage
* add upperbound to batch size and batching time
* update test_banking_stage_entryfication test
2022-05-08 10:47:55 -07:00
HaoranYi
8e37e364b1
fix typo in measure name ( #25058 )
2022-05-07 10:04:42 -05:00
Justin Starry
c920d411f7
Clean up logging and make variables consistent ( #25049 )
2022-05-07 03:52:45 +08:00
Justin Starry
082502d4f3
Fail tx sanitization when ix program id uses lookup table ( #25035 )
...
* Fail tx sanitization when ix program id uses lookup table
* feedback
2022-05-07 03:19:50 +08:00
Christian Kamm
cb6cd5d60f
FindPacketSenderStake: Improve metrics ( #24971 )
...
- separate names for vote and non-vote thread
- time unit postfixes (one is in ns!)
2022-05-06 21:16:13 +02:00
behzad nouri
492f89a170
checks account owner when initializing a vote-account ( #25018 )
...
A VoteAccount may only wrap an account if the account owner is
solana_vote_program:id or equivalently this check returns true:
solana_vote_program::check_id(account.owner())
2022-05-06 16:22:49 +00:00
behzad nouri
a01291069a
initializes thread-pools with lazy_static instead of thread_local ( #24853 )
...
In addition to thread_local -> lazy_static change, a number of thread-pools are
initialized with get_max_thread_count to achieve parity with the older code in
terms of number of validator threads.
2022-05-05 20:00:50 +00:00
Justin Starry
7100f1c94b
Collect stats in streamer receiver and report fetch stage metrics ( #25010 )
2022-05-06 02:56:18 +08:00
carllin
870ac80b79
Prioritize BankingStage packets individually in min-max heap ( #24187 )
2022-05-04 21:50:56 -05:00
Christian Kamm
503d0baf6d
SigVerify: Add total time metrics for dedup/discard/verify ( #24768 )
...
* SigVerify: Add total time metrics for dedup/discard/verify
Previously it was impossible to determine the total time the stage spent
on these activities within a measurement window.
* SigVerify: Add _us postfix to time metrics
2022-05-03 14:59:25 +02:00
behzad nouri
eff59193db
enforces that LAST_SHRED_IN_SLOT is also DATA_COMPLETE_SHRED ( #24892 )
...
A data shred cannot be LAST_SHRED_IN_SLOT if not also DATA_COMPLETE_SHRED.
So LAST_SHRED_IN_SLOT should also imply DATA_COMPLETE_SHRED:
https://github.com/solana-labs/solana/blob/74b586ae7/ledger/src/shredder.rs#L116-L117
https://github.com/solana-labs/solana/blob/74b586ae7/core/src/broadcast_stage/standard_broadcast_run.rs#L80-L81
However current shred constructs allow specifying a shred which is
LAST_SHRED_IN_SLOT but not DATA_COMPLETE_SHRED:
https://github.com/solana-labs/solana/blob/74b586ae7/ledger/src/shred.rs#L117-L118
https://github.com/solana-labs/solana/blob/74b586ae7/ledger/src/shred.rs#L272-L273
The commit updates ShredFlags so that if a shred is not
DATA_COMPLETE_SHRED it cannot be LAST_SHRED_IN_SLOT either.
2022-05-02 23:33:53 +00:00
apfitzge
112a0b475a
Revert "Refactor to use EpochSchedule from within RentCollector struct" ( #24893 )
...
* Revert "Ran cargo fmt"
This reverts commit 9052e41b32
.
* Revert "Fix build error introduced by my editor setup, part 2"
This reverts commit 4dfeab3b38
.
* Revert "Fix build error introduced by my editor setup"
This reverts commit 87fb78dc56
.
* Revert "Remove redundant epoch_schedule from AccountsPackage"
This reverts commit c2f7f2fff8
.
* Revert "Fix a test"
This reverts commit 36c0bdaa78
.
* Revert "Fixes to initial code"
This reverts commit ed7813e698
.
* Revert "Removing redundant EpochSchedule param from fns"
This reverts commit 5472d2e605
.
2022-05-02 13:46:17 -05:00
behzad nouri
e812430e28
defines shred flags using bitflags crate ( #24874 )
...
Shred flags uses raw bit-masking ops which lacks type-safety:
https://github.com/solana-labs/solana/blob/a829ddc92/ledger/src/shred.rs#L112-L114
This commit instead uses bitflags crate to define shred flags.
2022-05-01 19:25:15 +00:00
Pankaj Garg
88c16c0176
Check if quic is enabled before warming up quic connections ( #24821 )
...
* Check if quic is enabled before warming up quic connections
* fix after rebase
* don't start warmup service if quic not enabled
* fix test
2022-05-01 03:52:38 +00:00
Justin Starry
a61652104b
Avoid holding lock guards in match expressions ( #24805 )
...
* Avoid holding bank forks read lock for RPC requests
* Avoid using lock guards in temporaries
* revert fetch stage change
2022-04-29 16:32:46 +08:00
Justin Starry
4e58b3870c
Update all BankForks methods to return owned values ( #24801 )
2022-04-28 18:51:00 +00:00
sakridge
5a430c15e2
Separate sigverify metrics for each verifier ( #24744 )
2022-04-28 01:16:17 -07:00
behzad nouri
0f60665100
replaces Shred::new_empty_coding with Shred::new_from_parity_shard ( #24749 )
...
Removing implementation details of shreds and payload offsets from
shredder, so that shredder does not need to mutate payload:
https://github.com/solana-labs/solana/blob/71ad12128/ledger/src/shred.rs#L968-L977
Also, Shred::new_from_data can simply obtain a slice as opposed to
Option<&[u8]>:
https://github.com/solana-labs/solana/blob/71ad12128/ledger/src/shred.rs#L268-L278
2022-04-27 18:04:10 +00:00
behzad nouri
081c844d6e
removes Shred::new_empty_data_shred ( #24714 )
...
Shred::new_empty_data_shred returns an invalid shred (i.e.
shred.sanitize() returns error). The method is only used in tests and
can be easily replaced with Shred::new_from_data. To keep the shred api
surface small, this commit removes this method.
2022-04-26 23:13:12 +00:00
behzad nouri
12ae8d3be5
returns Error when Shred::sanitize fails ( #24653 )
...
Including the error in the output allows to debug when Shred::sanitize
fails.
2022-04-25 23:19:37 +00:00
behzad nouri
895f76a93c
hides implementation details of shred from its public interface ( #24563 )
...
Working towards embedding versioning into shreds binary, so that a new
variant of shred struct can include merkle tree hashes of the erasure
set.
2022-04-25 12:43:22 +00:00
carllin
8a062273de
Move error counters to be reported by leader only at end of slot ( #24581 )
...
* Add error counters to leader metrics only
* Add dependencies
2022-04-23 18:10:47 -05:00
Michael Vines
d0a8a16a57
ReplayStage no longer relies on Validator to reset the poh recorder at start
2022-04-22 21:17:49 -07:00
Michael Vines
84e3342612
Process blockstore after starting the TVU
2022-04-22 21:17:49 -07:00
Michael Vines
83e041299a
Run real snapshot packager while processing blockstore at validator startup
2022-04-22 21:17:49 -07:00
HaoranYi
2d4defa477
fix typo ( #24576 )
2022-04-22 08:43:57 -05:00
Jon Cinque
0d51596224
sim: Override slot hashes account on simulation bank ( #24543 )
...
* sim: Override slot hashes during simulation
* Add simulation test program
* Address feedback
* Add AccountOverrides explicit type
* Cargo fmt
2022-04-22 12:32:31 +02:00
Justin Starry
c544742091
Local cluster test cleanup and refactoring ( #24559 )
...
* remove FixedSchedule.start_epoch
* use duration for timing
* Rename to partition bool to turbine_disabled
* simplify partition config
2022-04-22 12:14:07 +08:00
Justin Starry
02bfb85c16
Refactor transaction processing in banking stage ( #24336 )
...
* Refactor transaction processing in banking stage
* feedback
* more feedback
2022-04-21 21:06:26 +08:00
Justin Starry
d5127abf46
Only add hashes for completed blocks to recent blockhashes ( #24389 )
...
* Only add hashes for completed blocks to recent blockhashes
* feedback
2022-04-21 21:05:29 +08:00
Tao Zhu
a21fc3f303
Apply transaction actual execution units to cost_tracker ( #24311 )
...
* Pass the sum of consumed compute units to cost_tracker
* cost model tracks builtins and bpf programs separately, enabling adjust block cost by actual bpf programs execution costs
* Copied nightly-only experimental `checked_add_(un)signed` implementation to sdk
* Add function to update cost tracker with execution cost adjustment
* Review suggestion - using enum instead of struct for CommitTransactionDetails
Co-authored-by: Justin Starry <justin.m.starry@gmail.com>
* review - rename variable to distinguish accumulated_consumed_units from individual compute_units_consumed
* not to use signed integer operations
* Review - using saturating_add_assign!(), and checked_*().unwrap_or()
* Review - using Ordering enum to cmp
* replace checked_ with saturating_
* review - remove unnecessary Option<>
* Review - add function to report number of non-zero units account to metrics
2022-04-21 07:38:07 +00:00
Justin Starry
79923c3b58
Refactor: Rename BlockhashQueue fields and methods for clarity ( #24426 )
2022-04-21 11:57:17 +08:00
HaoranYi
d0761d0ca4
demote receive_window_num_slot_shreds to debug logging ( #24505 )
2022-04-20 08:51:46 -05:00
Michael Vines
05f32f287c
solana-validator monitor now reports slot-level progress while loading blockstore
2022-04-19 22:09:48 -07:00
Michael Vines
9e4999ef6a
Remove halt_at_slot from RuntimeConfig, it's not a runtime concern
2022-04-19 19:23:58 -07:00
Michael Vines
988210908c
Move verify_udp_stats_access out of the way
2022-04-19 19:23:58 -07:00
Michael Vines
c6f3da4879
blockstore_processor now accepts an Arc<Rwlock<BankForks>>
2022-04-19 19:23:58 -07:00
Michael Vines
0e2e0c8b7d
Extract most storage-related services from the Tvu abstraction
2022-04-19 19:23:58 -07:00
Michael Vines
268a2109de
Relocate hard forks info log
2022-04-19 19:23:58 -07:00