Skip to content

Conversation

@domob1812
Copy link

This implements a new regtest mnvaults.py, which runs through a "masternode vault" workflow with a presigned unvaulting transaction and a presigned masternode broadcast (so that the collateral private key need not be kept around). For now, all is done "manually" in the test, without specific support for vaulting/unvaulting from divid.

This also contains a bunch of tweaks, simplifications and fixes to the general masternode logic and RPC methods that are necessary to make it work.

This is #45 reopened after some updates to the git branches.

When creating a delayed masternode broadcast, check the sigtime against
the collateral confirmation block and make sure that it meets the
network criterion (signature must not be earlier than the timestamp
of the block that confirmed the collateral 15 times).

If the condition is violated, just use "now + one hour" as sigtime.
broadcaststartmasternode has a feature to refresh the ping's timestamp
if an explicit signature is passed.  This extends that feature to allow
passing "update_ping" in place of the signature, in which case the
signature contained in the mnb will be kept but the ping will still
be refreshed.

Not passing a second argument at all is still a way to just broadcast
the message as-is.
This adds a new regtest mnvaults.py, which manually implements the
proposal for masternode vaults with a temporary key and a pre-signed
unvault transaction.

It sets up a masternode with a collateral at a temporary address,
for which we need not retain the private key.  Instead we just keep
a pre-signed transaction to withdraw the funds to a specified address
and the signed masternode broadcast in storage, and use them to
first run the masternode and then unvault the funds.
@galpHub galpHub merged commit 7994dbc into DiviProject:Development Apr 28, 2021
@domob1812 domob1812 deleted the mnvault-test branch April 28, 2021 13:11
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