This PR is a proposal to not remove stake from nodes that couldn't get any slot because their stake was too small.
This happened in testnet with at least 2 pubkeys:
ED3Y3cuH3wtHXT8TmbDE5toHU6kwQzevWtvkP6rGFNgc
5dB4Ygb8Sf3Sssdxxrpbb4NFX9bMrYnieiz11Vr5xJkJ
They were good producers in epoch 162 and in #tds-stake they were given 50k bonus stake.
But epoch 163 was a special one, lots of new joiners made nodes with a few stake (less than 1k) have a zero slot schedule.
Check lines 479 to 485. If a node didn't get a slot, the node is not considered a quality neither a poor producer, which is correct.
But removing its bonus stake in the line 1032 to 1050 is not correct IMHO...
We should consider someone good until they prove they are bad right? And if you don't give a single slot (chance) for them to prove there's no reason to say they were bad....
Thanks and I'm happy to discuss this more...
* Deprecate commitment variants
* Add new CommitmentConfig builders
* Add helpers to avoid allowing deprecated variants
* Remove deprecated transaction-status code
* Include new commitment variants in runtime commitment; allow deprecated as long as old variants persist
* Remove deprecated banks code
* Remove deprecated variants in core; allow deprecated in rpc/rpc-subscriptions for now
* Heavier hand with rpc/rpc-subscription commitment
* Remove deprecated variants from local-cluster
* Remove deprecated variants from various tools
* Remove deprecated variants from validator
* Update docs
* Remove deprecated client code
* Add new variants to cli; remove deprecated variants as possible
* Don't send new commitment variants to old clusters
* Retain deprecated method in test_validator_saves_tower
* Fix clippy matches! suggestion for BPF solana-sdk legacy compile test
* Refactor node version check to handle commitment variants and transaction encoding
* Hide deprecated variants from cli help
* Add cli App comments