* Fix optional revocation reason parameter for "protx revoke"
* Fix "protx revoke" help message
* Remove obsolete help text about masternode operator keys and wallets
* Remove legacy masternode tabs on DIP3 activation
* Move setInvisible call for dip3NoteLabel up
Otherwise it takes a minute until it's actually made invisible.
* Bail out early from updateMyNodeList when spork15 is active
Otherwise we risk accessing destroyed Qt objects.
* Bump PROTOCOL_VERSION and DMN_PROTO_VERSION to 70213
This will disconnect all nodes from the old testnet chain when DIP3 gets
activated through BIP9.
Also update comments where 70212/70213 was referenced.
* Also bump MIN_PEER_PROTO_VERSION_DIP3 and MIN_PRIVATESEND_PEER_PROTO_VERSION
* Ensure EvoDB consistency by storing the best block hash
This approach is similar to the one used for chainstate currently.
Ensures that:
- nodes that upgraded after DIP3 has all the data processed correctly (they will crash and require reindex);
- evodb/ is removed when blocks/ is removed (otherwise sync will fail due to duplicate records).
* Implement CEvoDB::VerifyBestBlock/WriteBestBlock and call them from ConnectBlock/DisconnectBlock
* Fix walletbackup.py
* Switch GetQuorumBlockHash from CBlockIndex* to nHeight
* `pindexPrev -> pindex` for ProcessCommitment
* Switch IsCommitmentRequired from CBlockIndex* to block height
* Switch GetMinableCommitment/Tx from CBlockIndex* to block height
* Add `AssertLockHeld(cs_main);`
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
* Track ProTx operator key changes in mempool
* Remove ProTx conflicts from mempool when ProUpRegTx or ProUpRevTx changed keys
* Only allow one operator key change per MN in in mempool
* Don't delete/add values to the unique property map when it's null
This happens when revoking operator keys, as the revoked MN will then have
the address and operator keys set to the null representation. We shouldn't
add the null value to the unique property map as otherwise future revokes
crash in an assert.
* Assert that no null values are passed to Add/DeleteUniqueProperty
* Check for null values before calling Add/DeleteUniqueProperty
* Apply suggestions from code review
Co-Authored-By: codablock <ablock84@gmail.com>
* Add user generated default constructors to BLS primitives
Fixes build issues on Mac:
In file included from evo/deterministicmns.cpp:5:
./evo/deterministicmns.h:375:24: error: default initialization of an object of const type 'const CBLSPublicKey' without a user-provided default constructor
static const T nullValue;
^
https://github.com/dashpay/dash/pull/2409 removed the need to call the
Init method of the Chia BLS library, but we also accidently removed the
initialization of the secure allocator.
* Implement creation and propagation of dummy contributions
These act as a ping which is broadcast a few blocks before the dummy
commitments are created. They are meant to determine online/offline members.
* Use information about received dummy contributions to determine validMembers
* Fix PoSe tests
* Fix dummy DKG phase progress in PoSe tests and give tests more time
Mine one block at a time until we reach the mining phase.
* Track TXs in mempool which refer to an existing ProTx
* When a block is added, remove TXs that refer to ProTxs with spent collaterals
* Initalize evoDb and deterministicMNManager in BasicTestingSetup
instead of TestingSetup. Now that the mempool uses deterministicMNManager,
we need to initialize it for all tests that might use the mempool.