-
Notifications
You must be signed in to change notification settings - Fork 405
Description
HIP 73: Consensus Deselection Weighting
Author(s): @paulm
Start Date: 2022-10-03
Category: Technical
Original HIP PR: #490
Tracking Issue: #491
Code PR: helium/blockchain-core#1468
Summary
This change introduces a new, tunable, chain variable that improves the performance of the current Helium L1 by changing the selection algorithm of new Consensus Group members. This change specifically adjusts the weight given to historical penalties when selecting existing Consensus Group members to be removed. By reducing (or even zeroing out) the previous penalties of Consensus Group members, performance penalties earned in the current epoch have a larger impact on the selection. This will help eject poor performers from the Consensus Group more quickly and maintain the overall high performance of the chain.
The core developers will have the discretion to set this new chain var (election_penalty_history_percentage) as they see fit to promote the performance of the blockchain. Because it does change election dynamics which have a direct impact on validator operators, the core devs and I fell it is best to bring this change as a HIP with a vote amongst at least validator operators as they are the ones primarily affected.
The code for the change is already merged and tagged for release. However, it will be activated only upon HIP approval by the setting of election_version >= 7.
Motivation
The motivation for this change is to enable quicker removal of low-performing validators from the consensus group. With the current election system, we often see obvious low performers with high total penalties continue to remain in the consensus group. For example, the screenshot of CG member total penalty over time shows clear outliers who persist in the group despite amassing penalties 4x to 5x higher than average.
This change will help to remove these poor performers more quickly, by giving higher weight to performance penalties in the current epoch.
Rendered View
https://github.com/helium/HIP/blob/main/0073-consensus-deselection-history-weight.md