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

Fix relaying of governance objects when collaterals are not fully confirmed #3018

Closed
wants to merge 2 commits into from

Conversation

codablock
Copy link

See commit messages. We might need to backport this to 0.14.0.x, but I'm not 100% sure about it. The current behavior on mainnet should be that governance objects are simply not relayed until the collateral is fully confirmed. There is however a small chance of nodes getting banned by other nodes when they try to relay an object before the first on-chain confirmation, but IMHO the chance is pretty small and it's also not usable for an attack (as it would be quite expensive due to burning of 5 Dash).

codablock added 2 commits July 7, 2019 15:43
A bug in CGovernanceObject::IsCollateralValid caused governance objects
to be rejected when the collateral was IS locked and not fully confirmed
on-chain. The intention was to actually accept such objects and relay them.

This changes IsCollateralValid to accept such collaterals but also gives
the caller the required info to postpone relaying of such objects for older
peers.
And postpone relaying to older peers until the object's collateral is fully
confirmed.
@codablock codablock added this to the 14.1 milestone Jul 7, 2019
@codablock
Copy link
Author

As discussed in Slack, we should better completely remove support for InstantSend for gobject collaterals. This is not used often enough to justify the complexity.

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

Successfully merging this pull request may close these issues.

2 participants