bitcoin-core / bitcoincore.org

Bitcoin Core project website
https://bitcoincore.org/
MIT License
608 stars 473 forks source link

Bitcoin Core 27.0 #1015

Closed achow101 closed 5 months ago

achow101 commented 5 months ago

Blog post, release notes, and RPC docs for 27.0. Also updates the maintenance table.

laanwj commented 5 months ago

ACK d5102c587e87da18a8a4a58df5c82cc6363b1748

The RPC doc change amounts to:

diff -durN _doc/en/26.0.0/rpc/blockchain/dumptxoutset.html _doc/en/27.0.0/rpc/blockchain/dumptxoutset.html
--- _doc/en/26.0.0/rpc/blockchain/dumptxoutset.html 2024-04-17 06:31:41.355251702 +0200
+++ _doc/en/27.0.0/rpc/blockchain/dumptxoutset.html 2024-04-17 06:28:00.449564968 +0200
@@ -5,7 +5,7 @@

 dumptxoutset "path"

-Write the serialized UTXO set to disk.
+Write the serialized UTXO set to a file.

 Arguments:
 1. path    (string, required) Path to the output file. If relative, will be prefixed by datadir.
diff -durN _doc/en/26.0.0/rpc/blockchain/loadtxoutset.html _doc/en/27.0.0/rpc/blockchain/loadtxoutset.html
--- _doc/en/26.0.0/rpc/blockchain/loadtxoutset.html 2024-04-17 06:31:41.331251953 +0200
+++ _doc/en/27.0.0/rpc/blockchain/loadtxoutset.html 2024-04-17 06:28:00.417565302 +0200
@@ -5,7 +5,7 @@

 loadtxoutset "path"

-Load the serialized UTXO set from disk.
+Load the serialized UTXO set from a file.
 Once this snapshot is loaded, its contents will be deserialized into a second chainstate data structure, which is then used to sync to the network's tip. Meanwhile, the original chainstate will complete the initial block download process in the background, eventually validating up to the block that the snapshot is based upon.

 The result is a usable bitcoind instance that is current with the network tip in a matter of minutes rather than hours. UTXO snapshot are typically obtained from third-party sources (HTTP, torrent, etc.) which is reasonable since their contents are always checked by hash.
diff -durN _doc/en/26.0.0/rpc/blockchain/scanblocks.html _doc/en/27.0.0/rpc/blockchain/scanblocks.html
--- _doc/en/26.0.0/rpc/blockchain/scanblocks.html   2024-04-17 06:31:41.355251702 +0200
+++ _doc/en/27.0.0/rpc/blockchain/scanblocks.html   2024-04-17 06:28:00.449564968 +0200
@@ -9,27 +9,27 @@
 This call may take several minutes. Make sure to use no RPC timeout (bitcoin-cli -rpcclienttimeout=0)

 Arguments:
