The directory is currently named with the expected_shred_version;
however, the backup contains shreds that do NOT match the
expected_shred_version. So, use the found (incorrect) shred version in
the name instead.
* Adding metrics for prioritization fees min/max per thread
* Adding scheduled transaction prioritization fees to the metrics
* Changes after andrews comments
* fixing Taos comments
* Adding metrics to the new scheduler
* Fixing getting of min max for TransactionStateContainer
* Fix clippy CI Issue
* Changes after andrews comments about min/max for new scheduler
* Creating a new structure to store prio fee metrics
* Reporting with prio fee stats banking_stage_scheduler_counts
* merging prioritization stats into SchedulerCountMetrics
* Minor changes after andrews review
During a cluster upgrade when only half of the cluster can ingest the new shred
variant, sending shreds of the new variant can cause nodes to diverge.
The commit adds a feature to enable chained Merkle shreds explicitly.
* gossip: notify state machine of duplicate proofs
* Add feature flag for ingesting duplicate proofs from Gossip.
* Use the Epoch the shred is in instead of the root bank epoch.
* Fix unittest by activating the feature.
* Add a test for feature disabled case.
* EpochSchedule is now not copyable, clone it explicitly.
* pr feedback: read epoch schedule on startup, add guard for ff recache
* pr feedback: bank_forks lock, -cached_slots_in_epoch, init ff
* pr feedback: bank.forks_try_read() -> read()
* pr feedback: fix local-cluster setup
* local-cluster: do not expose gossip internals, use retry mechanism instead
* local-cluster: split out case 4b into separate test and ignore
* pr feedback: avoid taking lock if ff is already found
* pr feedback: do not cache ff epoch
* pr feedback: bank_forks lock, revert to cached_slots_in_epoch
* pr feedback: move local variable into helper function
* pr feedback: use let else, remove epoch 0 hack
---------
Co-authored-by: Wen <crocoxu@gmail.com>
The function open_genesis_config() performs several operations that
could fail. If any of these fail, the process exits immediately.
Instead of exiting immediately, bubble up the error and let the caller
decide the appropriate action. solana-validator and solana-ledger-tool
will functionally be unchanged, but this consolidates startup failures
for both of these processes.
* wire up fork stats fork_weight
* convert weight to percentage for logging
* add bank_stake
* remove old fork choice measure and stats - vote stake * lockout
* update tests
* fix bank_weight and rename it to fork_weight
* fix u64 multiple overflow in fork_weight calculation
* format fork_weight as percentage in logging
---------
Co-authored-by: HaoranYi <haoran.yi@solana.com>
```
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do
--> core/src/banking_stage/consumer.rs:153:29
|
153 | packets_to_process: &Vec<Arc<ImmutableDeserializedPacket>>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Arc<ImmutableDeserializedPacket>]`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
= note: `#[warn(clippy::ptr_arg)]` on by default
warning: `solana-core` (lib) generated 1 warning
```
```
warning: unit tests in doctest are not executed
--> core/tests/fork-selection.rs:15:5
|
15 | //! #[test]
| _____^
16 | | //! #[ignore]
17 | | //! fn test_all_partitions() {
| |__________________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#test_attr_in_doctest
= note: `#[warn(clippy::test_attr_in_doctest)]` on by default
warning: `solana-core` (test "fork-selection") generated 1 warning
```