Writing that there is no development on BSV is an error note on
https://github.com/bitcoin-sv/bitcoin-sv/releasesBitcoin SV version 1.0.4 Release Notes
@richmills3 richmills3 released this 18 days ago
Downloads available from
https://download.bitcoinsv.io/bitcoinsv/1.0.4/List of Changes
Gitian build fix: instruction[_iterator].h location in Makefile.am.
Ban nodes that violate the maxscriptnumlengthpolicy policy setting.
Fix race condition in bsv-trigger-safe-mode-by-invalid-chain.py.
Fix: bug in thread pool tests.
Fix: Failing unit tests in debug on develop branch.
Fix: P2P stops sending data under some circumstances.
Remove excess physical dependencies (#includes) on script.h.
Fix: Missing debug flags in CMake.
Minimum mempool size should be at least 30% of default mempool size.
Optimise frequent malloc calls in GetOp2.
Reduce the number of orphan transactions during PTV processing.
Windows build; Separate running tests from C++ build.
Fix: formatting of floating point number in log messages.
Implement caching invalid signatures.
Fix: P2P getaddr returns very polluted results.
Increase default script cache size to improve performance with large blocks.
Fix: Failing functional tests.
Assets
2
Source code
(zip)
Source code
(tar.gz)
v1.0.3
bcb4609
Bitcoin SV version 1.0.3 Release Notes
@richmills3 richmills3 released this on 28 Apr · 70 commits to master since this release
Downloads available from
https://download.bitcoinsv.io/bitcoinsv/1.0.3/List of Changes
Fix errors reported by Address sanitizer
User input to RPC submitblock can crash node
Fix: improve functional tests nodes synchronization stability
STN network reset (April 2020)
Fix: PTV race condition in bsv-highsigopsdensitymempool functional test
Build instructions updated for CentOS 7 and Ubuntu 16.04
Fix: Racy test in bsv-block-stalling-test.py
Add reference to BSV Wiki site to documentation
Fix duration profiling for "Connect transactions" in ConnectBlock()
RPC getblock method with verbosity 3 throws exception for blocks without CDiskBlockMetaData
RPC sendrawtransaction doesn't accept last argument 'dontcheckfee'
Fix lost transactions under high load.
Binary src/bench/bench_bitcoin aborts due to failing benchmark
Prevent P2SH outputs in coinbase transactions
Fix compiler error for MSVC trigger introduced in DetectStaling
Configurable P2P timeouts
Remove excess Padding in CTxMemPoolEntry
Fix forknotify.py test and consider CI improvements
Fix: Orphan txn processing keeps CNode reference
Add big block tests to CI build
Fix gcc-9 warnings
Fix: Journal errors in large reorg (over Genesis boundary)
Perform quick block validation venturing in large reorg
Do not activate safe mode for large forks with invalid blocks
Fix:
security@bitcoinsv.io PGP key has expired
Remove "Warning: Unknown block versions being mined! It's possible unknown rules are in effect"
Remove P2SH test data from Makefile
Log calls to RPC function stop
getminingcandidate - include tx count + block size (excluding coinbase transaction)
Fix Typo on maxstackmemoryusageconsensus help
TOB;#20 Update OpenSSL depends package from 1.1.1 to 1.1.1d
Update help message for ancestor and descendant size limit
Add field "num_tx" to RPC "getblock 3"
bitcoin-tx supports encapsulating in P2SH
Centos 8 build, functional tests skipped: rpcbind and zmq
Remove unused variables in config_tests.cpp
Fix: IBD stalls at block 5095 (1GB transaction) on GT network
[GITHUB-131] provide for compilation on 32-bit systems without changing behavior on 64-bit
[GITHUB-124] Test failure on MacOSX
Remove warning: RPC getinfo warns that version 1.0.0 is pre-release
CBaseChainParams Lacks Virtual Destructor
[GITHUB-115] Update minimum required version of Boost to 1.59.0
[GITHUB-114] Fix typo: isGenesisEnsbled -> isGenesisEnabled
[GITHUB-122] Fix typos in RDP
[GITHUB-121] Replace ABC with SV logo in Doxygen
Remove -excessutxocharge startup parameter
TOB; #17 Several integer variables could overlow during block validation
[Github] Fix duplicate misbehaving message for sendheaders
Update the Responsible Disclosure Policy
OptBool net_processing.cpp cleanup
Fix: MAX_TX_SIZE_CONSENSUS_AFTER_GENESIS is missing in test/functional
Fix asserts and potential null pointer reference in call to PeerHasHeader
Remove the estimatefee RPC command
Add 'getblockstats' RPC call
Backport fix for CVE-2017-18350 - Severity: low
Remove CBlockPolicyEstimator
bitcoind crashes when too many RPC calls are made
Interrupt (^c) does not work during block verification in initialization
Assets
2
v1.0.2
3270267
Bitcoin SV version 1.0.2 Release Notes
@richmills3 richmills3 released this on 17 Feb · 484 commits to master since this release
Downloads available from
https://download.bitcoinsv.io/bitcoinsv/1.0.2/List of Changes
Fix assert in ProcessHeaderMessages
Fix JSON bug
Updated exception processing during validation
Fix sanitiser warnings re prevector
Make block stalling timeout configurable
Updated orphan transaction processing
Use fseeki64 in Windows build.
Fix bsv-genesis-large-blockfile-io.py functional test
Banned peer based on user agent
Assets
2
v1.0.1
88ee5b7
Bitcoin SV version 1.0.1 Release Notes
@richmills3 richmills3 released this on 28 Jan · 511 commits to master since this release
Downloads available from
https://download.bitcoinsv.io/bitcoinsv/1.0.1/List of Changes
Update Windows build instructions for VS 2019
.vscode added to .gitignore
optimize getblock/getblockrawtransactions for large transactions
Fix unit tests that are failing because of the change in JSON formatting
Misc document changes for Genesis
Switch to disable replacement (non-final) transactions
Upgrade database format for larger blocks
Policy limit on size of transaction inputs
Change default for maxtxnvalidatorasynctasksrunduration from 60 seconds to 10 seconds
Fix: BSVRD-593 - accepting headers for Block 1
Orphan txn size of 10MB should also be accepted
Fix: lshift_big_int and rshift_big_int failing on windows
Provide -invalidateblock CLI switch
Fix disconnect pool limit overflow
Fix: autotools build system uses default compiler version gen
Assets
2
v1.0.0
7fd177c
Bitcoin SV version 1.0.0 Release Notes
@richmills3 richmills3 released this on 15 Jan · 567 commits to master since this release
The Bitcoin SV Node team has released version 1.0.0 of the Bitcoin SV Node implementation. This version implements the updates required to support the Genesis hard fork upgrade which is scheduled to activate on February 4, 2020. The specification for the updates to the Bitcoin and Consensus rules is available here.
It is important to note that all installations of Bitcoin SV Node implementation must be upgraded to this release by February 4, 2020. Prior versions of the Bitcoin SV node software are incompatible with the updated rules and will fail after February 4.
Highlighted Changes
Mandatory Consensus Parameters
Mandatory consensus parameters must be configured by the system administrator. The software will terminate immediately if these parameters are not configured.
Hard limit on the block size
The hard limit on the block size is a configuration parameter that specifies the maximum size that a block can be in order for it to be validated by the software. Blocks that are larger than this maximum will not be retrieved by the software or validated.
Maximum Stack Memory Usage During Script Evaluation
This mandatory consensus parameter defines the maximum amount of memory that can be used on the stack by a script during evaluation. If a script attempts to use more stack memory than defined in this consensus parameter, then the evaluation of the script will be terminated and the script fails.
Consensus Changes
Restore the functionality of OP_RETURN
This change restores the function of OP_RETURN to its original design, enabling Script developers to terminate Scripts early and easily, with the possibility of the result of executing the script being valid.
Change the script numeric type from 32 bit numbers to big numbers
This change will dramatically increase the mathematical capabilities of the Bitcoin Script language. 32-bit numbers are very limited in size which makes it very complicated and inefficient to do complex mathematical operations such as signature verification. This change will restore the original design, enhancing the efficiency of complex mathematical operations and enable complex Scripts that provide all kinds of advanced functionality.
Sunset P2SH for new transactions
Pay-to-script-hash (or P2SH) is a mechanism introduced to Bitcoin to enable hiding of output scripts at the time they are created. This is counter to the philosophy of Bitcoin as an honest record of events. Additionally, P2SH use has encouraged wide use of poor privacy practices and divergence from the peer 2 peer workflow practices that are integral to the scaling proposition of Bitcoin. Existing P2SH coins will be unaffected so there is no need to sweep old wallets. This change prevents any new P2SH outputs from being made.
Restore Satoshi style handling of nLockTime & nSequence
These two data fields are integral to the mechanism of payment channels that Satoshi describes as a fundamental mechanism for allowing high speed micropayments on Bitcoin. They have been since repurposed by BTC Core developers for two new op codes. Along with removing those op codes the original usage of nLockTime and nSequence are being restored.
Other Required Change
P2P Relay of transactions with complex scripts
This change will enable the use of complex transactions by all participants of the network. Prior to Genesis, only transactions that were of a standard type, such as payment transactions or plain data transactions, would be distributed across the peer-to-peer network and therefore reach a miner. This meant that if a participant needed to use complex transactions, they would have to find a miner and reach an agreement to confirm the transactions in a block. After Genesis, all transaction types will be relayed across the peer-to-peer network, enabling anyone to use complex transaction types.
Additional Consensus Changes
Genesis Upgrade block height activation mechanism
UTXO age dependent rules
Formal Script Grammar
scriptSig can only contain OP_PUSHDATA operations
Sunset OP_CHECKLOCKTIMEVERIFY and OP_CHECKSEQUENCEVERIFY for new transactions
Add a policy limit on max_script_memory_usage with a default of 100MB
Add a consensus limit on max_script_memory_usage
Remove the consensus limit on the number of signature operations per MB of block space
Remove the consensus limit on the maximum number of signature operations per transaction
Remove the consensus limit on the number of op codes per script
Remove the consensus limit on the maximum script element size
Remove the consensus limit on the maximum number of elements in a script
Remove the consensus limit on the maximum number of public keys per multisig
Increase the consensus limit on the maximum transaction size to 1GB.
Software Enhancements
Parallel Block Validation
Separate processing of non-standard transactions in low priority queue
Set script evaluation timeout policies for standard and non-standard transactions
Tx should be included in inv messages in the order in which they are validated
Enhance tests for Parallel Block Validation.
Common Genesis activation code and command line option.
Enable validation of non-standard txns (on MainNet) when Genesis is enabled.
Set mempool default = 1Gb.
Remove block size from user agent string.
Change default tx fees (default txfee = 0.5 sat/byte, default minrelaytxfee = 0.25 sat/byte)
Update SPV bloom filters re attack mitigation.
Improve performance of prevector deserialization.
Change logging messages to be more precise.
Fix: Validating non-standard transactions can lock up a node for more than a minute.
Fix: Tx validation uses original reject message and ban score is used
Fix block send queue overflow
Fix undefined behaviour in bsv::deserialize
Fix bitcoin-cli help getblock
Fix build: Configure should fail when it can’t detect boost
Set the execute bit on all the new Genesis functional tests.
Fix MedianTimePast
Fix: Nonfinal transactions with no inputs is rejected with incorrect reason
Fix memory leak in asn1_integer
Fix boost::optional warnings
Fix: hexhdr.py does not get included in packaged source
Fix: Fundrawtransaction RPC changePosition parameter causing out of bounds access
Add basic --enable-tcmalloc option to the build
Fix: CTxnDoubleSpendDetector deletion past end of vector
fix lshift and rshift on data larger than 2GB
Update to the RDP in preparation for Genesis
set max duration for async validation tasks
Assets
2
Pre-release
v1.0.0.beta2
c2f7239
Genesis Beta2
@richmills3 richmills3 released this on 6 Jan · 2 commits to dev-Genesis-beta since this release
Second beta release for the Genesis release. Testers are encouraged to upgrade to this version of the software.
List of changes since beta1
Enable validation of non-standard txns (on the MainNet) when Genesis is enabled.
Fix bug: Validating non-standard transactions can lock up a node for more than a minute.
Tx validation uses original reject message and ban score is used
Set mempool default = 1Gb
Remove block size from user agent string
Change default tx fees (default txfee = 0.5 sat/byte, default minrelaytxfee = 0.25 sat/byte)
Fix undefined behaviour in bsv::deserialize
Update SPV bloom filters re attack mitigation
Rename acceptp2sh to acceptp2sh_ashashpuzzle
Fix block send queue overflow
Fix bug: bitcoin-cli help getblock not working in 0.2.2
Improve performance of prevector deserialization
Uncomment parts of functional tests that was depended on other now complete code.
Parallel Block Validation
Enhancements for Parallel Block Validation tests
Build fix: Configure should fail when it cant detect good version of boost
Provide unit tests for LimitedStack/vector
Fix bug: Set the execute bit on all the new Genesis functional tests.
Remove the limit on the number of CHECKSIGS per MB of block space
Common Genesis activation code and command line option.
Fix MedianTimePast
Bug fix : Nonfinal transactions with no inputs is rejected with incorrect reason.
Fix memory leak of asn1_integer
Fix boost::optional warnings
When validating mempool transactions, we should not send reject message if high priority queue timeout is exceeded
Fix bug: hexhdr.py does not get included in packaged source
Change logging messages to be more precise.
Assets
2
on 6 Dec 2019
v1.0.0.beta1 …
f041621 zip tar.gz
Pre-release
v0.2.2.beta
bb40508
Bitcoin SV version 0.2.2 Beta Release Notes
@Danconnolly Danconnolly released this on 30 Oct 2019 · 1122 commits to master since this release
This is an optional beta release for the BSV mainnet; however it is a required release for the Scaling Test Network. Miners are encouraged to test this release carefully and maintain a v0.2.1 version on standby.
List of Changes
Do not load whole block into memory when responding to getblock request
Windows build errors
add bitcoin-miner to CMakeLists && Add Visual Studio 2017 Linux remote debug support
Mempool journal for mining candidates.
Use the journal to build incremental mining candidates
Race condition in ConnMan::ParallelForEachNode
Remove further limits on OP_RETURN data
Do not load whole block in into memory when sending it to another peer though P2P protocol
Compilation error with --disable-wallet (external report)
Journal functional test tries to spend OP_RETURN
Backport - Log difference between block header time and received time when competing blocks are received for the same chain height
Use single copy of helper functions in functional tests
Provide a way to communicate protocol message size and other limits to other peers
bsv-block-size-activation-default test is failing
fix bitcoin-util-test.py
Use OP_FALSE OP_RETURN when generating transactions containing data
Rest API /rest/block/BLOCK-HASH.json not working when response greater than 2 MB
Include thread name in debug log message
Remove Redundant Static Object CStnParams stnParams
Fix activation Quasar activation tests that fail after 24.7.2019
RPC call to test a block template for validity without a valid PoW
Hardcoded activation time in functional tests
Make maxminedblocksize configurable by RPC
Remove BIP9 related code
Add support for c++ run time checking tools to build scripts
Only include thread name in debug message at the beginning of new lines
Parallel validation of transactions
Scaling Test Network reset
Scaling Test Network (STN) Reset
The STN blockchain has grown to over 1TB and it has served its current purpose of producing 2GB blocks and
1 million transactions per block. The STN is being reset to reduce the size of the blockchain (from ~1.5TB to about
1MB).
The Bitcoin SV Node implementation will automatically switch to the new blockchain, however this may take a large amount
of time and it will not automatically clear the blocks from the old blockchain from disk. We recommend that you manually
clear the old block data and start from scratch with the STN. For more information, see the
bitcoinscaling.io website.
The Scaling Test Network has been reset at block height 1. This block has hash
00000000e23f9436cc8a6d6aaaa515a7b84e7a1720fc9f92805c0007c77420c4.
Previous releases of Bitcoin SV node software are not compatiable with this reset. Please upgrade to continue using the STN
Acceptance of low difficutly blocks after 20mn has been disabled to bring behaviour more in line with mainnet
STN Blocks and Chaindata folders can be deleted before running this release.
Assets
2
v0.2.1
f5503f0
Bitcoin SV version 0.2.1 Release Notes
@Danconnolly Danconnolly released this on 22 Jul 2019 · 1462 commits to master since this release
Downloads available from
https://download.bitcoinsv.io/bitcoinsv/0.2.1/List of Changes
getblock optionally returns rpc transaction details
fix to univalue read to mitigate memory issues.
New parameter (-factorMaxSendQueuesBytes) which limits total size of blocks currently in queue for sending to peers.
Help message for "-preload" options moved to another section.
libgen.h included unconditionally in vmtouch.cpp.
Fixes for Mac and Windows builds.
Minor refactoring and potential bug fixes.
Remove Bitcoin ABC cashaddr address format.
Increase UTXO cache default to hold the entire UTXO set in cache.
Calls to TestBlockValidity() call are now configurable using -blockcandidatevaliditytest option.
Support for OP_FALSE OP_RETURN as a standard transactions
Python code: Fix for array.tostring deprecated warning
Update the OpenBSV license for Testnet/Regnet/STN
Assets
2
v0.2.0
fa3bfb5
Bitcoin SV version 0.2.0 Release Notes
@Danconnolly Danconnolly released this on 22 Jul 2019 · 1510 commits to master since this release
Downloads available from
https://download.bitcoinsv.io/bitcoinsv/0.2.0/List of Changes
Update to C++17
Refactor P2P message processing
Return immediately after processing a P2P reject message
Fix potential race condition in ActivateBestChain()
Update Gitian build process
Remove support for 32-bit & ARM builds
Remove Magnetic Upgrade activation code
Improve MSVC compatability
Refactor block file storage
Remove limitation on max size of block storage file, enable storage of blocks > configured max blockfile size
Add Jenkinsfile for automated CI tests
Refactor log messages to NET category, remove log spamming
Remove ABC forced obsolescence code
Update ZeroMQ library version
Ignore unsolicited ADDR messages
Set default tx broadcast delay to 150ms
Add option to ignore P2P mempool requests from non-whitelisted peers
Implementation of new mining API - RPC calls getminingcandidate & submitminingsolution
Add CPU miner from BU for mining on test networks
Refactor BlockAssembler, add abstract interface class
Refactor CBlockTemplate - shared pointer for Block
Update of license to Open BSV license
Add capability to define network magic bytes for test networks
Remove duplicate call to CheckBlock when validating a new block template
Use static hasher when checking transactions
Add capability to schedule changes to default block size parameters
Schedule Quasar protocol upgrade
Set default allowed size for data carrier transactions to 100kb
Support Scaling Test Network reset
Scaling Test Network Reset
The Scaling Test Network has been reset at block height 2951. This block has hash
0000000076b49c5857b2daf2b363478a799f95a18852155113bbace94321b0d0.
Education is the key even on BSV, it would be ideal to have a dedicated documentation centre.