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
Michael Vines
62d864559f
Tower cleanup: reduce fn visibility, remove unnecessary new_with_key()
2021-07-14 09:42:35 -07:00
carllin
4d3e301ee4
Introduce slot dumping to ReplayStage ( #18160 )
2021-07-08 19:07:32 -07:00
Michael Vines
d5c2c72360
Rename Tower::lockouts to Tower::vote_state
2021-07-02 18:35:49 -07:00
carllin
0eca92de18
Make set roots an iterator ( #18357 )
2021-07-01 20:02:40 -07:00
Michael Vines
b6792a3328
Add ability to change the validator identity at runtime
2021-07-01 17:50:04 -07:00
carllin
68c87469c3
Cleanup ReplayStage tests ( #18241 )
2021-06-28 20:19:42 -07:00
Alexander Meißner
789f33e8db
chore: cargo fmt
2021-06-18 10:42:46 -07:00
Alexander Meißner
6514096a67
chore: cargo +nightly clippy --fix -Z unstable-options
2021-06-18 10:42:46 -07:00
Tyera Eulberg
d0511de9a6
chore: bump trees from 0.2.1 to 0.4.2 ( #18052 )
...
* chore: bump trees from 0.2.1 to 0.4.2 (#18041 )
Bumps [trees](https://github.com/oooutlk/trees ) from 0.2.1 to 0.4.2.
- [Release notes](https://github.com/oooutlk/trees/releases )
- [Commits](https://github.com/oooutlk/trees/commits )
---
updated-dependencies:
- dependency-name: trees
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Accommodate field & type changes
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-17 22:45:09 +00:00
carllin
c8535be0e1
Port unconfirmed duplicate tracking logic from ProgressMap to ForkChoice ( #17779 )
2021-06-11 03:09:57 -07:00
carllin
afafa624a3
Account for duplicate before a bank is frozen or replayed ( #17866 )
2021-06-10 22:28:23 -07:00
carllin
8664b2cc39
Fix bad assertion ( #17401 )
2021-05-22 20:18:13 -07:00
Tao Zhu
0781fe1b4f
Upgrade Rust to 1.52.0 ( #17096 )
...
* Upgrade Rust to 1.52.0
update nightly_version to newly pushed docker image
fix clippy lint errors
1.52 comes with grcov 0.8.0, include this version to script
* upgrade to Rust 1.52.1
* disabling Serum from downstream projects until it is upgraded to Rust 1.52.1
2021-05-19 09:31:47 -05:00
carllin
bc7e741514
Integrate gossip votes into switching threshold ( #16973 )
2021-05-04 00:51:42 -07:00
Jeff Washington (jwash)
541aa5ad85
tests: lamports -> lamports() ( #16982 )
2021-05-03 10:45:54 -05:00
Justin Starry
8e561354d5
Improve readability of vote lockout processing ( #16987 )
...
* Improve readability of vote lockout processing
* clippy
* simplify comment
* feedback
2021-05-02 08:36:06 +00:00
carllin
5981399612
Distinguish max replayed and max observed vote ( #16936 )
2021-04-29 14:43:28 -07:00
carllin
b5d30846d6
Retry latest vote if expired ( #16735 )
2021-04-28 11:46:16 -07:00
carllin
4c94f8933f
Ingest votes from gossip into fork choice ( #16560 )
2021-04-21 14:40:35 -07:00
Michael Vines
a911ae00ba
clippy
2021-04-18 20:55:02 -07:00
carllin
dc7030ffaa
Allow fork choice to support multiple versions of a slot ( #16266 )
2021-04-12 01:00:59 -07:00
carllin
99b3aab703
Track gossip vote updates per hash for replay stage ( #16421 )
...
* Track gossip vote updates per hash for replay stage
2021-04-10 17:34:45 -07:00
sakridge
b99ae8f334
Skip leader slots until a vote lands ( #15607 )
2021-03-25 18:54:51 -07:00
carllin
52703badfa
Setup ReplayStage confirmation scaffolding for duplicate slots ( #9698 )
2021-03-24 23:41:52 -07:00
Jeff Washington (jwash)
c09ea2c314
More AccountSharedData construction ( #15844 )
...
* one more AccountSharedData construction
* one more construct
2021-03-15 19:27:17 -05:00
Jeff Washington (jwash)
952c3bcbb7
AccountSharedData construction ( #15790 )
2021-03-11 18:09:04 -06:00
Jeff Washington (jwash)
1135ffd595
mut data refs as slice ( #15782 )
2021-03-10 15:28:03 -06:00
Jeff Washington (jwash)
8a3135d17b
Account->AccountSharedData ( #15691 )
2021-03-09 15:06:07 -06:00
Michael Vines
5df36aec7d
Pacify clippy
2021-02-19 20:08:41 -08:00
behzad nouri
6fd5ec0e4c
caches descendants in bank forks ( #15107 )
2021-02-05 18:00:45 +00:00
behzad nouri
86467d825a
removes pubkey references ( #15050 )
2021-02-03 23:02:11 +00:00
behzad nouri
8e581601d6
patches crds vote-index assignment bug ( #14438 )
...
If tower is full, old votes are evicted from the front of the deque:
https://github.com/solana-labs/solana/blob/2074e407c/programs/vote/src/vote_state/mod.rs#L367-L373
whereas recent votes if expire are evicted from the back:
https://github.com/solana-labs/solana/blob/2074e407c/programs/vote/src/vote_state/mod.rs#L529-L537
As a result, from a single tower_index scalar, we cannot infer which crds-vote
should be overwritten:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/crds_value.rs#L576
In addition there is an off by one bug in the existing code. tower_index is
bounded by MAX_LOCKOUT_HISTORY - 1:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/consensus.rs#L382
So, it is at most 30, whereas MAX_VOTES is 32:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/crds_value.rs#L29
Which means that this branch is never taken:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/crds_value.rs#L590-L593
so crds table alwasys keeps 29 **oldest** votes by wallclock, and then
only overrides the 30st one each time. (i.e a tally of only two most
recent votes).
2021-01-21 13:08:07 +00:00
behzad nouri
49019c6613
obtains staked-nodes from the root-bank ( #14257 )
...
... as opposed to the working bank
2020-12-27 13:28:05 +00:00
Trent Nelson
5b903318b2
vote: Add helper for creating current-versioned states
2020-12-22 19:37:26 -07:00
behzad nouri
7b08cb1f0d
improves performance in replay-stage ( #14217 )
...
bank::vote_accounts returns a hash-map which is slow to iterate, but all uses
only require an iterator:
https://github.com/solana-labs/solana/blob/b3dc98856/runtime/src/bank.rs#L4300-L4306
Similarly, calculate_stake_weighted_timestamp takes a hash-map whereas it only
requires an iterator:
https://github.com/solana-labs/solana/blob/b3dc98856/sdk/src/stake_weighted_timestamp.rs#L21-L28
2020-12-21 19:18:19 +00:00
Michael Vines
7143aaa89b
Clippy
2020-12-14 08:03:29 -08:00
carllin
55fc963595
Move slot cleanup to AccountsBackgroundService ( #13911 )
...
* Move bank drop to AccountsBackgroundService
* Send to ABS on drop instead, protects against other places banks are dropped
* Fix Abi
* test
Co-authored-by: Carl Lin <carl@solana.com >
2020-12-13 01:22:34 +00:00
carllin
239a191612
Remove unneeded BankWeight fork choice ( #13978 )
...
Co-authored-by: Carl Lin <carl@solana.com >
2020-12-07 13:47:14 -08:00
behzad nouri
e1793e5a13
caches vote-state de-serialized from vote accounts ( #13795 )
...
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.
2020-11-30 17:18:33 +00:00
carllin
9821a7754c
Discard pre hard fork persisted tower if hard-forking ( #13536 )
...
* Discard pre hard fork persisted tower if hard-forking
* Relax config.require_tower
* Add cluster test
* nits
* Remove unnecessary check
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
Co-authored-by: Carl Lin <carl@solana.com >
2020-11-12 23:29:04 +09:00
Ryo Onodera
1df15d85c3
Fix tower/blockstore unsync due to external causes ( #12671 )
...
* Fix tower/blockstore unsync due to external causes
* Add and clean up long comments
* Clean up test
* Comment about warped_slot_history
* Run test_future_tower with master-only/master-slave
* Update comments about false leader condition
2020-10-30 19:31:23 +09:00
Ryo Onodera
66c7a98009
Allow existence of vote on root in saved tower ( #13135 )
2020-10-26 11:08:20 +09:00
Michael Vines
a4956844bd
Update frozen_abi hashes
...
The movement of files in sdk/ caused ABI hashes to change
2020-10-24 08:37:55 -07:00
Michael Vines
7bc073defe
Run codemod --extensions rs Pubkey::new_rand solana_sdk::pubkey::new_rand
2020-10-21 19:08:13 -07:00
Ryo Onodera
efdb560e97
Various clean-ups before assert adjustment ( #13006 )
...
* Various clean-ups before assert adjustment
* oops
2020-10-21 10:26:20 +09:00
Ryo Onodera
54517ea454
Follow up to persistent tower with tests and API cleaning ( #12350 )
...
* Follow up to persistent tower
* Ignore for now...
* Hard-code validator identities for easy reasoning
* Add a test for opt. conf violation without tower
* Fix compile with rust < 1.47
* Remove unused method
* More move of assert tweak to the asser pr
* Add comments
* Clean up
* Clean the test addressing various review comments
* Clean up a bit
2020-10-19 16:37:03 +09:00
Ryo Onodera
fd8ec27fe8
Another some tower logging improvements ( #12940 )
2020-10-16 14:44:07 +09:00
Ryo Onodera
a44e4d386f
Better tower logs for SwitchForkDecision and etc ( #12875 )
...
* Better tower logs for SwitchForkDecision and etc
* nits
* Update comment
2020-10-15 18:30:33 +09:00