From 2227b1378519b87a9f43fb5892497e63e8be6950 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Fri, 14 Jun 2024 16:50:53 +0000 Subject: [PATCH] doc/release-notes: Update for Bitcoin Knots 27.1.knots20240621 --- doc/release-notes.md | 237 +++++++++++++++++++++++++++++++------------ 1 file changed, 172 insertions(+), 65 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index b19d70da33f6e..14214ce7e51ba 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,20 +1,20 @@ 27.1 Release Notes ===================== -Bitcoin Core version 27.1 is now available from: +Bitcoin Knots version 27.1.knots20240621 is now available from: - + -This release includes various bug fixes and performance -improvements, as well as updated translations. +This release includes new features, various bug fixes, and performance +improvements. Please report bugs using the issue tracker at GitHub: - + To receive security and update notifications, please subscribe to: - + How to Upgrade ============== @@ -24,91 +24,198 @@ 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 macOS) or `bitcoind`/`bitcoin-qt` (on Linux). -Upgrading directly from a version of Bitcoin Core that has reached its EOL is +Upgrading directly from very old versions of Bitcoin Core or Knots 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. +wallet versions of Bitcoin Knots are generally supported. Compatibility ============== -Bitcoin Core is supported and extensively tested on operating systems -using the Linux Kernel 3.17+, macOS 11.0+, 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. +Bitcoin Knots is supported on operating systems using the Linux kernel, +macOS 11.0+, and Windows 7 and newer. It is not recommended to use +Bitcoin Knots on unsupported systems. -Notable changes -=============== - -### Miniscript - -- #29853 sign: don't assume we are parsing a sane TapMiniscript - -### RPC - -- #29869 rpc, bugfix: Enforce maximum value for setmocktime -- #29870 rpc: Reword SighashFromStr error message -- #30094 rpc: move UniValue in blockToJSON - -### Index - -- #29776 Fix #29767, set m_synced = true after Commit() - -### Gui - -- #gui812 Fix create unsigned transaction fee bump -- #gui813 Don't permit port in proxy IP option - -### Test +Known Bugs +========== -- #29892 test: Fix failing univalue float test +In various locations, including the GUI's transaction details dialog and the +"vsize" result in many RPC results, transaction virtual sizes may not account +for an unusually high number of sigops (ie, as determined by the +`-bytespersigop` policy) or datacarrier penalties (ie, `-datacarriercost`). +This could result in reporting a lower virtual size than is actually used for +mempool or mining purposes. -### P2P +Due to disruption of the shared Bitcoin Transifex repository, this release +still does not include updated translations, and Bitcoin Knots may be unable +to do so until/unless that is resolved. -- #30085 p2p: detect addnode cjdns peers in GetAddedNodeInfo() - -### Build - -- #29747 depends: fix mingw-w64 Qt DEBUG=1 build -- #29859 build: Fix false positive CHECK_ATOMIC test -- #29985 depends: Fix build of Qt for 32-bit platforms with recent glibc -- #30097 crypto: disable asan for sha256_sse4 with clang and -O0 -- #30151 depends: Fetch miniupnpc sources from an alternative website -- #30216 build: Fix building fuzz binary on on SunOS / illumos -- #30217 depends: Update Boost download link - -### Doc - -- #29934 doc: add LLVM instruction for macOS < 13 - -### CI - -- #29856 ci: Bump s390x to ubuntu:24.04 - -### Misc +Notable changes +=============== -- #29691 Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us -- #30149 contrib: Renew Windows code signing certificate +P2P and network changes +----------------------- + +- As it has been several years since the last vulnerability in the port + mapping frameworks used by Bitcoin Knots, both UPnP and NAT-PMP have been + re-enabled by default when your node is configured to listen for incoming + connections (which is also on by default). This helps automatically + configure routers and VPNs to not block those incoming connections, making + the network more resilient. If you wish to disable these, you can set + `-natpmp=0` and `-upnp=0` - or you may prefer to disable incoming + connections altogether with `-listen=0`. + +- Network-adjusted time has been removed from consensus code. It is replaced + with (unadjusted) system time. The warning for a large median time offset + (70 minutes or more) is kept. This reduces the implicit security assumption of + requiring an honest majority of outbound peers, and increases the importance + of the node operator ensuring their system time is (and stays) correct to not + fall out of consensus with the network. (#28956) + +Node policy changes +------------------- + +- Experimental support for Opt-in Topologically Restricted Until Confirmation + (TRUC) Transactions policy (aka v3 transaction policy) is available. By + setting the transaction version number to 3, TRUC transactions request some + stricter relay filtering of themselves and related transactions. By default, + Bitcoin Knots v27.1 will accept, relay, and mine v3 transactions without + these additional restrictions. If you have configured `-mempoolreplacement` + to require transactions to signal replacability, v3 transactions are + considered replacable (as this is an explicit part of the TRUC request). + The `-mempooltruc` option can be set to either `enforce` to impose the other + requested restrictions, or to `reject` to restore the previous policy of + rejecting v3 transactions entirely. (#28948) + +Wallet +------ + +- The CoinGrinder coin selection algorithm has been introduced to mitigate unnecessary + large input sets and lower transaction costs at high feerates. CoinGrinder + searches for the input set with minimal weight. Solutions found by + CoinGrinder will produce a change output. CoinGrinder is only active at + elevated feerates (default: 30+ sat/vB, based on `-consolidatefeerate`×3). (#27877) + +Mining +------ + +- The `getblocktemplate` RPC method's template request mode now accepts new + parameters "blockmaxsize", "blockmaxweight", and "minfeerate" to override + the configured parameters on a call-by-call basis. Setting these differently + from their defaults will disable the internal template caching for now, so + may be less efficient if you have multiple applications using + getblocktemplate directly. + +- `getblocktemplate` (template request mode) also will now accept + "skip_validity_test" in the list of client "capabilities". If this is + specified, the internal template validity safety check is skipped, and the + new template (if one isn't already cached) will not be cached for future + calls. It is recommended that this feature is not used unless you plan to + follow up with a template proposal getblocktemplate call (defined in BIP 23). + +Updated RPCs +------------ + +- `disconnectnode` now supports disconnecting by IP (without specifying a port + number or subnet). + +- `getrawaddrman` will no longer include a dummy "mapped_as" nor + "source_mapped_as" when an AS map has not been enabled. + +Updated settings +---------------- + +- The `rpccookieperms` setting has been simplified to values "owner", "group", + or "all". The old octal permissions may still be used, but are deprecated + and may be removed in a future version. + +mempool.dat compatibility +------------------------- + +- The `mempool.dat` file created by -persistmempool or the savemempool RPC will + be written in a new format. This new format includes the obfuscation of + transaction contents to mitigate issues where external programs (such as + anti-virus) attempt to interpret and potentially quarantine the file. + + This new format can not be read by previous software releases. To allow for a + downgrade, a temporary setting `-persistmempoolv1` has been added to fall back + to the legacy format. (#28207) + +Build System +------------ + +- A C++20 capable compiler is now required to build Bitcoin Knots. (#28349) Credits ======= Thanks to everyone who directly contributed to this release: +- 22388o⚡️ +- Aaron Clauson +- Amiti Uttarwar +- Andrew Toth +- Anthony Towns - Antoine Poinsot - Ava Chow +- Brandon Odiwuor +- brunoerg +- Chris Stewart - Cory Fields - dergoegge +- djschnei21 +- Fabian Jahr - fanquake - furszy +- Gloria Zhao +- Greg Sanders - Hennadii Stepanov +- Hernan Marino +- iamcarlos94 +- ismaelsadeeq +- Jadi +- Jameson Lopp +- Jesse Barton +- John Moffett - Jon Atack -- laanwj +- josibake +- jrakibi +- Justin Dhillon +- Kashif Smith +- kevkevin +- Kristaps Kaupe +- L0la L33tz - Luke Dashjr +- Lőrinc +- marco - MarcoFalke +- Mark Friedenbach +- Marnix +- Martin Leitner-Ankerl +- Martin Zumsande +- Matt Corallo +- Max Edwards +- Murch +- muxator +- naiyoma - nanlour +- Nikodemas Tuckus +- ns-xvrn +- pablomartin4btc +- Peter Todd +- Pieter Wuille +- Richard Myers +- Roman Zeyde +- Ryan Ofsky +- Sebastian Falbesoner +- Sergi Delgado Segura - Sjors Provoost +- stickies-v +- stratospher +- Suhas Daftuar +- Supachai Kheawjuy +- TheCharlatan +- UdjinM6 +- Vasil Dimov +- w0xlt - willcl-ark - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). +- Wladimir J. van der Laan