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

docs(dip31): platform proof of service #157

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

thephez
Copy link
Collaborator

@thephez thephez commented Sep 16, 2024

To ensure that evonodes provide service on Dash Platform and that non-functioning evonodes do not participate in the Platform validator set, Platform needs a way to exclude faulty evonodes from future Platform validator sets / quorums. Since these nodes are not properly providing service, they should be proof-of-service (PoSe) banned. This DIP outlines a method for Platform to securely notify Core that a node should be banned.

dip-0031.md Show resolved Hide resolved
dip-0031.md Outdated Show resolved Hide resolved

## Abstract

Core will introduce a new P2P message `platformban`, which, when properly signed and received by a
Copy link
Member

Choose a reason for hiding this comment

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

For better understanding, I would say that platform is triggering this process

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added in bd3917f

dip-0031.md Outdated Show resolved Hide resolved
dip-0031.md Outdated Show resolved Hide resolved
dip-0031.md Outdated
1. Check if the node is synced
* Penalty: skip validation of message, do not forward, do not mark as received in inventory
2. Validate the protxHash is in the masternodeList
* Penalty: small P2P penalty (1), as the masternode may have very recently been removed
Copy link
Member

Choose a reason for hiding this comment

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

We should use the term evonode everywhere instead of masternode and do not mix both terms.

* Penalty: small P2P penalty (1), as the masternode may have very recently been removed
3. Validate the masternode associated with the protxHash is an evonode and not a regular masternode
* Penalty: Ban node, P2P penalty (100)
4. Validate the signedHeight is valid and not too far in the past or future
Copy link
Member

Choose a reason for hiding this comment

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

How far?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@PastaPastaPasta can you add a suggestion to clarify this one?

Once validation succeeds, Core shall adjust an internal `PlatformPoSeBan` flag from `false` to
`true`. This flag should be stored on disk and persisted across restarts.

## Effect
Copy link
Member

Choose a reason for hiding this comment

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

Shall we describe how ProUpServTx affects PlatformPoSeBanned?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Isn't that what the last sentence of the paragraph does?

The flag PlatformPoSeBanned must be set to false when an evonode is revived in the deterministic masternode list (DML).

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.

4 participants