github bitcoin-sv/bitcoin-sv v1.0.7
Bitcoin SV version 1.0.7 Release Notes

latest releases: v1.1.0, v1.0.16, v1.0.15.1...
3 years ago

Headline changes since 1.0.6

  • Removed performance penalty for long chains. Mempool performance does not depend on the transaction's chain length anymore.
  • Legacy block assembler removed; support for low priority / free transactions removed.
  • Refactoring of CCoinView.
  • P2P improvements.

Full list of changes between 1.0.6 and 1.0.7.beta

  • Increased default maximum ancestors count for paying transactions to 1000.
  • Removing transactions from the mempool when a new block is mined is much faster. As a consequence, block propagation is faster.
  • More efficient mempool transaction eviction algorithm.
  • Removed the Legacy block assembler; Journaling block assembler is now the only block assembler available.
  • Efficient detection of the CPFP (child pays for the parent) groups.
  • Limiting the total size of the low-paying transactions in the mempool as the percent of the mempool size.
  • Limiting the ancestors count for the low-paying transactions to 25, and as consequence, limiting the maximal size of the CPFP groups.
  • Stopped limitting transaction chains by ancestors size in the mempool.
  • Stopped limitting transaction chains by descedant statistics, both size and count.
  • Removed concept of the "high priority / free transactions". We are not accepting nor relaying them any more.
  • Added command line switches:
    • mempoolmaxpercentcpfp, Percentage of total mempool size to allow for low paying transactions. Default: 10%
    • limitcpfpgroupmemberscount, Maximal number of non-paying ancestors a single transaction can have. Thus, the maximal size of a CPFP group. Default 25.
    • disablebip30checks Disables BIP30 checks when connecting a block. Not active on the mainnet.
  • Removed command line switches:
    • limitancestorsize, Not tracking ancestors size in the new implementation.
    • limitdescendantcount, limitdescendantsize Not keeping descendant statistics in the new implementation.
    • limitfreerelay relaypriority printpriority blockprioritypercentage Removed concept of the "free / high priority" transactions
  • The prioritisetransaction RPC method ignores the first positional argument (modified priority), which must be 0, and uses only the second argument (modified fee) into account.
  • Other changes to the RPC methods, added and removed JSON entries:
