Skip to content

Commit

Permalink
doc/release-notes: Update for Bitcoin Knots 27.1.knots20240621
Browse files Browse the repository at this point in the history
  • Loading branch information
luke-jr committed Jun 22, 2024
1 parent f554652 commit 09d69b9
Showing 1 changed file with 172 additions and 65 deletions.
237 changes: 172 additions & 65 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
@@ -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:

<https://bitcoincore.org/bin/bitcoin-core-27.1/>
<https://bitcoinknots.org/files/27.x/27.1.knots20240621/>

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:

<https://github.com/bitcoin/bitcoin/issues>
<https://github.com/bitcoinknots/bitcoin/issues>

To receive security and update notifications, please subscribe to:

<https://bitcoincore.org/en/list/announcements/join/>
<https://bitcoinknots.org/list/announcements/join/>

How to Upgrade
==============
Expand All @@ -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

0 comments on commit 09d69b9

Please sign in to comment.