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

[Masternodes] dead end over the activation process. #1886

Merged
merged 1 commit into from
Oct 8, 2020

Conversation

furszy
Copy link

@furszy furszy commented Sep 30, 2020

Solving a dead end inconsistency over the masternode activation process.

Context:

A valid masternode is created, mn start message is broadcasted and the entire network receives it. Peers moves the masternode status to pre_enable (active) and are waiting for a mn ping update to fulfill the min ping time requirement to move the status to enable.

Issue:

As the mnping update message work flow is not performing any action until the masternode is in an enable status (masternode.cpp, line 707), the masternode ping is never updated, there by the masternode will never be moved to enable status.

Why this is working now:

It's working because (1) the masternodes list is being requested, cleaned and re requested an insane amount of times, (2) some peers are broadcasting the start message twice and (3) peers are broadcasting a start message with an inner ping time in the future, fulfilling the min ping requirements.

Final thoughts:

This is most likely one of the reason of the different masternodes list views across peers in the network (over the recently active/enable MNs) and why the activation process takes in some occasions few days (the mn list needs to be refreshed)

Extra data:

  1. The masternodes list request + re-request network bloat, as is mentioned in point 1 of the "Why is working now" section, will not happen anymore in the future moving forward with Tier two network sync new architecture, regtest support + MN activation functional test. #1829 new tier two syncing process subsequent steps, the deterministic masternodes implementation and all of the PRs refactoring & cleaning the tier two sources (in other words, after the whole tier two sources revamp..).

  2. This PR makes Tier two network sync new architecture, regtest support + MN activation functional test. #1829 4963953 hack unneeded.

@furszy furszy self-assigned this Sep 30, 2020
@Fuzzbawls Fuzzbawls added this to the 5.0.0 milestone Oct 2, 2020
Copy link

@random-zebra random-zebra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome catch. 🍻
Concept ACK. Only minor thing, I suggest a name change for the new function.

src/masternode.cpp Outdated Show resolved Hide resolved
A valid masternode is created, mn start message is broadcasted and the entire network receives it. Peers move the masternode status to pre_enable (active) and are waiting for a mn ping update to fulfill the min ping time requirement after it activation to move to enable.

Issue:

As the mnping update message work flow is not performing any action until the masternode is in enable status (masternode.cpp, line 707), the masternode ping is never updated, there by the masternode will never be moved to enable status.
@furszy
Copy link
Author

furszy commented Oct 3, 2020

Updated per feedback.

@furszy furszy changed the title [RFC] Masternodes: dead end over the activation process. Masternodes: dead end over the activation process. Oct 4, 2020
@furszy furszy changed the title Masternodes: dead end over the activation process. [Masternodes] dead end over the activation process. Oct 4, 2020
@furszy furszy added the Bug label Oct 5, 2020
Copy link

@random-zebra random-zebra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested ACK 2e3e313

Copy link
Collaborator

@Fuzzbawls Fuzzbawls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK 2e3e313

@random-zebra random-zebra merged commit db9b093 into PIVX-Project:master Oct 8, 2020
@furszy furszy deleted the 2020_mn_ping_update branch November 29, 2022 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants