Any projects which want to use Hush code from now on will need to be licensed as
GPLv3 or we will send the lawyers: https://www.softwarefreedom.org/
Notably, Komodo (KMD) is licensed as GPLv2 and is no longer compatible to receive
code changes, without causing legal issues. MIT projects, such as Zcash, also cannot pull
in changes from the Hush Full Node without permission from The Hush Developers,
which may in some circumstances grant an MIT license on a case-by-case basis.
* Remove voutsum check
* Teach RPC interface about dpow-enabled minconfs (#1231)
* Make minconfs dpow-aware in z_listunspent + z_listreceivedbyaddress
* Add dpow-related test files to test suite
* Add dpow simulation to regtest every 7 blocks
* Fix compiler errors
* Fix link error
* Fix stdout spam when running regtests
* Dpowminconfs for listreceivedbyaddress
* dpowconfs tests
* Start adding specific tests for dpowminconfs in listreceivedbyaddress
* Get dpowminconfs tests for listreceivedbyaddress working
* Add dpowminconfs to getreceivedbyaddress + listunspent
* Add test for listtransactions + getreceivedbyaddress support
* Reliably passing dpowminconf tests. We only check for notarized-ness now, not exact confirmation numbers, to avoid race conditions
* Poll for the expected notarization info before running further tests; add support for getbalance
* Migrate tx_height() to a place where asyncrpcoperation_sendmany.cpp can use it
* fix
* Teach GetFilteredNotes about dpowconfs
Many RPCs rely on this internal function, which now correctly uses
dpowconfs to filter by the minconf/maxconf parameters.
* Fix sendmany when using non-default minconf
* inline seems to make things happy
* cleanup
* Add some code to test z_sendmany, which points out https://github.com/jl777/komodo/issues/1247
* try this
* Use already calculated value of dpowconfs instead of calculating it again
* Cleanup .pack file
* Remove
* Remove .pack
* Make minconfs dpow-aware in z_listunspent + z_listreceivedbyaddress
* Add dpow-related test files to test suite
* Add dpow simulation to regtest every 7 blocks
* Fix compiler errors
* Fix link error
* Fix stdout spam when running regtests
* Dpowminconfs for listreceivedbyaddress
* dpowconfs tests
* Start adding specific tests for dpowminconfs in listreceivedbyaddress
* Get dpowminconfs tests for listreceivedbyaddress working
* Add dpowminconfs to getreceivedbyaddress + listunspent
* Add test for listtransactions + getreceivedbyaddress support
* Reliably passing dpowminconf tests. We only check for notarized-ness now, not exact confirmation numbers, to avoid race conditions
* Poll for the expected notarization info before running further tests; add support for getbalance
* Migrate tx_height() to a place where asyncrpcoperation_sendmany.cpp can use it
* fix
* Teach GetFilteredNotes about dpowconfs
Many RPCs rely on this internal function, which now correctly uses
dpowconfs to filter by the minconf/maxconf parameters.
* Fix sendmany when using non-default minconf
* inline seems to make things happy
* cleanup
* Add some code to test z_sendmany, which points out https://github.com/jl777/komodo/issues/1247
* try this
* Use already calculated value of dpowconfs instead of calculating it again
Strictly speaking this is not a true deduplication; the test output will be
slightly different (due to inconsistent print statements) but I think this is
close enough.
This class groups transactions that have been confirmed in blocks into buckets, based on either their fee or their priority. Then for each bucket, the class calculates what percentage of the transactions were confirmed within various numbers of blocks. It does this by keeping an exponentially decaying moving history for each bucket and confirm block count of the percentage of transactions in that bucket that were confirmed within that number of blocks.
-Eliminate txs which didn't have all inputs available at entry from fee/pri calcs
-Add dynamic breakpoints and tracking of confirmation delays in mempool transactions
-Remove old CMinerPolicyEstimator and CBlockAverage code
-New smartfees.py
-Pass a flag to the estimation code, using IsInitialBlockDownload as a proxy for when we are still catching up and we shouldn't be counting how many blocks it takes for transactions to be included.
-Add a policyestimator unit test
mininode.py provides a framework for connecting to a bitcoin node over the p2p
network. NodeConn is the main object that manages connectivity to a node and
provides callbacks; the interface for those callbacks is defined by NodeConnCB.
Defined also are all data structures from bitcoin core that pass on the network
(CBlock, CTransaction, etc), along with de-/serialization functions.
maxblocksinflight.py is an example test using this framework that tests whether
a node is limiting the maximum number of in-flight block requests.
This also adds support to util.py for specifying the binary to use when
starting nodes (for tests that compare the behavior of different bitcoind
versions), and adds maxblocksinflight.py to the pull tester.
This adds a -prune=N option to bitcoind, which if set to N>0 will enable block
file pruning. When pruning is enabled, block and undo files will be deleted to
try to keep total space used by those files to below the prune target (N, in
MB) specified by the user, subject to some constraints:
- The last 288 blocks on the main chain are always kept (MIN_BLOCKS_TO_KEEP),
- N must be at least 550MB (chosen as a value for the target that could
reasonably be met, with some assumptions about block sizes, orphan rates,
etc; see comment in main.h),
- No blocks are pruned until chainActive is at least 100,000 blocks long (on
mainnet; defined separately for mainnet, testnet, and regtest in chainparams
as nPruneAfterHeight).
This unsets NODE_NETWORK if pruning is enabled.
Also included is an RPC test for pruning (pruning.py).
Thanks to @rdponticelli for earlier work on this feature; this is based in
part off that work.
Immature coinbase spends are allowed in the memory pool if they can be mined in the next block.
They are not allowed in the memory pool if they cannot be mined in the next block.
This regression test tests those edge cases.