* Allow to reuse collaterals and addresses in ProRegTx
This also requires to move out the duplication check from CheckService to
the 2 individual ProTx check methods.
* Implement replacement logic for reused collaterals
* Add tests for new replacement logic
* Update defaultAssumeValid and nMinimumChainWork for mainnet
* Update defaultAssumeValid and nMinimumChainWork for testnet
* Add checkpoint for mainnet
* Add checkpoint for testnet
* format
* clang suggested changes to be reverted
* Revert "clang suggested changes to be reverted"
This reverts commit 2c1e7744be1a2f6dd07772f222c656b2ebaa7718.
* RPC - Correct protx register_prepare help example
Use collateral hash and index instead of address
* RPC - Change protx register help ECDSA address to BLS operator key
* RPC - protx register_prepare help correction
Should direct to protx register help, not protx register_fund
* RPC - protx help typo
* Bump PS
- add 5th denom (0.001)
- always allow OP_RETURN in PS collaterals
- collateral amount is always 1/10 of the smallest denom
- bump MIN_PRIVATESEND_PEER_PROTO_VERSION to 70211
* drop backward compatibility in dsa/dsq serialization
* Use GetSmallestDenomination() in GetCollateralAmount()
* bump MIN_PRIVATESEND_PEER_PROTO_VERSION to 70212
* update en source
* remove pt_BR
it's no longer present on Transifex
* Update existing translations
NOTE: there are some mismatches in zh_CN
dash_zh_CN.ts: Mismatch between 'Start &all' and '启动全部(%A)'
dash_zh_CN.ts: Mismatch between 'Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.' and '打开当前目录中的调试日志文件。日志文件大的话可能要等上几秒钟。'
dash_zh_CN.ts: Mismatch between 'Too many %f denominations, removing.' and '太多面额化资金,正在移除。'
dash_zh_CN.ts: Mismatch between 'Initialization sanity check failed. %s is shutting down.' and '初始化完整性检查失败。% 即将关闭。'
* Add ar, ko, th
NOTE: there are 2 mismatches in ar
dash_ar.ts: Mismatch between '(of %1 GB needed)' and '(على 1% جيغابايت محتاجة)'
dash_ar.ts: Mismatch between 'Output debugging information (default: %u, supplying <category> is optional)' and 'معلومات تصحيح الخرج <category>ا(ختياري)'
* update bg, it, ja, ko, nl, pl, th
* fix ru
* add tr
* fix
* no `-debug` by default (it's too heavy)
* drop useless `sync_masternodes` calls and add a couple where they could be actually usefull
* change autoix-mempool.py test logic:
1. use separate nodes to send test txes
2. sync nodes while filling the mempool
* Remove reference to now removed "protocolVersion"
* Allow to use non-DIP3 collaterals after DIP3 activation
This removes a rule which only made sense when we assumed all collaterals
would remain in DIP3 ProRegTx transactions after DIP3 activation.
As we allow to refer external collaterals now, this rule should vanish as
well.
* Sleep in case block time is ahead of real time
See comment. This was not a problem before as we had enough time passed
between the last block that caused this and the start-alias call.
Now we added another start-alias call which is directly after we generated
many blocks.
Specifying only `wine` results in this message under Ubuntu Bionic:
Package wine is a virtual package provided by:
wine-stable 3.0-1ubuntu1
wine-development 3.6-1
You should explicitly select one to install.
Compilation
* drop most of custom PS logic from SelectCoins and inject it into regular flow (i.e. SelectCoinsMinConf)
* different priority for different denoms
* move CompareByPriority higher
* update comment
Co-Authored-By: UdjinM6 <udjinm6@gmail.com>
Add decimal places to clarify:
1. Non-integers are valid (e.g. 3.25)
2. Granularity - anything beyond x.xx is rounded (e.g. 3.259 -> 3.26)
This is due to DIP3 allowing values 0-10000 for operator reward (1/10000
= 0.01%)
* Do not run scheduled DoMaintenance if shutdown was requested
* Don't dump cache files if the load sequence was interrupted
* Stop privatesend and release keys before wallet flush
* fix typo
* fLiteMode should be set via GetBoolArg before first usage
Also move related stuff to be closer to each other
* Cleanup Dash-specific init steps
* Move deterministicMNManager creation slightly higher for consistensy
* RPC: Add help details for the bls RPC
* RPC: Refactor to match gobject RPC behavior
* RPC: Use command instead of strCommand for consistency within file
* RPC: BLS help cleanup
* RCP: Remove leading underscore on bls_help
* Don't crash when spork15 is enabled but no MNs have been registered
* Don't bail out when no masternode payee is found
We should pay superblocks even if no masternode payee is found.
* Add missing newline to LogPrint call
* Handle review comments
* Add BIP9 parameters for DIP3 deployment on testnet
* Remove autoix BIP9 deployment and reuse DIP3 deployment
* Add BIP9CheckMasternodesUpgraded to chain params
This controls if miners should check for upgraded masternodes first before
adding BIP9 bits to the block version. This only makes sense in network
where masternodes are up and running before BIP9 activation, which is not
necessarely the case in regtest and devnet.
Also refactor ComputeBlockVersion to use fCheckMasternodesUpgraded instead
of the inverse fAssumeMasternodeIsUpgraded. It is set to false by default
and only set to true in CreateNewBlock.
* Check for upgraded masternodes for DIP3 activation (only mainnet and testnet)
* Bump PROTOCOL_VERSION and DMN_PROTO_VERSION
We probably have nodes with 70211 already running on testnet.
* Implement RemoveAskFor to indicate that we're not interested in an item anymore
When an INV item is received from the first node, the item is requested
immediately. If the same item is received from another node, an entry is
added to mapAskFor which marks the item for re-requesting in case the first
node did not respond. When the item is received from the first node,
the item was previously never removed from mapAskFor. Only the later getdata
loop in SendMessages would then gradually remove items from the map. This
is quite delayed however as the entries in mapAskFor have a timeout value.
RemoveAskFor allows to remove all entries from mapAskFor and setAskFor
when we are not interested in the item anymore (e.g. because we received
it already).
* Call RemoveAskFor whenever we receive a message
* Only pass hash instead of CInv object to RemoveAskFor
* Add pooled_secure_allocator and mt_pooled_secure_allocator
* Use mt_pooled_secure_allocator for BLS secure allocation
The old solution relied on thread-local-storage and was thus not compatible
to libc6 2.11 (which is the minimum supported version we use).
Also, the old solution turned out to be erroneous. It would have crashed
or memory leaked when ownership of CBLSPrivateKey would be handled over
to another thread.
* Add new header files to Makefile.am
* Fix copyright headers of new files
* Bail out early from secure deallocation
* Clean up global BLS keys when shutting down
Specify masternodeblsprivkey which is required in masternode mode now.
This should fix IS test failures which occur because of `Warning: You should specify a masternodeblsprivkey in the configuration. Please see documentation for help.` init error (there are other issues, so auto-IS test are still going to fail).
* Remove global fDIP0003ActiveAtTip flag and always use VersionBitsState
fDIP0003ActiveAtTip was used much more often when introduced but turned out
to be not very useful in most places. Always use VersionBitsState now.
* Fix wrong use of VersionBitsState auto IX
* Make sure isAutoLockBip9Active flag is reset in case of chain reorgs
* Pass CCoinsView reference to special TX handling methods
* Allow referencing other TX outputs for ProRegTx collateral
* Remove "collateralAmount" from "protx register"
* Rename "protx register" to "protx fund_register"
* Remove UpdateSpork15Value from CDeterministicMNManager
Was not used/implemented anymore
* Lock masternode collaterals after chain/DIP3 is fully initialized
Otherwise detection of collaterals does not work.
* Implement new "protx register" RPC which uses existing collaterals
* Remove "masternode info" RPC
It is not consistent with other "masternode" RPCs anymore as it requires
the ProRegTx hash while all other RPCs work with the collateral.
* Load sporks from disk cache before initializing the chain
Otherwise spork15 is not loaded when we check it for the first time.
* Implement "protx info" RPC
* Use "protx info" instead of "masternode info" in DIP3 tests
* Test external collaterals for ProTx
* Handle review comments
* Don't pass CCoinView reference when it's not used
* Revert "Pass CCoinsView reference to special TX handling methods"
This reverts commit 28688724e112c8fe18e44aef055768dbbc068d7d.
* Use GetUTXOCoin instead of now removed coinsView
Also remove collateral height check as GetUTXOCoin only returns confirmed
coins.
* Add conflict handling for external collaterals to mempool
* Handle review comments (squashed Github suggestions)
Co-Authored-By: codablock <ablock84@gmail.com>
* Clear devNetParams and mimic behavior of other param types
Mainnet, testnet and regtest params are global and thus zero initialized,
we should mimic the same for devnet params.
Not doing so results in all kinds of issues on devnet.
* Remove unnecessary <string.h> includein chainparamsbase.cpp