-1. action                                 (string, required) The action to execute
-                                          "start" for starting a scan
-                                          "abort" for aborting the current scan (returns true when abort was successful)
-                                          "status" for progress report (in %) of the current scan
-2. scanobjects                            (json array, optional) Array of scan objects. Required for "start" action
-                                          Every scan object is either a string descriptor or an object:
+1. action                        (string, required) The action to execute
+                                 "start" for starting a scan
+                                 "abort" for aborting the current scan (returns true when abort was successful)
+                                 "status" for progress report (in %) of the current scan
+2. scanobjects                   (json array, optional) Array of scan objects. Required for "start" action
+                                 Every scan object is either a string descriptor or an object:
      [
-       "descriptor",                      (string) An output descriptor
-       {                                  (json object) An object with output descriptor and metadata
-         "desc": "str",                   (string, required) An output descriptor
-         "range": n or [n,n],             (numeric or array, optional, default=1000) The range of HD chain indexes to explore (either end or [begin,end])
+       "descriptor",             (string) An output descriptor
+       {                         (json object) An object with output descriptor and metadata
+         "desc": "str",          (string, required) An output descriptor
+         "range": n or [n,n],    (numeric or array, optional, default=1000) The range of HD chain indexes to explore (either end or [begin,end])
        },
        ...
      ]
-3. start_height                           (numeric, optional, default=0) Height to start to scan from
-4. stop_height                            (numeric, optional, default=chain tip) Height to stop to scan
-5. filtertype                             (string, optional, default="basic") The type name of the filter
-6. options                                (json object, optional)
-     {
-       "filter_false_positives": bool,    (boolean, optional, default=false) Filter false positives (slower and may fail on pruned nodes). Otherwise they may occur at a rate of 1/M
-     }
+3. start_height                  (numeric, optional, default=0) Height to start to scan from
+4. stop_height                   (numeric, optional, default=chain tip) Height to stop to scan
+5. filtertype                    (string, optional, default="basic") The type name of the filter
+6. options                       (json object, optional) Options object that can be used to pass named arguments, listed below.
+
+Named Arguments:
+filter_false_positives    (boolean, optional, default=false) Filter false positives (slower and may fail on pruned nodes). Otherwise they may occur at a rate of 1/M

 Result (when action=='status' and no scan is in progress - possibly already completed):
 null    (json null)
diff -durN _doc/en/26.0.0/rpc/control/logging.html _doc/en/27.0.0/rpc/control/logging.html
--- _doc/en/26.0.0/rpc/control/logging.html 2024-04-17 06:31:41.403251199 +0200
+++ _doc/en/27.0.0/rpc/control/logging.html 2024-04-17 06:28:00.465564801 +0200
@@ -10,7 +10,7 @@
 When called with arguments, adds or removes categories from debug logging and return the lists above.
 The arguments are evaluated in order "include", "exclude".
 If an item is both included and excluded, it will thus end up being excluded.
-The valid logging categories are: addrman, bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p, ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, scan, selectcoins, tor, txpackages, txreconciliation, util, validation, walletdb, zmq
+The valid logging categories are: addrman, bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p, ipc, leveldb, libevent, lock, mempool, mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, scan, selectcoins, tor, txpackages, txreconciliation, util, validation, walletdb, zmq
 In addition, the following are available as category names with special meanings:
   - "all",  "1" : represent all logging categories.
   - "none", "0" : even if other logging categories are specified, ignore all of them.
diff -durN _doc/en/26.0.0/rpc/mining/getnetworkhashps.html _doc/en/27.0.0/rpc/mining/getnetworkhashps.html
--- _doc/en/26.0.0/rpc/mining/getnetworkhashps.html 2024-04-17 06:31:41.331251953 +0200
+++ _doc/en/27.0.0/rpc/mining/getnetworkhashps.html 2024-04-17 06:28:00.417565302 +0200
@@ -10,7 +10,7 @@
 Pass in [height] to estimate the network speed at the time when a certain block was found.

 Arguments:
-1. nblocks    (numeric, optional, default=120) The number of blocks, or -1 for blocks since last difficulty change.
+1. nblocks    (numeric, optional, default=120) The number of previous blocks to calculate estimate from, or -1 for blocks since last difficulty change.
 2. height     (numeric, optional, default=-1) To estimate at the time of the given height.

 Result:
diff -durN _doc/en/26.0.0/rpc/mining/getprioritisedtransactions.html _doc/en/27.0.0/rpc/mining/getprioritisedtransactions.html
--- _doc/en/26.0.0/rpc/mining/getprioritisedtransactions.html   2024-04-17 06:31:41.331251953 +0200
+++ _doc/en/27.0.0/rpc/mining/getprioritisedtransactions.html   2024-04-17 06:28:00.417565302 +0200
@@ -9,9 +9,10 @@

 Result:
 {                                 (json object) prioritisation keyed by txid
-  "txid" : {                      (json object)
+  "<transactionid>" : {           (json object)
     "fee_delta" : n,              (numeric) transaction fee delta in satoshis
-    "in_mempool" : true|false     (boolean) whether this transaction is currently in mempool
+    "in_mempool" : true|false,    (boolean) whether this transaction is currently in mempool
+    "modified_fee" : n            (numeric, optional) modified fee in satoshis. Only returned if in_mempool=true
   },
   ...
 }
diff -durN _doc/en/26.0.0/rpc/network/addnode.html _doc/en/27.0.0/rpc/network/addnode.html
--- _doc/en/26.0.0/rpc/network/addnode.html 2024-04-17 06:31:41.399251240 +0200
+++ _doc/en/27.0.0/rpc/network/addnode.html 2024-04-17 06:28:00.461564842 +0200
@@ -14,7 +14,7 @@
 Arguments:
 1. node           (string, required) The address of the peer to connect to
 2. command        (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once
-3. v2transport    (boolean, optional, default=false) Attempt to connect using BIP324 v2 transport protocol (ignored for 'remove' command)
+3. v2transport    (boolean, optional, default=set by -v2transport) Attempt to connect using BIP324 v2 transport protocol (ignored for 'remove' command)

 Result:
 null    (json null)
diff -durN _doc/en/26.0.0/rpc/rawtransactions/sendrawtransaction.html _doc/en/27.0.0/rpc/rawtransactions/sendrawtransaction.html
--- _doc/en/26.0.0/rpc/rawtransactions/sendrawtransaction.html  2024-04-17 06:31:41.327251995 +0200
+++ _doc/en/27.0.0/rpc/rawtransactions/sendrawtransaction.html  2024-04-17 06:28:00.417565302 +0200
@@ -18,6 +18,7 @@
 Arguments:
 1. hexstring        (string, required) The hex string of the raw transaction
 2. maxfeerate       (numeric or string, optional, default="0.10") Reject transactions whose fee rate is higher than the specified value, expressed in BTC/kvB.
+                    Fee rates larger than 1BTC/kvB are rejected.
                     Set to 0 to accept any fee rate.
 3. maxburnamount    (numeric or string, optional, default="0.00") Reject transactions with provably unspendable outputs (e.g. 'datacarrier' outputs that use the OP_RETURN opcode) greater than the specified value, expressed in BTC.
                     If burning funds through unspendable outputs is desired, increase this value.
diff -durN _doc/en/26.0.0/rpc/rawtransactions/submitpackage.html _doc/en/27.0.0/rpc/rawtransactions/submitpackage.html
--- _doc/en/26.0.0/rpc/rawtransactions/submitpackage.html   2024-04-17 06:31:41.327251995 +0200
+++ _doc/en/27.0.0/rpc/rawtransactions/submitpackage.html   2024-04-17 06:28:00.413565345 +0200
@@ -7,7 +7,7 @@

 Submit a package of raw transactions (serialized, hex-encoded) to local node.
 The package must consist of a child with its parents, and none of the parents may depend on one another.
-The package will be validated according to consensus and mempool policy rules. If all transactions pass, they will be accepted to mempool.
+The package will be validated according to consensus and mempool policy rules. If any transaction passes, it will be accepted to mempool.
 This RPC is experimental and the interface may be unstable. Refer to doc/policy/packages.md for documentation on package policies.
 Warning: successful submission does not mean the transactions will propagate throughout the network.

@@ -20,19 +20,21 @@

 Result:
 {                                   (json object)
+  "package_msg" : "str",            (string) The transaction package result message. "success" indicates all transactions were accepted into or are already in the mempool.
   "tx-results" : {                  (json object) transaction results keyed by wtxid
     "wtxid" : {                     (json object) transaction wtxid
       "txid" : "hex",               (string) The transaction hash in hex
       "other-wtxid" : "hex",        (string, optional) The wtxid of a different transaction with the same txid but different witness found in the mempool. This means the submitted transaction was ignored.
-      "vsize" : n,                  (numeric) Virtual transaction size as defined in BIP 141.
-      "fees" : {                    (json object) Transaction fees
+      "vsize" : n,                  (numeric, optional) Sigops-adjusted virtual transaction size.
+      "fees" : {                    (json object, optional) Transaction fees
         "base" : n,                 (numeric) transaction fee in BTC
         "effective-feerate" : n,    (numeric, optional) if the transaction was not already in the mempool, the effective feerate in BTC per KvB. For example, the package feerate and/or feerate with modified fees from prioritisetransaction.
         "effective-includes" : [    (json array, optional) if effective-feerate is provided, the wtxids of the transactions whose fees and vsizes are included in effective-feerate.
           "hex",                    (string) transaction wtxid in hex
           ...
         ]
-      }
+      },
+      "error" : "str"               (string, optional) The transaction error string, if it was rejected by the mempool
     },
     ...
   },
diff -durN _doc/en/26.0.0/rpc/rawtransactions/testmempoolaccept.html _doc/en/27.0.0/rpc/rawtransactions/testmempoolaccept.html
--- _doc/en/26.0.0/rpc/rawtransactions/testmempoolaccept.html   2024-04-17 06:31:41.327251995 +0200
+++ _doc/en/27.0.0/rpc/rawtransactions/testmempoolaccept.html   2024-04-17 06:28:00.413565345 +0200
@@ -23,8 +23,9 @@
        "rawtx",    (string)
        ...
      ]
-2. maxfeerate      (numeric or string, optional, default="0.10") Reject transactions whose fee rate is higher than the specified value, expressed in BTC/kvB
-                   
+2. maxfeerate      (numeric or string, optional, default="0.10") Reject transactions whose fee rate is higher than the specified value, expressed in BTC/kvB.
+                   Fee rates larger than 1BTC/kvB are rejected.
+                   Set to 0 to accept any fee rate.

 Result:
 [                                 (json array) The result of the mempool acceptance test for each raw transaction in the input array.
diff -durN _doc/en/26.0.0/rpc/wallet/encryptwallet.html _doc/en/27.0.0/rpc/wallet/encryptwallet.html
--- _doc/en/26.0.0/rpc/wallet/encryptwallet.html    2024-04-17 06:31:41.395251283 +0200
+++ _doc/en/27.0.0/rpc/wallet/encryptwallet.html    2024-04-17 06:28:00.461564842 +0200
@@ -10,6 +10,10 @@
 will require the passphrase to be set prior the making these calls.
 Use the walletpassphrase call for this, and then walletlock call.
 If the wallet is already encrypted, use the walletpassphrasechange call.
+** IMPORTANT **
+For security reasons, the encryption process will generate a new HD seed, resulting
+in the creation of a fresh set of active descriptors. Therefore, it is crucial to
+securely back up the newly generated wallet file using the backupwallet RPC.

 Arguments:
 1. passphrase    (string, required) The pass phrase to encrypt the wallet with. It must be at least 1 character, but should be long.
diff -durN _doc/en/26.0.0/rpc/wallet/gettransaction.html _doc/en/27.0.0/rpc/wallet/gettransaction.html
--- _doc/en/26.0.0/rpc/wallet/gettransaction.html   2024-04-17 06:31:41.399251240 +0200
+++ _doc/en/27.0.0/rpc/wallet/gettransaction.html   2024-04-17 06:28:00.461564842 +0200
@@ -32,8 +32,8 @@
     "hex",                                 (string) The transaction id.
     ...
   ],
-  "replaced_by_txid" : "hex",              (string, optional) The txid if this tx was replaced.
-  "replaces_txid" : "hex",                 (string, optional) The txid if the tx replaces one.
+  "replaced_by_txid" : "hex",              (string, optional) Only if 'category' is 'send'. The txid if this tx was replaced.
+  "replaces_txid" : "hex",                 (string, optional) Only if 'category' is 'send'. The txid if this tx replaces another.
   "to" : "str",                            (string, optional) If a comment to is associated with the transaction.
   "time" : xxx,                            (numeric) The transaction time expressed in UNIX epoch time.
   "timereceived" : xxx,                    (numeric) The time received expressed in UNIX epoch time.
diff -durN _doc/en/26.0.0/rpc/wallet/getwalletinfo.html _doc/en/27.0.0/rpc/wallet/getwalletinfo.html
--- _doc/en/26.0.0/rpc/wallet/getwalletinfo.html    2024-04-17 06:31:41.359251659 +0200
+++ _doc/en/27.0.0/rpc/wallet/getwalletinfo.html    2024-04-17 06:28:00.453564925 +0200
@@ -31,6 +31,7 @@
   "descriptors" : true|false,             (boolean) whether this wallet uses descriptors for scriptPubKey management
   "external_signer" : true|false,         (boolean) whether this wallet is configured to use an external signer such as a hardware wallet
   "blank" : true|false,                   (boolean) Whether this wallet intentionally does not contain any keys, scripts, or descriptors
+  "birthtime" : xxx,                      (numeric, optional) The start time for blocks scanning. It could be modified by (re)importing any descriptor with an earlier timestamp.
   "lastprocessedblock" : {                (json object) hash and height of the block this information was generated on
     "hash" : "hex",                       (string) hash of the block this information was generated on
     "height" : n                          (numeric) height of the block this information was generated on
diff -durN _doc/en/26.0.0/rpc/wallet/listsinceblock.html _doc/en/27.0.0/rpc/wallet/listsinceblock.html
--- _doc/en/26.0.0/rpc/wallet/listsinceblock.html   2024-04-17 06:31:41.367251576 +0200
+++ _doc/en/27.0.0/rpc/wallet/listsinceblock.html   2024-04-17 06:28:00.457564884 +0200
@@ -52,8 +52,8 @@
         "hex",                             (string) The transaction id.
         ...
       ],
-      "replaced_by_txid" : "hex",          (string, optional) The txid if this tx was replaced.
-      "replaces_txid" : "hex",             (string, optional) The txid if the tx replaces one.
+      "replaced_by_txid" : "hex",          (string, optional) Only if 'category' is 'send'. The txid if this tx was replaced.
+      "replaces_txid" : "hex",             (string, optional) Only if 'category' is 'send'. The txid if this tx replaces another.
       "to" : "str",                        (string, optional) If a comment to is associated with the transaction.
       "time" : xxx,                        (numeric) The transaction time expressed in UNIX epoch time.
       "timereceived" : xxx,                (numeric) The time received expressed in UNIX epoch time.
diff -durN _doc/en/26.0.0/rpc/wallet/listtransactions.html _doc/en/27.0.0/rpc/wallet/listtransactions.html
--- _doc/en/26.0.0/rpc/wallet/listtransactions.html 2024-04-17 06:31:41.391251324 +0200
+++ _doc/en/27.0.0/rpc/wallet/listtransactions.html 2024-04-17 06:28:00.457564884 +0200
@@ -48,8 +48,8 @@
       "hex",                             (string) The transaction id.
       ...
     ],
-    "replaced_by_txid" : "hex",          (string, optional) The txid if this tx was replaced.
-    "replaces_txid" : "hex",             (string, optional) The txid if the tx replaces one.
+    "replaced_by_txid" : "hex",          (string, optional) Only if 'category' is 'send'. The txid if this tx was replaced.
+    "replaces_txid" : "hex",             (string, optional) Only if 'category' is 'send'. The txid if this tx replaces another.
     "to" : "str",                        (string, optional) If a comment to is associated with the transaction.
     "time" : xxx,                        (numeric) The transaction time expressed in UNIX epoch time.
     "timereceived" : xxx,                (numeric) The time received expressed in UNIX epoch time.
diff -durN _doc/en/26.0.0/rpc/wallet/migratewallet.html _doc/en/27.0.0/rpc/wallet/migratewallet.html
--- _doc/en/26.0.0/rpc/wallet/migratewallet.html    2024-04-17 06:31:41.387251367 +0200
+++ _doc/en/27.0.0/rpc/wallet/migratewallet.html    2024-04-17 06:28:00.457564884 +0200
@@ -5,8 +5,6 @@

 migratewallet ( "wallet_name" "passphrase" )

-EXPERIMENTAL warning: This call may not work as expected and may be changed in future releases
-
 Migrate the wallet to a descriptor wallet.
 A new wallet backup will need to be made.

@@ -15,6 +13,8 @@
 for this wallet. In the event of an incorrect migration, the backup can be restored using restorewallet.
 Encrypted wallets must have the passphrase provided as an argument to this call.

+This RPC may take a long time to complete. Increasing the RPC client timeout is recommended.
+
 Arguments:
 1. wallet_name    (string, optional, default=the wallet name from the RPC endpoint) The name of the wallet to migrate. If provided both here and in the RPC endpoint, the two must be identical.
 2. passphrase     (string, optional) The wallet passphrase