* Add blockstore api to determine if a slot was skipped
* Return custom rpc error if slot is skipped
(cherry picked from commit ac0d32bc7e81848ccb85032c09c6d6d5f63a4813)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit 75e9e321de9c8b6fcd958a7936de74fc63ebfe3f)
Co-authored-by: carllin <wumu727@gmail.com>
* adds the instance token to crds-labels for node-instance crds-values (#14037)
If a node "a" receives instance-info from node "b1" it will override any
instance-info associated with "b1" pubkey in its crds table. This makes
it less likely that when "b1" receives crds values from "a" (either
through pull or push), it sees other instances of itself (because node
"a" discarded them when it received "b1" instance info).
In order for the crds table to contain all instance-info associated with
the same pubkey at the same time, we need to add the instance tokens to
the keys in the crds table (i.e. the CrdsValueLabel).
(cherry picked from commit 409fe3bca112edc7aefafb6c7afe31c1e78f4f8a)
# Conflicts:
# core/src/cluster_info.rs
* removes backport merge conflicts
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
* checks for duplicate validator instances using gossip
(cherry picked from commit 8cd5eb9863ae62c90bd3da176b33a719386b8d3a)
# Conflicts:
# core/src/cluster_info.rs
* pushes node-instance along with version early in gossip
(cherry picked from commit 542198180ab4116b89b4e0759dcdb059293ae2a2)
* removes RwLock on ClusterInfo.instance
(cherry picked from commit 895d7d6a65bb3589baf58dee9fa172038f61c486)
# Conflicts:
# core/src/cluster_info.rs
* std::process::exit to kill all threads
(cherry picked from commit 1d267eae6b82222027780280f8141710260c6123)
* removes backport merge conflicts
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit 239a191612061eb4b49966c7f316f8c1a052505e)
Co-authored-by: carllin <wumu727@gmail.com>
* runtime: Factor out `DurableNoncePartial` finishing logic and add tests
(cherry picked from commit 8df2a4bac0954b004556c2fc2e5c6bb7b86d1028)
* accounts: Don't assume fee-payer is the first account
(cherry picked from commit 47af5933caea0e03930e2ed03d18160903a832a7)
* accounts: Replace nonce_rollback unreachable block with descriptive panic
(cherry picked from commit be7760caa1725020290a25023046772c7b5dc733)
* sdk: Check owner when verifying nonce accounts
(cherry picked from commit 274312ebb59ffeac4a8a40f42375c2c6eedb03e7)
* runtime: Replace `HashAgeKind` with `NonceRollbackInfo`
(cherry picked from commit 404fc1570d722709344876dc91799edd576056bf)
* Make `Accounts::is_non_loader_key()` a method on `Message`
(cherry picked from commit 17defbff13fab30210c0b454adb5296f44bd4243)
Co-authored-by: Trent Nelson <trent@solana.com>
Gossip and other places repeatedly de-serialize vote-state stored in
vote accounts. Ideally the first de-serialization should cache the
result.
This commit adds new VoteAccount type which lazily de-serializes
VoteState from Account data and caches the result internally.
Serialize and Deserialize traits are manually implemented to match
existing code. So, despite changes to frozen_abi, this commit should be
backward compatible.
(cherry picked from commit e1793e5a13)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
* runtime: Add `FeeCalculator` resolution method to `HashAgeKind`
* runtime: Plumb fee-collected accounts for failed nonce tx rollback
* runtime: Use fee-collected nonce/fee account for nonced TX error rollback
* runtime: Add test for failed nonced TX accounts rollback
* Fee payer test
* fixup: replace nonce account when it pays the fee
* fixup: nonce fee-payer collect test
* fixup: fixup: clippy/fmt for replace...
* runtime: Test for `HashAgeKind::fee_calculator()`
* Clippy
Co-authored-by: Trent Nelson <trent@solana.com>
(cherry picked from commit b70abdc645)
Co-authored-by: sakridge <sakridge@gmail.com>
process_pull_requests acquires a write lock on crds table to update
records timestamp for each of the pull-request callers:
https://github.com/solana-labs/solana/blob/3087c9049/core/src/crds_gossip_pull.rs#L287-L300
However, pull-requests overlap a lot in callers and this function ends
up doing a lot of redundant duplicate work.
This commit obtains unique callers before acquiring an exclusive lock on
crds table.
(cherry picked from commit 26bf2b7e45)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
* Fix fragile tests in prep of stake rewrite pr
* Restore BOOTSTRAP_VALIDATOR_LAMPORTS where appropriate
* Further clean up
* Further clean up
* Aligh with other call site change
* Remove false warn!
* fix ci!
(cherry picked from commit b74d7b5758)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>