dash/src/llmq
Konstantin Akimov 63ed462c54
feat: auto generation EHF and spork+EHF activation for MN_RR (#5597)
Implementation EHF mechanism, part 4. Previous changes are: 
 - https://github.com/dashpay/dash/pull/4577
 - https://github.com/dashpay/dash/pull/5505
 - https://github.com/dashpay/dash/pull/5469

## Issue being fixed or feature implemented
Currently MN_RR is activated automatically by soft-fork activation after
v20 is activated.
It is not flexible enough, because platform may not be released by that
time yet or in opposite it can be too long to wait.
Also, any signal of EHF requires manual actions from MN owners to sign
EHF signal - it is automated here.

## What was done?
New spork `SPORK_24_MN_RR_READY`; new EHF manager that sign EHF signals
semi-automatically without manual actions; and send transaction with EHF
signal when signal is signed to network.
Updated rpc `getblockchaininfo` to return information about of EHF
activated forks.
Fixed function `IsTxSafeForMining` in chainlock's handler to skip
transactions without inputs (empty `vin`).

## How Has This Been Tested?
Run unit/functional tests. Some tests have been updated due to new way
of MN_RR activation: `feature_asset_locks.py`, `feature_mnehf.py`,
`feature_llmq_evo.py` and unit test `block_reward_reallocation_tests`.


## Breaking Changes
New way of MN_RR activation.

## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
2023-10-17 22:31:40 -05:00
..
blockprocessor.cpp refactor: reduce usage of chainstate globals in Dash-specific logic (#5531) 2023-08-23 12:11:26 -05:00
blockprocessor.h refactor: reduce usage of chainstate globals in Dash-specific logic (#5531) 2023-08-23 12:11:26 -05:00
chainlocks.cpp merge bitcoin#19064: Cleanup thread ctor calls 2023-09-04 20:50:27 -05:00
chainlocks.h fix: add missing includes and remove obsolete includes (#5562) 2023-09-07 09:07:02 -05:00
clsig.cpp
clsig.h
commitment.cpp Merge #15921: validation: Tidy up ValidationState interface 2023-04-17 10:42:25 -05:00
commitment.h refactor: make all ToJson functions return a UniValue instead of return by reference; add nodiscard (#5592) 2023-09-29 12:56:52 -05:00
context.cpp feat: auto generation EHF and spork+EHF activation for MN_RR (#5597) 2023-10-17 22:31:40 -05:00
context.h feat: auto generation EHF and spork+EHF activation for MN_RR (#5597) 2023-10-17 22:31:40 -05:00
debug.cpp merge bitcoin#20749: Prune g_chainman usage related to ::LookupBlockIndex 2023-04-04 12:41:45 -05:00
debug.h Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00
dkgsession.cpp refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
dkgsession.h refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
dkgsessionhandler.cpp merge bitcoin#20464: Treat CDataStream bytes as uint8_t 2023-09-24 09:50:50 -05:00
dkgsessionhandler.h fix: add missing includes and remove obsolete includes (#5562) 2023-09-07 09:07:02 -05:00
dkgsessionmgr.cpp refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
dkgsessionmgr.h refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
ehf_signals.cpp feat: auto generation EHF and spork+EHF activation for MN_RR (#5597) 2023-10-17 22:31:40 -05:00
ehf_signals.h feat: auto generation EHF and spork+EHF activation for MN_RR (#5597) 2023-10-17 22:31:40 -05:00
instantsend.cpp merge bitcoin#19064: Cleanup thread ctor calls 2023-09-04 20:50:27 -05:00
instantsend.h fix: add missing includes and remove obsolete includes (#5562) 2023-09-07 09:07:02 -05:00
params.h docs: wrong threshold for LLMQ_25_67 (#5358) 2023-05-04 23:33:47 -05:00
quorums.cpp refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
quorums.h refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
signing_shares.cpp merge bitcoin#19064: Cleanup thread ctor calls 2023-09-04 20:50:27 -05:00
signing_shares.h fix: add missing includes and remove obsolete includes (#5562) 2023-09-07 09:07:02 -05:00
signing.cpp merge bitcoin#19791: Move Misbehaving() to PeerManager 2023-05-11 09:19:47 -05:00
signing.h fix: Resolve mainnet v19 fork issues (#5403) 2023-06-04 23:45:56 +03:00
snapshot.cpp refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
snapshot.h refactor: further spanification of Dash code (#5586) 2023-10-03 09:52:33 -05:00
utils.cpp feat!: Block Reward Reallocation (Doubling Treasury) (#5588) 2023-10-03 09:32:53 -05:00
utils.h feat!: Block Reward Reallocation (Doubling Treasury) (#5588) 2023-10-03 09:32:53 -05:00