Sometimes the node we ask for mnlistdiff is so fast to reply that we receive the message back before we reset `last_mnlistdiff`. To fix this we should reset it before sending the message, not after.
* Check MNs up to 24 blocks deep when verifying `dstx`
* Handle DSTX-es more like regular txes and not like "other" invs
* Try asking for a DSTX too when trying to find missing tx parents
* Check DSTX-es when chainlock arrives
`HasChainLock` was always `false` in `IsExpired` because tip is updated before the corresponding chainlock is received
* Apply `Handle DSTX-es more like regular txes` idea to `AlreadyHave()`
* Alternative handling of DSTX+recentRejects
Co-authored-by: Alexander Block <ablock84@gmail.com>
This has the wanted side effect of proper locking of "cs" inside
CommitCurTransaction and RollbackCurTransaction, which was not easily
possible to implement in the generic version. This fixes some rare crashes.
* adding favicon image
- noticed that someone already contributed all my pixmaps I have been using for
my builds (thank you, whoever you were). The favicon was left out. Adding
that as well. It is useful from a completist perspective and have users a
resource they can just use if they have need of a favicon for their project.
* trivial: adding SVG and high contrast icons
Purpose: for accessibility, if QT wallet is packaged (linux) correctly,
when the user switches to high contrast in their desktop environment
the high contrast icons will be used.
The packaging should land these icons in the
`/usr/share/icons/HighContrast` and `/usr/share/icons/hicolor` trees.
* trivial: HighContrast SVG is actually HighContrast now.
We removed "alert" p2p message and changed "mempool" message behaviour a bit. It probably makes sense to bump PROTOCOL_VERSION now. This should also help to distinguish v0.15 nodes from late v0.14.0.x ones.
* Don't load caches when blocks/chainstate was not present
* Delete old cache files when we decided to not load them
* Make sure cache files are of the exact format we expected them to be, flush empty objects into them instead of deleting files naively
* Streamline logic a bit, rename fIgnoreCacheFiles to fLoadCacheFiles
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* Wait a little bit longer in wallet-encryption.py
The timed wallet locking is happening by an asynchronous task internally,
which means that it might need a little bit longer then the specified
timeout.
* Add workaround for p2p-versionbits-warnings.py until we backport bitcoin#12264
* build: use osslsigncode 2.0 in gitian
The original osslsigncode project (https://sourceforge.net/projects/osslsigncode/) has been marked as abandonware,
"This is now - and has been for a long while - abandonware. Feel free to create your own forks etc.".
However, a fork at https://github.com/mtrojnar/osslsigncode has emerged that has incorporated
theuni's patches, updated the tool to work with OpenSSL 1.1 and made other improvements.
This commit switches the windows signer descriptor to use this new version of osslsigncode.
* Fixed wget call in gitian-build.py
Co-authored-by: Michael <fanquake@gmail.com>
Co-authored-by: willyk <k.o.willy@gmail.com>
* move privatesend rpc methods from masternode.cpp to new privatesend.cpp
Signed-off-by: Pasta <pasta@dashboost.org>
* add ifdef ENABLE_WALLET check for wallet.h import
Signed-off-by: Pasta <pasta@dashboost.org>
* actually register privatesend rpc
Signed-off-by: Pasta <pasta@dashboost.org>
* add dropped help text and change some weird spacing below
Signed-off-by: Pasta <pasta@dashboost.org>
* Sync mempool from other nodes on start
* Add `-syncmempool` cmd-line option to be able to disable mempool sync if needed
* Only sync mempool with outbound peers
Co-authored-by: Alexander Block <ablock84@gmail.com>
* Move PS mixing entry verification on masternodes into `AddEntry()`
Also streamline logic a bit and drop unused/excessive parts.
* Unify PS checks among masternodes and clients
* No need to re-check outputs over and over again
* No need to count, fail early if any output is missing
* No need to look any further once we found the input we expected
A tx with duplicate inputs would be considered invalid anyway and we also know there are no duplicates because we just verified the final tx above.
Also drop an unused variable.
* Unify LogPrint-s
* Drop human-readable strings for unused PoolMessage-s
* Apply suggestions from code review
Co-Authored-By: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
* Re-introduce zero-fee checks
* fix log
* Move all txin/txout verification logic shared by CPrivateSendClientSession::SignFinalTransaction() and CPrivateSendServer::AddEntry() into CPrivateSendBaseSession::IsValidInOuts()
* fix nit
* Add missing return
* Use CCoinsViewMemPool instead of doing it manually
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
Co-authored-by: Alexander Block <ablock84@gmail.com>
* Do not sleep at the last block of the phase, it's not safe
* Refactor it a bit to make it clearer what's going on here
* Stop sleeping if blocks came faster than we expected
* Drop (test.)dnsseed.masternode.io
* makeseeds.py
mainnet 1185193, testnet 225964
* generate-seeds.py
* Update tor.md with live onion nodes
All old nodes are down
* Modify makesseeds.py to work with "protx list valid 1" instead of "masternode list"
This allows better filtering for MN owners with multiple MNs. This commit
also removes some unsupported fields, e.g. "protocol", "lastseen", ...
* Update contrib/seeds/README.md with new instructions
* Pass nAcceptTime via TransactionAddedToMempool and use it for ChainLocks
Otherwise the "first seen" time is way off after node restart
* Don't skip TransactionAddedToMempool for chainlocks while blockchain is not synced yet
Otherwise txes from mempool.dat won't be processed there
* Implement re-signing of InstantSend inputs when TXs come in via blocks
* Use GetAdjustedTime instead of GetTimeMillis in CSigSharesManager
This allows use of mocktime in tests.
* Expose verifiedProRegTxHash in getpeerinfo and implement wait_for_mnauth
* Allow to wait for IS and CL to NOT happen
* Bump timeout for wait_for_instantlock
* Implement tests for retroactive signing of IS and CLs
* Add wait_for_tx function to DashTestFramework
* Add -whitelist=127.0.0.1 to node0
* Use node3 for isolated block generation
* Don't test for non-receival of TXs on node4/node5