RPC Method Entries Added Entries Removed
getrawmempool, getmempoolancestors, getmempooldescendants, getmempoolentry startingpriority, currentpriority, descendantcount, descendantsize, descendantfees, ancestorcount, ancestorsize, ancestorfees
getmempoolinfo usagedisk, usagecpfp, maxmempooldisksize, maxmempoolsizecpfp
getmininginfo blockprioritypercentage
getblocktemplate sigops, sigoplimit
  • Implement HTTP streaming for getblocktemplate
  • Do not load large blocks into memory
  • Performance - CCoinView refactoring
  • Endomorphism is now ON by default in libsecp256k1
  • New configurable connection timeout for validating blocks.
  • Serialize in getblock RPC without cs_main
  • Maximum size of INV messages configurable
  • Change -rejectmempoolrequest default to true
  • Separate P2P Control and Data Channels
  • Implement HTTP streaming for getrawmempool
  • Expose consensus and policy limits through RPC
  • Improve interface to Stream::GetNewMsgs
  • Fix: If setAskFor fills up then transaction requesting stops.
  • Simplify JSonWriter
  • Allow the available stream policies to be set by the config
  • Message processing stall remedy
  • Send GETDATA for blocks over the higher priority stream.
  • Fix: Slow reading of coins from database when using leveldb iterators
  • sendrawtransaction RPC - fix PrioritiseTransaction/ClearPrioritisation usage to be exception safe.
  • sendrawtransaction RPC - functional test – send already known transaction and create block.
  • sendrawtransaction RPC - check if transaction is already known before validation starts.
  • Remove bitcoin-seeder.
  • Fix: Coredump at shutdown with scriptCheckQueuePool
  • Fix: Consolidation tx option 'acceptnonstdconsolidationinput' uses wrong type
  • Fix: Consolidation variable name and update function to respect interface
  • Fix: maxConsolidationInputScriptSize parameter should use GetArgAsBytes() function in init.cpp
  • Fix: Possible XSS vulnerability
  • Fix: Update Windows build instructions
  • Fix: sendtransactions PRC should use JSON response streaming
  • Fix: Implicit loop conversions
  • Unused code removed
  • False positive check for null dereferencing in merkle proof
  • Explicitly define the missing special members for ZMQPublisher
  • Decimal is not defined. Change its name or define it before using it
  • Fix: getutxos RPC should serialize integer when serializing RPC call id
  • Removed call to virtual function Flush() in dtor of text writer
  • Refactor default parameters of virtual function in TextWriter
  • Backport performance improvement to rolling bloom filter
  • Fix: bench_bitcoin fails on build with --disable-wallet
  • Use pointer or reference to avoid slicing from "CAddress" to "CService
  • Fix: Uninitialized member in CWalletDBWrapper
  • Revert unordered->ordered map/set for COutPoint -> coins.
  • ZMQ: add method for distinct zmq ports when running functional tests in parallel
  • Fix: snprintf overflows write buffer
  • Remove 'bitcoin' prefix from worker thread names
  • Prevent unnecessary copies in range loops
  • Fix: Unhandled nullptr in GetDiskBlockStreamReader if file does not exist
  • Add list of supported stream policies to the output of getnetworkinfo
  • Provide an option to increase the number of open files for leveldb. Increasing number of open files improves performance of transaction validation.
  • Fix: Starting bitcoind with negative value for consolidation transaction parameters is setting very high values internally
  • Remove dead code that was accidentally introduced by parallel block validation task
  • Fix: cURL example of gettxouts RPC help
  • Add stream type enumerations to python test framework
  • Test framework - make Key.py locate correct openssl implementation on Mac
  • Test framework: add tx hash to log
  • Make using network associations in the functional tests easy.
  • Replace time.sleep with wait_until in reindex.py
  • Protect all uses of txinvs with mininode_lock in bsv-consolidation-feefilter.py
  • Add an extra config params to the bsv-ptv-rpc-sendrawtransactions.py functional test.
  • Fix: Functional test bsv-genesis-activation-transactions-beforeafter fails occasiobally.
  • Fix: bsv-pvq-timeouts.py functional test fails occasionally
  • Fix: bsv-genesis-large-blockfile-reindex.py functional test fails occasionally
  • Fix: bsv-genesis-journal-reorg_2.py functional test fails occasionally
  • Fix: Functional test bsv-genesis-general fails with timeout in height_based_test_framework
  • Fix: Functional test bsv-sigopslimit-consensus-test.py fails occasionally.
  • Fix: bsv-128Mb-blocks functional test fails occasionally
  • Fix: example-test.py functional test fails occasionally
  • Fix: bsv-coinbase_P2SH.py functional test fails occasionally
  • Fix: bsv-sigopslimit-policy-test.py functional test fails occasionally
  • Fix: p2p_inv_msg_time_order2.py functional test fails occasionally
  • Fix: Functional test bsv-pvq-timeouts sometimes fails with timeout
  • Fix: Functional test bsv-genesis-spendable-op-return fails occasionally.
  • Fix: Functional test bsv-genesis-general (Increased max policy tx size) fails.
  • Fix: Functional test mining journal fails occasionally.
  • Fix: Functional test bsv-block-stalling-test.py fails occasionally.
  • Fix: Functional test p2p-fullblocktest fails occasionally.
  • Fix: Functional test abc-p2p-compactblock fails occasionally.
  • Fix: txn_clone test fails if transaction is sent after nodes reconnect
  • Fix: Functional test bsv-mempool_ancestorsizelimit can fail on a busy environment
  • Fix: merkle_proof.py generate takes to long for 1500 blocks
  • Fix: Functional test bsv-block-size-activation-generated-default fails occasionally.
  • Fix: Functional test bsv-consolidation-p2pkh.py fails occasionally.
  • Fix: Functional test bsv-journal-mempool-reorg-ordering.py fails occasionally.
  • Fix: test bsv-zmq-txremovedfrommempool.py
  • Race condition while running zmq_test.py
  • Fix: Address sanitizer issue with unit tests.
  • Fix: Failing rpc_tests/rpc_ban
  • Fix: Unit tests fail to build
  • bsv-protoconf.py starts to fail with large value of maxprotocolrecvpayloadlength
  • Explicitly define the missing copy constructor

List of changes since 1.0.7.beta

  • Ensure correct id type in RPC
  • New RPC dumpparameters to provide configuration settings.
  • Help text - coinbaseValue parameter added to help text for getminingcandidate RPC.
  • Packaged Diagnostic Service - allows remote gathering of diagnotic information.
  • The default value for maxcoinsprovidercachesize = 1GB and must be at least 1MB.
  • The mempoolminfee (rolling fee) is prevented from becoming greater than blockminfee while there are secondary mempool transactions.
  • Fix: Heap used after free during shutdown.
  • Fix: possible undefined behaviour processing block requested via getdata.
  • Fix: Undefined behaviour in RIPEMD160, SHA1 and SHA256 code.
  • Fix: Possible referenced null pointer triggered by help RPC command.

Don't miss a new bitcoin-sv release

NewReleases is sending notifications on new releases.