Ashwin Sekar
a8e83c8720
replay: send duplicate proofs from blockstore to state machine ( #32962 )
...
* replay: send duplicate proofs from blockstore to state machine
* pr feedback: bank.slot() -> slot
* pr feedback
2023-09-05 21:29:53 -07:00
Ashwin Sekar
025651e0d4
ff cleanup: allow_votes_to_directly_update_vote_state and compact_vot… ( #32967 )
...
ff cleanup: allow_votes_to_directly_update_vote_state and compact_vote_state_updates
2023-08-30 17:00:19 -07:00
Trent Nelson
b8dc5daedb
preliminaries for bumping nightly to 2023-08-25 ( #33047 )
...
* remove unnecessary hashes around raw string literals
* remove unncessary literal `unwrap()`s
* remove panicking `unwrap()`
* remove unnecessary `unwrap()`
* use `[]` instead of `vec![]` where applicable
* remove (more) unnecessary explicit `into_iter()` calls
* remove redundant pattern matching
* don't cast to same type and constness
* do not `cfg(any(...` a single item
* remove needless pass by `&mut`
* prefer `or_default()` to `or_insert_with(T::default())`
* `filter_map()` better written as `filter()`
* incorrect `PartialOrd` impl on `Ord` type
* replace "slow zero-filled `Vec` initializations"
* remove redundant local bindings
* add required lifetime to associated constant
2023-08-29 23:05:35 +00:00
Ashwin Sekar
329c6f131b
tower: when syncing from vote state, update last_vote ( #32944 )
...
* tower: when syncing from vote state, update last_vote
* pr: bubble error through unchecked
2023-08-23 13:15:57 -07:00
behzad nouri
d54b6204be
removes instances of clippy::manual_let_else ( #32417 )
2023-07-09 21:41:36 +00:00
Ashwin Sekar
e1576b5352
Don't attempt to refresh votes on non voting validators ( #32315 )
2023-06-30 17:53:06 -07:00
Jeff Biseda
87c1b67d53
refactor core to create consensus module ( #32282 )
2023-06-27 17:25:08 -07:00
Ashwin Sekar
4ba78de8cb
Add metrics for invalid vote timestamps ( #32206 )
2023-06-20 17:29:13 +00:00
Ashwin Sekar
01d3546de0
Increment timestamp on refreshed votes ( #31908 )
2023-06-15 10:38:22 -07:00
bji
a45710838d
Add new vote state version that replaces Lockout with LandedVote to a… ( #30831 )
...
Add new vote state version that replaces Lockout with LandedVote to allow vote latency to be tracked in a future change.
Includes a feature to be enabled which will when enabled cause the vote state to be written in the new form.
2023-04-18 20:27:38 -07:00
Trent Nelson
f34a6bcfce
runtime: transpose `VoteAccount::vote_state()` return to improve ergonomics ( #31256 )
2023-04-18 14:48:52 -06:00
Ashwin Sekar
85dbd3d94d
Add stake breakdown to metrics for HeaviestForkFailures ( #31067 )
2023-04-05 20:35:12 -06:00
steviez
5344a789d7
Revert "Add new vote state version that replaces Lockout with LandedV… ( #30817 )
...
Revert "Add new vote state version that replaces Lockout with LandedVote to a… (#29524 )"
This reverts commit d77f0a22c7
.
2023-03-21 22:54:13 +08:00
bji
d77f0a22c7
Add new vote state version that replaces Lockout with LandedVote to a… ( #29524 )
...
* Add new vote state version that replaces Lockout with LandedVote to allow vote latency to be tracked in a future change. Includes a feature to be enabled which will when enabled cause the vote state to be written in the new form.
* Update feature set key to one owned by ashwin
---------
Co-authored-by: Ashwin Sekar <ashwin@solana.com>
2023-03-20 08:31:46 -06:00
Trent Nelson
c4e43f1de4
vote: encapsulate `Lockout` ( #29753 )
2023-01-18 19:28:28 -07:00
behzad nouri
4ee318b2b2
fixes rust code formatting in core/src/consensus.rs ( #29204 )
2022-12-11 23:20:52 +00:00
behzad nouri
9524c9dbff
patches errors from clippy::uninlined_format_args
...
https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
2022-12-06 19:32:15 +00:00
haoran
c4aab3f178
typo
2022-10-03 09:41:15 -05:00
behzad nouri
97c9af4c6b
plumbs through flag to generate merkle variant of shreds
2022-09-23 16:45:18 +00:00
behzad nouri
9a57c64f21
patches clippy errors from new rust nightly release ( #27996 )
2022-09-22 22:23:03 +00:00
behzad nouri
4f22ee8f9b
uses varint encoding for vote-state lockout offsets
...
The commit removes CompactVoteStateUpdate and instead reduces serialized
size of VoteStateUpdate using varint encoding for vote-state lockout
offsets.
2022-09-12 16:31:20 +00:00
Michael Vines
ccfbc54195
Move vote program state and instructions to solana-program
2022-08-09 20:52:47 -07:00
Ashwin Sekar
8d69e8d447
Compact vote state updates to reduce block size ( #26616 )
...
* Compact vote state updates to reduce block size
* Add rpc transaction tests
2022-07-27 13:23:44 -06:00
behzad nouri
2dd8573287
removes erroneous allow(dead_code) annotations from core ( #26660 )
2022-07-18 17:15:47 +00:00
Ashwin Sekar
734fedea4c
Create a more compact vote state update transaction ( #26092 )
...
* Create a more compact vote state update transaction
* pr comments
* change root to not be an option and update abi
2022-07-07 22:29:02 -07:00
Ryo Onodera
cd2878acf9
Avoid to miss to root for local slots before the hard fork ( #19912 )
...
* Make sure to root local slots even with hard fork
* Address review comments
* Cleanup a bit
* Further clean up
* Further clean up a bit
* Add comment
* Tweak hard fork reconciliation code placement
2022-06-26 15:14:17 +09:00
Justin Starry
44d1e62007
Refactor: No need to return stake in Bank::get_vote_account ( #26220 )
2022-06-25 16:27:43 +00:00
Michael Vines
f3639b76ce
Remove some clippy lints
2022-06-22 09:23:22 -07:00
Michael Vines
ace24a7c82
A default tower is no longer considered to contain a stray last vote
2022-06-10 14:17:26 -07:00
Michael Vines
b05c7d91ed
Fix derive_partial_eq_without_eq clippy lint
2022-05-22 22:22:21 -07: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
Justin Starry
4e58b3870c
Update all BankForks methods to return owned values ( #24801 )
2022-04-28 18:51:00 +00:00
HaoranYi
2d4defa477
fix typo ( #24576 )
2022-04-22 08:43:57 -05:00
steviez
c31db81ac4
Use VoteAccountsHashMap type alias in all applicable spots ( #23904 )
2022-03-24 12:09:48 -05:00
buffalu
70ebab2c82
Add rustfmt.toml and `cargo fmt` ( #23238 )
...
* fmt
* formatted
Co-authored-by: Lucas B <buffalu@jito.network>
2022-02-19 13:32:29 +08:00
Ashwin Sekar
5acf0f6331
Add feature gate for new vote instruction and plumb through replay ( #21683 )
...
* Add feature gate for new vote instruction and plumb through replay
Add tower versions
* Add check for slot hashes history
* Update is_recent check to exclude voting on hard fork root slot
* Move tower rollback test to flaky and ignore it until #22551 lands
2022-02-07 14:06:19 -08:00
Michael Vines
8dc6f9f589
Remove unused mut
2022-01-18 12:10:31 -08:00
carllin
4ab7d6c23e
Filter out outdated slots ( #22450 )
...
* Filter out outdated slots
* Fixup error
2022-01-13 19:51:00 -05:00
Ashwin Sekar
eeec1ce2ad
Add local cluster test to repro slot hash expiry bug ( #21873 )
2022-01-10 00:58:21 -05:00
behzad nouri
4d62f03297
uses enum instead of trait for VoteTransaction ( #22019 )
...
Box<dyn Trait> involves runtime dispatch, has significant overhead and
is slow. It also requires hacky boilerplate code for implementing Clone
or other basic traits:
https://github.com/solana-labs/solana/blob/e92a81b74/programs/vote/src/vote_state/mod.rs#L70-L102
Only limited known types can be VoteTransaction and they are all defined
in the same crate. So using a trait here only adds overhead.
https://github.com/solana-labs/solana/blob/e92a81b74/programs/vote/src/vote_state/mod.rs#L125-L165
https://github.com/solana-labs/solana/blob/e92a81b74/programs/vote/src/vote_state/mod.rs#L221-L264
2021-12-22 14:25:46 +00:00
Ashwin Sekar
f0acf7681e
Add vote instructions that directly update on chain vote state ( #21531 )
...
* Add vote state instructions
UpdateVoteState and UpdateVoteStateSwitch
* cargo tree
* extract vote state version conversion to common fn
2021-12-07 16:47:26 -08:00
Michael Vines
7027d56064
Resolve nightly-2021-10-05 clippy complaints
2021-10-06 10:37:58 -07:00
behzad nouri
8ad52fa095
implements copy-on-write for vote-accounts ( #19362 )
...
Bank::vote_accounts redundantly clones vote-accounts HashMap even though
an immutable reference will suffice:
https://github.com/solana-labs/solana/blob/95c998a19/runtime/src/bank.rs#L5174-L5186
This commit implements copy-on-write semantics for vote-accounts by
wrapping the underlying HashMap in Arc<...>.
2021-08-30 15:54:01 +00:00
Michael Vines
e9722474eb
Move tower storage into its own module
2021-08-11 00:20:46 -07:00
Michael Vines
d7ab510229
Move tower save into the VotingService
2021-08-11 00:20:46 -07:00
behzad nouri
00e5e12906
renames solana_runtime::vote_account::VoteAccount
...
Rename:
VoteAccount -> VoteAccountInner # the private type
ArcVoteAccount -> VoteAccount # the public type
2021-08-10 22:54:17 +00:00
Michael Vines
397801a2d8
Extract tower storage details from Tower struct
2021-08-06 10:04:37 -07:00
carllin
03353d500f
Actively manage dead slots in AncestorHashesService ( #18912 )
2021-08-02 14:33:28 -07:00
Michael Vines
61865c0ee0
`solana-validator set-identity` now loads the tower file for the new identity
2021-07-21 22:22:08 -07:00
Michael Vines
b30b32300d
`solana-validator set-identity` now works for voting validators
2021-07-14 09:42:35 -07:00