Title: Bitcoin Core 0.21.0 Released Post by: achow101 on January 14, 2021, 04:43:25 PM 0.21.0 Release Notes
Bitcoin Core version 0.21.0 is now available from: https://bitcoincore.org/bin/bitcoin-core-0.21.0/ (https://bitcoincore.org/bin/bitcoin-core-0.21.0/) Or through BitTorrent: magnet:?xt=urn:btih:665c5bdc6f49948e47c1098d91ace98bd216150e&dn=bitcoin-core-0.21.0&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969 (magnet:?xt=urn:btih:665c5bdc6f49948e47c1098d91ace98bd216150e&dn=bitcoin-core-0.21.0&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969) This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: https://github.com/bitcoin/bitcoin/issues (https://github.com/bitcoin/bitcoin/issues) To receive security and update notifications, please subscribe to: https://bitcoincore.org/en/list/announcements/join/ (https://bitcoincore.org/en/list/announcements/join/) How to Upgrade If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). Upgrading directly from a version of Bitcoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old wallet versions of Bitcoin Core are generally supported. Compatibility Bitcoin Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no longer supported. Additionally, Bitcoin Core does not yet change appearance when macOS "dark mode" is activated. The node's known peers are persisted to disk in a file called peers.dat. The format of this file has been changed in a backwards-incompatible way in order to accommodate the storage of Tor v3 and other BIP155 addresses. This means that if the file is modified by 0.21.0 or newer then older versions will not be able to read it. Those old versions, in the event of a downgrade, will log an error message "Incorrect keysize in addrman deserialization" and will continue normal operation as if the file was missing, creating a new empty one. (#19954 (https://github.com/bitcoin/bitcoin/pull/19954), #20284 (https://github.com/bitcoin/bitcoin/pull/20284)) Notable changes P2P and network changes
Updated RPCs
Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below. New RPCs
Build System Updated settings
Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below. Tools and Utilities
New settings
Wallet
Automatic wallet creation removed Bitcoin Core will no longer automatically create new wallets on startup. It will load existing wallets specified by -wallet options on the command line or in bitcoin.conf or settings.json files. And by default it will also load a top-level unnamed ("") wallet. However, if specified wallets don't exist, Bitcoin Core will now just log warnings instead of creating new wallets with new keys and addresses like previous releases did. New wallets can be created through the GUI (which has a more prominent create wallet option), through the bitcoin-cli createwallet or bitcoin-wallet create commands, or the createwallet RPC. (#15454 (https://github.com/bitcoin/bitcoin/pull/15454), #20186 (https://github.com/bitcoin/bitcoin/pull/20186)) Experimental Descriptor Wallets Please note that Descriptor Wallets are still experimental and not all expected functionality is available. Additionally there may be some bugs and current functions may change in the future. Bugs and missing functionality can be reported to the issue tracker (https://github.com/bitcoin/bitcoin/issues). 0.21 introduces a new type of wallet - Descriptor Wallets. Descriptor Wallets store scriptPubKey information using output descriptors. This is in contrast to the Legacy Wallet structure where keys are used to implicitly generate scriptPubKeys and addresses. Because of this shift to being script based instead of key based, many of the confusing things that Legacy Wallets do are not possible with Descriptor Wallets. Descriptor Wallets use a definition of "mine" for scripts which is simpler and more intuitive than that used by Legacy Wallets. Descriptor Wallets also uses different semantics for watch-only things and imports. As Descriptor Wallets are a new type of wallet, their introduction does not affect existing wallets. Users who already have a Bitcoin Core wallet can continue to use it as they did before without any change in behavior. Newly created Legacy Wallets (which remains the default type of wallet) will behave as they did in previous versions of Bitcoin Core. The differences between Descriptor Wallets and Legacy Wallets are largely limited to non user facing things. They are intended to behave similarly except for the import/export and watchonly functionality as described below. Creating Descriptor Wallets Descriptor wallets are not the default type of wallet. In the GUI, a checkbox has been added to the Create Wallet Dialog to indicate that a Descriptor Wallet should be created. And a descriptors option has been added to createwallet RPC. Setting descriptors to true will create a Descriptor Wallet instead of a Legacy Wallet. Without those options being set, a Legacy Wallet will be created instead. IsMine Semantics IsMine refers to the function used to determine whether a script belongs to the wallet. This is used to determine whether an output belongs to the wallet. IsMine in Legacy Wallets returns true if the wallet would be able to sign an input that spends an output with that script. Since keys can be involved in a variety of different scripts, this definition for IsMine can lead to many unexpected scripts being considered part of the wallet. With Descriptor Wallets, descriptors explicitly specify the set of scripts that are owned by the wallet. Since descriptors are deterministic and easily enumerable, users will know exactly what scripts the wallet will consider to belong to it. Additionally the implementation of IsMine in Descriptor Wallets is far simpler than for Legacy Wallets. Notably, in Legacy Wallets, IsMine allowed for users to take one type of address (e.g. P2PKH), mutate it into another address type (e.g. P2WPKH), and the wallet would still detect outputs sending to the new address type even without that address being requested from the wallet. Descriptor Wallets do not allow for this and will only watch for the addresses that were explicitly requested from the wallet. These changes to IsMine will make it easier to reason about what scripts the wallet will actually be watching for in outputs. However for the vast majority of users, this change is largely transparent and will not have noticeable effect. Imports and Exports In Legacy Wallets, raw scripts and keys could be imported to the wallet. Those imported scripts and keys are treated separately from the keys generated by the wallet. This complicates the IsMine logic as it has to distinguish between spendable and watchonly. Descriptor Wallets handle importing scripts and keys differently. Only complete descriptors can be imported. These descriptors are then added to the wallet as if it were a descriptor generated by the wallet itself. This simplifies the IsMine logic so that it no longer has to distinguish between spendable and watchonly. As such, the watchonly model for Descriptor Wallets is also different and described in more detail in the next section. To import into a Descriptor Wallet, a new importdescriptors RPC has been added that uses a syntax similar to that of importmulti. As Legacy Wallets and Descriptor Wallets use different mechanisms for storing and importing scripts and keys the existing import RPCs have been disabled for descriptor wallets. New export RPCs for Descriptor Wallets have not yet been added. The following RPCs are disabled for Descriptor Wallets:
Watchonly Wallets A Legacy Wallet contains both private keys and scripts that were being watched. Those watched scripts would not contribute to your normal balance. In order to see the watchonly balance and to use watchonly things in transactions, an include_watchonly option was added to many RPCs that would allow users to do that. However it is easy to forget to include this option. Descriptor Wallets move to a per-wallet watchonly model. Instead an entire wallet is considered to be watchonly depending on whether it was created with private keys disabled. This eliminates the need to distinguish between things that are watchonly and things that are not within a wallet itself. This change does have a caveat. If a Descriptor Wallet with private keys <em>enabled</em> has a multiple key descriptor without all of the private keys (e.g. multi(...) with only one private key), then the wallet will fail to sign and broadcast transactions. Such wallets would need to use the PSBT workflow but the typical GUI Send, sendtoaddress, etc. workflows would still be available, just non-functional. This issue is worsened if the wallet contains both single key (e.g. wpkh(...)) descriptors and such multiple key descriptors as some transactions could be signed and broadcast and others not. This is due to some transactions containing only single key inputs, while others would contain both single key and multiple key inputs, depending on which are available and how the coin selection algorithm selects inputs. However this is not considered to be a supported use case; multisigs should be in their own wallets which do not already have descriptors. Although users cannot export descriptors with private keys for now as explained earlier. BIP 44/49/84 Support The change to using descriptors changes the default derivation paths used by Bitcoin Core to adhere to BIP 44/49/84. Descriptors with different derivation paths can be imported without issue. SQLite Database Backend Descriptor wallets use SQLite for the wallet file instead of the Berkeley DB used in legacy wallets. This will break compatibility with any existing tooling that operates on wallets, however compatibility was already being broken by the move to descriptors. Wallet RPC changes
GUI changes
Low-level changes RPC
Tests
Code: -----BEGIN PGP SIGNED MESSAGE----- Title: Re: Bitcoin Core 0.21.0 Released Post by: achow101 on January 14, 2021, 04:44:11 PM 0.21.0 change log
Consensus
Policy
Mining
Privacy
Block and transaction handling
P2P protocol and network code
Wallet
RPC and other APIs
GUI
Build system
Title: Re: Bitcoin Core 0.21.0 Released Post by: achow101 on January 14, 2021, 04:44:17 PM Tests and QA
Miscellaneous
Documentation
Credits Thanks to everyone who directly contributed to this release:
As well as to everyone that helped with translations on Transifex (https://www.transifex.com/bitcoin/bitcoin/). Title: Re: Bitcoin Core 0.21.0 Released Post by: Carlton Banks on January 15, 2021, 03:41:59 PM great, roll on taproot activation :)
trackerless bittorrent magnet link: magnet:?xt=urn:btih:665c5bdc6f49948e47c1098d91ace98bd216150e&dn=bitcoin-core-0.21.0 (magnet:?xt=urn:btih:665c5bdc6f49948e47c1098d91ace98bd216150e&dn=bitcoin-core-0.21.0) Title: Re: Bitcoin Core 0.21.0 Released Post by: Icon on January 17, 2021, 01:24:48 AM so kinda on topic, sending btc to an address and never sending it out 0 transactions after first deposit. Would that stop quantum computers from finding the private key.. Guess no seeing public address you sent it to is on the blockchain.
reason i am asking is there is a youtuber out there thinking moving btc into an empty wallet is more secure then a one you use all the time. here is is last post to me: " when sending your coins to an address you are not revealing the public key of the destination wallet, only the source wallet (which will now be empty, so they can have that public key, its empty), The receiving wallet is only exposing one of multiple sending addresses (not the public key, that is different). So theoretically the attacker could use the sending address to derive the public key and then from the public key derive the private key. (this is currently impossible) but why make it easier by exposing the public key by SPENDING FROM the wallet. The point is that a wallet that has never been spent from is more secure than a wallet that has sent transactions out. You may not agree with me and that is your prerogative, but for me, best practice is store crypto in a "one-way" wallet (only deposits). If I need to send/spend from the wallet, I send the remaining balance to a new "one-way" wallet(deposit only)" Icon Title: Re: Bitcoin Core 0.21.0 Released Post by: pooya87 on January 17, 2021, 05:40:58 AM but for me, best practice is store crypto in a "one-way" wallet (only deposits). If I need to send/spend from the wallet, I send the remaining balance to a new "one-way" wallet(deposit only)" You are referring to address reuse (https://en.bitcoin.it/wiki/Address_reuse).So theoretically the attacker could use the sending address to derive the public key and then from the public key derive the private key. I like to use the space travel analogy here, saying it makes it "easier" for the attacker to find your private key by revealing your public key compared to only revealing your pubkey hash is like saying traveling to Uranus (19.2 AU) is easier than traveling to Neptune (30.1 AU, farthest planet from earth). The statement is not wrong but the act remains astronomically difficult that makes both impossible, and will remain impossible in our lifetime (possibly).but why make it easier by exposing the public key by SPENDING FROM the wallet. This is off-topic by the way, you should start new topics for stuff like this. Title: Re: Bitcoin Core 0.21.0 Released Post by: Carlton Banks on January 18, 2021, 11:04:24 AM supposedly, hash-wrapping the public key is (perhaps) pointless to protect against a quantum computer, providing such a computer is fast enough...
the public key must be revealed in order to spend from a bitcoin "address" (which is simply a hash the underlying public key). When a transaction is signed and broadcast, the scriptPubkey in that transaction contains the public key that a quantum computer would use to calculate the corresponding private key. So, if the QC can listen for new transactions added to it's Bitcoin mempool, and compute the private key before that transaction is confirmed in a block (average block interval is 10 minutes, as we know), then they may also have enough time to steal the transaction inputs by spending using a higher fee to an address they control. in that scenario, the window of opportunity that exists while the transaction is "in-flight" reduces the protection of hashing the public key to mere security theater Title: Re: Bitcoin Core 0.21.0 Released Post by: gmaxwell on January 18, 2021, 06:02:44 PM to mere security theater It's also security theatre because most of the coins in circulation are stored in addresses that have been reused. "If you owe the bank $100 that's your problem. If you owe the bank $100 million, that's the bank's problem." -- even if it did provide some protection to you (though I don't agree that it does, for the reason Carlton notes), it wouldn't matter because of everyone elses exposure.I'm pretty confident that I started that whole meme that the hashing was protective, I intended it as just a minor quip that it wasn't necessarily a pure waste of resources and might have some fringe benefit. People have spun it into something I never intended, and I regret suggesting it. Title: Re: Bitcoin Core 0.21.0 Released Post by: darkv0rt3x on January 18, 2021, 10:59:16 PM I'm not sure if I should post this question here. If it's in the wrong thread, please move it.
I'm actually using Bitcoin Core v0.20.1.0-g7ff64311bee570874c4f0dfa18f518552188df08. From what I read from achow101 blogpost, Bitcoin Core made some major changes, and among others, there is the descriptor wallets and the sqlite3 database. How should I proceed to avoid having to re-download the entire blockchain and redinex it all again? I can't just compile the new version and use the same folder, can I? And I want to start using sqlite3 and the new wallets. Title: Re: Bitcoin Core 0.21.0 Released Post by: achow101 on January 18, 2021, 11:31:02 PM How should I proceed to avoid having to re-download the entire blockchain and redinex it all again? I can't just compile the new version and use the same folder, can I? Just download and install (or compile and install) the new version. It will automatically pick up and use the data you already have. It is all backwards compatible.And I want to start using sqlite3 and the new wallets. You can create a new wallet using the menu option File > Create Wallet. Then just select the "Descriptor wallet" option in Advanced Options and you will have a descriptor wallet which uses sqlite3 as the backend.Title: Re: Bitcoin Core 0.21.0 Released Post by: darkv0rt3x on January 19, 2021, 10:48:19 AM How should I proceed to avoid having to re-download the entire blockchain and redinex it all again? I can't just compile the new version and use the same folder, can I? Just download and install (or compile and install) the new version. It will automatically pick up and use the data you already have. It is all backwards compatible.And I want to start using sqlite3 and the new wallets. You can create a new wallet using the menu option File > Create Wallet. Then just select the "Descriptor wallet" option in Advanced Options and you will have a descriptor wallet which uses sqlite3 as the backend.Thank you. I'm going to try to keep using only the command line. I never used the GUI. Anyways, the sqlite3 database is only meant for wallet data? Title: Re: Bitcoin Core 0.21.0 Released Post by: achow101 on January 19, 2021, 04:25:10 PM Thank you. I'm going to try to keep using only the command line. I never used the GUI. In that case, it's the createwallet command. You can read it's help to find out which arguments to set.Anyways, the sqlite3 database is only meant for wallet data? Yes.Title: Re: Bitcoin Core 0.21.0 Released Post by: wasisdn on January 28, 2021, 02:39:41 AM I have a problem inilizing my wallet.dat and found that the problem is with Core v0.21.0
Yesterday, after I received the last payment from nicehash, I open Bitcoin Core, but always while loading the same block, I think that the one in which the transfer from Nicehash is located, Bitcoin Core just closed without any error message. After trying several times and reinitializing the wallet.dat, I installed v0.20.1 and the problem was solved ... Title: Re: Bitcoin Core 0.21.0 Released Post by: achow101 on January 28, 2021, 03:40:45 AM I have a problem inilizing my wallet.dat and found that the problem is with Core v0.21.0 Can you create a thread in the tech support forum for that? In your post, include the the contents of your debug.log file.Yesterday, after I received the last payment from nicehash, I open Bitcoin Core, but always while loading the same block, I think that the one in which the transfer from Nicehash is located, Bitcoin Core just closed without any error message. After trying several times and reinitializing the wallet.dat, I installed v0.20.1 and the problem was solved ... Title: Re: Bitcoin Core 0.21.0 Released Post by: ethtrader16 on February 11, 2021, 04:34:39 PM Bitcoin core is new coin like Bitcoin cash?
Title: Re: Bitcoin Core 0.21.0 Released Post by: achow101 on February 11, 2021, 04:54:59 PM Bitcoin core is new coin like Bitcoin cash? No. Bitcoin Core is the primary node software for Bitcoin.Title: Re: Bitcoin Core 0.21.0 Released Post by: polinapetrova on March 03, 2021, 01:03:46 PM Is there anything we should be aware of with this release?
Title: Re: Bitcoin Core 0.21.0 Released Post by: Tim101 on March 03, 2021, 08:13:11 PM Bitcoin core is new coin like Bitcoin cash? Lol... not by a long shot... Title: Re: Bitcoin Core 0.21.0 Released Post by: decentralizedb on March 19, 2021, 10:15:52 AM Is there anything we should be aware of with this release? I've been testing it for a while without problems :)Title: Re: Bitcoin Core 0.21.0 Released Post by: Antonio_d1ego on March 20, 2021, 09:14:12 AM Hello. Can someone explain the beauty of this bitcoin core? Why is it not easier to use online - the same paxful and others. I tried to install bitcoin core - synchronization took 4 days, everything is buggy because of this. And what kind of super functionality I did not see? Security?
Title: Re: Bitcoin Core 0.21.0 Released Post by: achow101 on March 30, 2021, 04:31:12 PM Hello. Can someone explain the beauty of this bitcoin core? Why is it not easier to use online - the same paxful and others. I tried to install bitcoin core - synchronization took 4 days, everything is buggy because of this. And what kind of super functionality I did not see? Security? Bitcoin Core is a full node. It downloads and verifies all blocks and transactions. Additionally, it is a wallet software so all of your private keys are generated, stored, and managed by Bitcoin Core if you use its wallet.Bitcoin Core is more secure and private than online wallets. Those wallets may also be custodial wallets where your Bitcoin is held by the service provider and they just promise to send the Bitcoin when you ask for it to be sent somewhere. Those web wallets are not private - the service provider can see all of your transactions and associate those transactions to you. They can do this trivially. Additionally, if they go offline, go out of business, or stop operating for whatever reason, your Bitcoin is lost. Bitcoin Core does not have those problems. If Bitcoin Core is no longer being developed, you can still use the software that you have downloaded and installed. Because Bitcoin Core is a full node, it is much harder to know which transactions are yours because your node will be receiving and sending all transactions on the network. Any that are yours blends in with the crowd of other transactions being relayed by Bitcoin Core. |