* instantsend: Resolve block conflicts first and take care of mempool ones later
* refactor: Rename RemoveChainLockConflictingLock -> RemoveConflictingLock
* instantsend: Handle transaction removal from mempool (for all reasons besides inclusion in blocks)
* instantsend: Remove old islocks with no known txes from db (once)
* refactor: Replace magic number with CURRENT_VERSION
* fix: Do not remove islocks for (yet) valid orphans
* Apply suggestions from code review
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* evo: Remove all protx-es that refer to a ProRegTx removed from mempool
* tests: Check that removal of ProRegTx causes removal of other protx-es that refer to it
* evo: Consider tx itself a collateral in mempool maps when payload collateral hash is null
* tests: Should not allow a ProRegTx which uses another ProRegTx as an external collateral to enter mempool
* tests: Check that CLs override ISes which invalidated non-CLed blocks earlier
* partial revert 3987: Do not mark blocks which conflict with ISes as "conflicting"
* qt: Add missing -font-family overridden check
* qt: Add missing `QFont::ExtraBold`
* qt: Remove settings depencency from GUIUtil::loadFonts and load earlier
* qt: Modify supportedWeightToIndex
Return -1 in case of failure
* qt: Add GUIUtil::isSupportedWeight
* qt: Make sure there are always supported weights in the settings
* qt: Add "supported defaults" + store weights based on font family
* qt: Use supported defaults in update weight sliders
* qt: Use supported defaults when updating weight sliders
* qt: Fix tests
c8176b3cc7556d7bcec39a55ae4d6ba16453baaa Add linter: Make sure we explicitly open all text files using UTF-8 or ASCII encoding in Python (practicalswift)
634bd970013eca90f4b4c1f9044eec8c97ba62c2 Explicitly specify encoding when opening text files in Python code (practicalswift)
Pull request description:
Add linter: Make sure we explicitly open all text files using UTF-8 encoding in Python.
As requested by @laanwj in #13440.
Tree-SHA512: 1651c00fe220ceb273324abd6703aee504029b96c7ef0e3029145901762c733c9b9d24927da281394fd4681a5bff774336c04eed01fafea997bb32192c334c06
e5b2cd8e7564b9fc2ed4f63fe49efb0af60b4460 Use python instead of slow shell script on verify-commits (Chun Kuan Lee)
Pull request description:
The cron job that runs every day would fail because of git checkout a single commit, not a branch.
#12708 introduce a method to check whether merges are clean.
However, there are four merges are not clean.
So, I add a list of merges that are dirty and ignore them.
Also, I modify the current shell script to python, it makes the script speed up a lot.
The python code `tree_sha512sum` was copied from `github-merge.py`
I've re-designed this. Now we verify all the things by default.
- Add `--disable-tree-check` option, not to check SHA-512 tree
- Add `--clean-merge NUMBER` option, only verify commits after <NUMBER> days ago
Travis running time:
|option|time|
|-|-|
|verify-commits.py|[25m47.02s(1547.02s)](https://travis-ci.org/ken2812221/bitcoin/jobs/373321423)|
|verify-commits.py --disable-tree-check|[19m10.08s(1150.08s)](https://travis-ci.org/ken2812221/bitcoin/jobs/373321423)|
|verify-commits.py --clean-merge 30|[9m18.18s(558.18s)](https://travis-ci.org/ken2812221/bitcoin/jobs/373321423)|
|verify-commits.py --disable-tree-check --clean-merge 30|[1m16.51s(76.51s)](https://travis-ci.org/ken2812221/bitcoin/jobs/373321423)|
Since the cron job always fail, I've created a respository to verify this daily.
[![Build Status](https://travis-ci.org/ken2812221/bitcoin-verify-commits.svg?branch=master)](https://travis-ci.org/ken2812221/bitcoin-verify-commits)
Tree-SHA512: 476bcf707d92ed3d431ca5642e013036df1506120d3dd2aa718f74240063ce856abd78f4c948336c2a6230dfe5c60c6f2d52d19bdb52d647a1c5f838eaa02e3b
* evo: Refactor (Add/Update/Remove)MNs to do the job in one go
Instead of hashing the value and querying `mnUniquePropertyMap` both 2 or 3 times per property.
Also unify their error messages while at it.
* evo: Align nullValue checks with others in {Add|Delete}UniqueProperty
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
* rpc: spend less time in cs_main lock
* Do not access chainActive without cs_main, hold cs_main while accessing GetMineableCommitment
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* refactor: add cs for mn sync
* refactor: add better locking in mn sync
* refactor: lock cs_main in mining
* masternode: Fix log after 8bbf2c7435
* masternode: Fix another `pindexBestHeader` access by removing it
Should be the same at the end because `pindexBestHeader` is what is
getting notified by `pindexNew`.
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
* tests: Add more unit tests for bls/bls.cpp
* Make bls_key_agg_tests a bit more readable
* Compare pubkeys, not their string representations
* Use GetRandHash
* Clarify sig manipulations in bls_sig_agg_sub_tests
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* remove unneeded semi-colons
* remove an unneeded CGovernanceException
* adjust and optimize listVotes to vector conversion
* governance-vote.h forward declare and include in cpp
* governance: use more forward decl. less includes in headers
* remove a number of unneeded includes in dash rpc code
* resolve circular depends linter
* Reorder includes
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* use std::make_unique instead of reset which prevents a theoretical memory leak
* pass by value and use std::move
* use empty instead of comparing to size
* remove extra space
* adjust include postitioning
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>