Bitcoin version 0.19.0 Core client will be officially released, the bech32 address format is enabled by default and BIP70 is disabled.
According to Wladimir J. van der Laan, chief maintainer of the Bitcoin Core protocol, on github, the latest version of Bitcoin Core client 0.19.0 has been officially completed. This version of the client not only provides some new features (such as BIP158 block filtering). , which is used to replace the BIP 37's Bloom filter), which also partially enhances the privacy features of Bitcoin. It is worth noting that the new version of the client has enabled the bech32 address format compatible with the isolated witness by default, and BIP70 payment is disabled by default. Request for agreement.
It is reported that Bitcoin's next major version of the client v 0.20.0 is expected to be released in May 2020.
The following is the specific update instructions for the 0.19.0 version of the core client:
- Viewpoint | Why decentralized banks will take over the traditional financial ecology?
- Speed reading | Marketers must read: Introduce the concept of decentralized branding; why is it important to adopt large-scale?
- BCH protocol upgrade countdown: More than 68% of BCH nodes support upgrade
The Bitcoin version 0.19.0 Core client is now available at:
Https://bitcoin core.org/bin/bitcoin-core-0.19.0/
This release is updated to include new features, bug fixes, performance improvements, and translation updates.
Developers can escalate errors using GitHub's issue tracker:
Https://github.com/bitcoin/bitcoin/issues
To receive security and update notifications, please subscribe:
Https://bitcoincore.org/en/list/announcements/join/
First, how to update
If you are running an older version of the client, please close it until it is completely closed (older versions may take a few minutes), then run the installer (Windows) or copy overwrite to /Applications/Bitcoin-Qt
(Mac system) ) or bitcoind/bitcoin-qt
(Linux system).
It is possible to upgrade directly from an older version of the Bitcoin Core client, but it may take some time if you need to migrate the datadir. Older versions of the Bitcoin Core client are usually supported.
Second, compatibility
The Bitcoin Core client has been extensively tested on multiple operating systems, including the Linux kernel operating system, macOS 10.10+, Windows 7, and newer operating systems. It is not recommended to use the Bitcoin Core client on unsupported systems.
Bitcoin Core works on other Unix-like OSs, but tests are relatively rare.
It should be noted that the macOS operating system is lower than the 10.10 version, and it is impossible to run the Bitcoin Core client higher than 0.17.0. This is because 0.17.0 is built using Qt 5.9.x, it does not support lower than 10.10. The version of the macOS operating system.
In addition, when macOS "dark mode" is activated, Bitcoin Core does not change its appearance.
Users running the macOS Catalina system may need to "right click" and then select "Open" to open Bitcoin Core.dmg. This is because Apple has proposed a new signature requirement, and the Bitcoin Core project has not yet complied with this requirement.
Third, significant changes
3, 1 new user documentation
Reduced memory is recommended for configuration adjustments to run the Bitcoin Core client on a limited system of memory. (#16339)
3, 2 new RPC
-
getbalances
returns an object containing all the balances (mine
,untrusted_pending
andimmature
). For more information, see the RPC help section of getbalances. The new RPC is designed to replace the balance fields ingetbalance
,getunconfirmedbalance
andgetwalletinfo
. These old calls and fields may be removed in a future release. (#15930, #16239) -
setwalletflag
sets and removes the wallet flag, enabling or disabling features specific to existing wallets, such as the newavoid_reuse
feature recorded elsewhere in these release notes. (#13756) -
getblockfilter
gets the BIP158 filter of the specified block. This RPC is only enabled when a block filter has been created with the-blockfilterindex
configuration option. (#14121)
3, 3 new settings
-
-blockfilterindex
allows BIP158 block filters to be created for the entire blockchain. The filter will be created in the background and will currently take up approximately 4GB of space. Note: Although local users can get block filters usinggetblockfilter
RPC, this version of Bitcoin Core does not provide block filters on P2P networks. (#14121)
3, 4 updated settings
-
whitebind
andwhitelist
now accept a list of permissions to providewhitebind
that connect using the specified interface or IP address. If no address or CIDR network is used to specify permissions, the implicit default permissions are the same as in earlier versions. For more information on the available permissions, see thebitcoind -help
output for both options (#16248) - Users who set custom
dbcache
values can increase their settings slightly without using any real memory. Recent changes have reduced memory usage by about 9% and made chained state calculations more accurate (previously it underestimated memory usage). For example, if the previously set value is "450", using approximately the same amount of real memory, you can now set the value to "500". (#16957)
3, 5 updated RPC
Note: Some of the low-level RPC changes that are primarily used for testing are placed in the low-level changes section below.
-
sendmany
no longer has theminconf
parameter. This parameter is not well specified, even if the wallet's currency selection is successful, it will cause an RPC error. For users who want to influence currency selection, use the current-spendzeroconfchange
,-limitancestorcount
,-limitdescendantcount
and-walletrejectlongchains
configuration parameters. (#15596) -
getbalance
andsendtoaddress
, plus the new RPCgetbalances
andcreatewallet
, now accept an "avoid_reuse" parameter that controls whether the address already used should be included in the operation. In addition, even if this feature has not been enabled with the-avoidpartialspends
command line flag,sendtoaddress
will avoid some overhead whenavoid_reuse
is enabled, as failure to use "wrong" UTXO in case of address reuse. (#13756) - RPC with the
include_watch only
parameter or theincludeWatching
option now defaults totrue
for read-only wallets. The affected RPCs are:getbalance
,listreceivedbyaddress
,listreceivedbylabel
,listtransactions
,listsinceblock
,gettransaction
,walletcreatefundedpsbt
andfundrawtransaction
. (#16383) - If the wallet flag "
avoid_reuse
" is enabled,listunspent
now returns a "reused" bool for each output. (#13756) -
getblockstats
now usesBlockUndo
data instead of the transaction index to make it faster, instead of relying on the-txindex
configuration option, and all untrimmed blocks have this feature. (#14802) -
utxoupdatepsbt
now accepts adescriptors
parameter that will fill in the input and output scripts and Keys when known. When a descriptor is provided to show that they are using the quarantine witness (segwit) output, the P2SH-witness input will be populated from the UTXO set. See the RPC help text for more information. (#15427) - If the transaction fee exceeds the value of the configuration option
-maxtxfee
,sendrawtransaction
andtestmempoolaccept
will no longer accept theallowhighfees
parameter to make the mempool accept failure. When any RPC is called with themaxfeerate
parameter, there is now a hard-coded preset maximum rate that can be changed. (#15620) -
getmempoolancestors
,getmempooldescendants
,getmempoolentry
andgetrawmempool
no longer return range fields unless the configuration option-deprecatedrpc=size
used. Instead, the newvsize
field and the virtual size of the transaction will be returned (consistent with other RPCs such asgetrawtransaction
). (#15637) -
getwalletinfo
now contains ascanning
field, which can befalse
(no scanning), or an object that contains the duration and progress information of the wallet scan history block to see the transactions that affect its balance. (#15730) -
gettransaction
now accepts the third (boolean) argumentverbose
. If set totrue
, a new decode field will be added to the response containing the decoded transaction. When passingverbose
, this field is equivalent to RPCdecoderawtransaction
or RPCgetrawtransaction
. (#16185, #16866, #16873) -
createwallet
accepts a newpassphrase
parameter. If set, this will create a new wallet encrypted with the given passphrase. If not set (the default) or set to an empty string, no encryption will be used. (#16394) -
getchaintxstats
RPC now returns the additional key forwindow_final_block_height
. (#16695) -
getmempoolentry
now provides aweight
field containing the transaction weights defined in BIP141. (#16647) -
getnetworkinfo
andgetpeerinfo
commands now contain a new field with a decoded network service flag. (#16786) -
getdescriptorinfo
now returns an extrachecksum
field containing thechecksum
of the unmodified descriptor provided by the user. (#15986) -
joinpsbts
now performs an unordered processing of the resulting PSBT input and output sequences. Previously, input and output were added in the order in which PSBT was provided, which made the association of input and output easy and thus unfavorable for privacy (Translator's Note: New joinpsbts enhance privacy protection). - If the
-walletrbf
configuration option is set totrue
,walletcreatefundedpsbt
will now issue a BIP125 Replace-by-Fee signal. (#15911)
3, 6 GUI (Graphical User Interface) changes
- The GUI wallet now provides a bech32 address by default. The user can change the address type using the GUI switch during invoice generation, or change the default address type using the
-addresstype
configuration option. (#15711, #16497) - In the 0.18.0 version of the wallet, the
./configure
flag was introduced to allow BIP70 support to be disabled in the GUI (support is enabled by default). In the 0.19.0 version of the wallet, this flag is now disabled by default. If you want to compile BIP70 in the GUI, you can pass--enable-bip70
to./configure
. (#15584)
3, 7 Deprecated or deleted configuration options
-
-mempoolreplacement
has been removed, although the default node behavior remains the same. This option previously allowed the user to block the node from accepting or relaying BIP125 transaction replacements. It is different from the configuration option-walletrbf
continues to exist. (#16171)
3, 8 discarded or deleted RPC
-
bumpfee
no longer accepts thetotalFee
option, unless the configuration parameterdeprecatedrpc=totalFee
, this parameter will be completely removed in subsequent versions. (#15996) -
bumpfee
has a newfee_rate
option to replace the deprecatedtotalFee
. (#16727) -
generate
has been officially removed after it was deprecated in Bitcoin Core 0.18. Please usegeneratetoaddress
RPC instead. (#15492)
3, 9 P2P changes
- BIP 61 rejection messages are deprecated in version 0.18, they are now disabled by default, but you can enable it by setting the
-enablebip61
command line option. The BIP61 rejection message will be completely removed in future versions of the client. (#14054) - To eliminate the well-known denial of service vectors in Bitcoin Core, especially for nodes with spinning
-peerbloomfilters
, the new version of the client has-peerbloomfilters
the default value of the-peerbloomfilters
configuration option tofalse
. This prevents the Bitcoin Core client from sending BIP111 NODE_BLOOM service flags, accepting BIP37 BLOOM filters or serving merkle blocks or transactions matching BLOOM filters. Users who still wish to provide BLOOM filter support can set the configuration option totrue
to re-enable support for BIP111 and BIP37, or use the updated-whitebind
and-whitelist
configuration options described elsewhere in this release note. Specific peers enable BIP37 support. In the near future, light clients using public BIP111/BIP37 nodes should still be able to connect to earlier versions of Bitcoin Core and manually enable BIP37 supported nodes, but developers of such software should consider migrating to use specific BIP37. Node or alternative transaction filtering system. (#16152) - By default, the Bitcoin Core client will now create two additional outbound connections dedicated to block relays. No transaction or address information will be processed on these connections. These connections are designed to add little extra memory or bandwidth resource requirements, but can make some partitioning attacks more difficult to perform. (#15759)
3, 10 Miscellaneous CLI changes
- The
testnet
field inbitcoin-cli -getinfo
has been renamed tochain
and now returns the current network name defined in BIP70 (main, test, regtest). (#15566)
Fourth, low level changes
4, 1 RPC
-
getblockchaininfo
no longer returns thebip9_softforks
object. Instead, the information is moved to thesoftforks
object, and anothertype
field describes how the Bitcoin Core client determines if the soft fork is active (for example, BIP9 or BIP90). For more information, see the RPC help. (#16060) -
getblocktemplate
no longer returns arules
array containingCSV
andsegwit
(currently active BIP9 deployment). (#16060) -
getrpcinfo
now returns alogpath
field with the pathdebug.log
. (#15483)
4, 2 test
- The degraded test chain enabled by the
-regtest
command line flag now requires transactions to not violate standard policies by default. This is the same as the default value used by the main network, making it easier to test the behavior of the main network on the regtest test network. Note that by default, the test network still allows non-standard transactions, and the-acceptnonstdtxn
command line flag can be used to locally adjust the policy for both test chains. (#15891)
4, 3 configuration
- Settings specified in the default section but not specified in a specific part of the network (such as a test network) will now generate an error that prevents the startup, not just a warning, unless the network is the primary network. This will prevent the settings for the primary network from being applied to the test network or the regtest test network. (#15629)
- On platforms that support
thread_local
, you canthread_local
the log line with the name that caused the log thread. To enable this behavior, use-logthreadnames=1
. (#15849)
4, 4 network
- When acquiring a transaction announced by multiple peer nodes, clients of earlier versions of Bitcoin Core will receive the order of notifications from these peers and then download the transaction in turn until the transaction is received. In the new version of the client, the download logic has been changed to random access and tends to send download requests to the outbound peer instead of the inbound peer. This fixes an issue where an inbound peer might prevent a node from getting a transaction. (#14897, #15834)
- If the user is using the Tor hidden service, the Bitcoin Core client will also bind to the standard port 8333 (even if a different port is configured for the transparent network connection), which prevents the node identity from being leaked by using the same non-default port number. (#15651)
4, 5 Mempool and transaction relay
- Allow each package to have an additional single ancestor transaction. Previously, if a transaction in mempool had 25 sub-transactions, or if it traded more than 101,000 vbytes with all of its children, then as a child transaction, the newly accepted transaction would be ignored. The new client will now allow an additional child transaction, provided it is a direct child and the child transaction size does not exceed 10,000 vbytes. This allows a two-party contractual agreement like Lightning Network to provide each participant with a child-Pays-For-Parent fee output without allowing a malicious participant to fill the entire package. This prevents another participant from spending their output. (#15681)
- Transactions that are exported as v1 to v16 witness versions (future segregated witness versions) are now accepted into mempool for relaying and mining operations. Attempting to use these outputs is still prohibited by the policy. When this change is widely used, the wallet and service can accept any valid bech32 bitcoin address without worrying that future segregated witness transaction payments will fall into an unconfirmed state. (#15846)
- Traditional transactions (transactions without quarantine witness input) must now be sent using the traditional encoding format, enforcing the rules specified in BIP144. (#14039)
4, 5 wallet
- In pruning mode, a rescan triggered by
importwallet
,importpubkey
,importaddress
orimportprivkey
RPC will only fail if the block is pruned. Previously, when-prune
was set, it failed. This change allows-prune
set to a high value (such as disk size), and any calls to the imported RPC will not fail until the first block is pruned. . (#15870) - When creating a transaction with a cost higher than
-maxtxfee
(default is 0.1btc), the RPC commandswalletcreatefundedpsbt
andfundrawtransaction
will now fail instead of reducing the cost. Note that thefeeRate
parameter is specified for every 1,000 vbytes of BTC, not for each vbyte of satoshi. (#16257) - A new wallet flag,
avoid_reuse
(default is off) has been added. When enabled, the wallet will distinguish between used and unused addresses, and by default does not use the former in currency selection. When this flag is set on an existing wallet, the blockchain needs to be rescanned to properly mark the previously used destination. Coupled with "avoid some expenses" (features added in Bitcoin Core v0.17.0), this eliminates a serious privacy issue where a malicious user can send a small payment to a previously paid address (the address will then It is included in the irrelevant input of future payments) to track expenses. (#13756)
4, 6 development system changes
- For current project development, Python requires >=3.5 version. This includes building systems, testing frameworks, and linter. The lowest supported value (version 3.4) was deprecated in March 2019. (#14954)
- The supported miniUPnPc API version has a minimum of 10. This is compatible with Ubuntu 16.04 LTS and Debian 8
libminiupnpc-dev
packages. Please note that on Debian, this package is still vulnerable to CVE-2017-8798 (jessie only) and CVE-2017-1000494 (including jessie and stretch versions). (#15993)
Five, 0.19.0 change log (omitted)
Interested readers can view the original text: https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.19.0.md
6. List of developers participating in the contribution
Thanks to all the developers who participated directly in the software release, they are: (Translator's Note: in no particular order)
- 251
- Aaron Clauson
- Akio Nakamura
- Alistair Mann
- Amiti Uttarwar
- Andrew Chow
- Andrewtoth
- Anthony Towns
- Antoine Riard
- Aseem Sood
- Ben Carman
- Ben Woosley
- Bpay
- Carl Dong
- Carnhof Daki
- Chris Capobianco
- Chris Moore
- Chuf
- Clashic
- Clashicly
- Cory Fields
- Daki Carnhof
- Dan Gershony
- Daniel Edgecumbe
- Daniel Kraft
- Daniel McNally
- Darosior
- David A. Harding
- David Reikher
- Douglas Roark
- Elichai Turkel
- Emil
- Emil Engler
- Ezegom
- Fabian Jahr
- Fanquake
- Felix Weis
- Ferdinando M. Ametrano
- Fridokus
- Gapeman
- GChuf
- Gert-Jaap Glasbergen
- Giulio Lombardo
- Glenn Willen
- Graham Krizek
- Gregory Sanders
- Grim-trigger
- Gwillen
- Hennadii Stepanov
- Jack Mallers
- James Hilliard
- James O'Beirne
- Jan Beich
- Jeremy Rubin
- JeremyRand
- Jim Posen
- John Bampton
- John Newbery
- Jon Atack
- Jon Layton
- Jonas Schnelli
- Jonathan "Duke" Leto
- João Barbosa
- Joonmo Yang
- Jordan Baczuk
- Jorge Timón
- Josu Goñi
- Julian Fleischer
- Karl-Johan Alm
- Kaz Wesley
- Keepkeyjon
- Kirill Fomichev
- Kristaps Kaupe
- Kristian Kramer
- Larry Ruane
- Lenny Maiorani
- LongShao007
- Luca Venturini
- Lucash-dev
- Luke Dashjr
- Marcoagner
- MarcoFalke
- Marcuswin
- Martin Ankerl
- Martin Zumsande
- Matt Corallo
- MeshCollider
- Michael Folkson
- Miguel Herranz
- Nathan Marley
- Neha Narula
- Nicolas.dorier
- Nils Loewen
- Nkustolas
- Orient
- Patrick Strateman
- Peter Bushnell
- Peter Wagner
- Pieter Wuille
- Practicalswift
- Qmma
- R8921039
- RJ Rybarczyk
- Russell Yanofsky
- Samuel Dobson
- Sebastian Falbesoner
- Setpill
- Shannon1916
- Sjors Provoost
- Soroosh-sdi
- Steven Roose
- Suhas Daftuar
- Tecnovert
- THETCR
- Tim Ruffing
- Tobias Kaderle
- Torkel Rogstad
- Ulrich Kempken
- Whythat
- William Casarin
- Wladimir J. van der Laan
- Zenosage
We will continue to update Blocking; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Zhejiang Provincial Party Committee Secretary: Strive to become the leader of the development of blockchain
- QKL123 market analysis | Bitcoin halved, history will not simply repeat (1111)
- Ethereum co-founder Joseph Lubin: I hope that the public chain such as Ethereum can interact with the central bank's digital currency
- One of Silicon Valley's top VCs, a16z, announced a free start! Dedicated to cryptocurrency and blockchain entrepreneurs
- Legal tender, gold and bitcoin: Three PKs in the form of three currencies, which is the most ideal?
- Chief analyst of the financial industry of Guosen Securities Economic Research Institute: Will the central bank's digital currency shake the banking business logic?
- This weekend, the EOS network was blocked by an airdrop.