Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HIP 73: Consensus Deselection Weighting #491

Closed
vincenzospaghetti opened this issue Oct 14, 2022 · 6 comments
Closed

HIP 73: Consensus Deselection Weighting #491

vincenzospaghetti opened this issue Oct 14, 2022 · 6 comments

Comments

@vincenzospaghetti
Copy link
Contributor

vincenzospaghetti commented Oct 14, 2022

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.

image

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

@vincenzospaghetti
Copy link
Contributor Author

HIP 73 is going to be open for voting today (10/19). The vote will remain open for 48 hours! Please go and vote on HIP 73 at helium.vote.

@vincenzospaghetti
Copy link
Contributor Author

Voting is open for HIP 73 at helium.vote! It will remain open until the evening of the 22nd/morning of the 23rd, depending on block time.

Some clarifying questions were accidentally opened as an issue in #496 - the issue has been closed but please reference the ticket for any clarity it may also provide you.

@vincenzospaghetti
Copy link
Contributor Author

HIP 73 has passed with 82% for the new chain variable. The new chain variable is already available to push and will go out with the next update. Validators have already upgraded from the last update and the Core Developers intend to upgrade this tomorrow morning (10/25).

@PaulVMo @abhay

@vincenzospaghetti
Copy link
Contributor Author

PaulM — Today at 10:03 AM
Yes, thanks to everyone who voted for HIP 73. The code is already merged, and blockchain operators (validators, nodes, ETLs, and routers) have been given until the end of the day today UTC (Oct 24) to upgrade. Expect activation of the change sometime after tomorrow. There are other changes in the release that also need to be activated as well as any additional testing the core blockchain development team deems necessary on testnet so it could take a little bit of time.

@vincenzospaghetti
Copy link
Contributor Author

PaulM — Today at 8:34 AM
The activation of HIP 73 went successfully. No major hiccups. Elections and block production continues to move along. We've seen one longer election cycle (52 blocks vs. the target of 30) since activation however that doesn't seem to be the trend. Overall, I'm pleased. The impact of the change is likely small right now given overall low penalties among validators. However, time will tell once we see another period of higher penalties which should result in poor performers getting ejected from the consensus group more quickly.

@vincenzospaghetti vincenzospaghetti added deployed and removed bug Something isn't working in development labels Oct 26, 2022
@waveform06
Copy link
Collaborator

HIP 73 was approved by the community on 22nd October 2022 with a passing rate of 82.47%
https://www.heliumvote.com/13Z3p82AX8H1EUQF74cP2qq7RmmhbKBAiGWWsyA7WLxQ9NENTVW

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants