mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-12 19:20:42 +02:00
doc/release-notes: Update for Bitcoin Knots 25.1.knots20231115
This commit is contained in:
parent
85dde74255
commit
5961e01c91
@ -1,20 +1,20 @@
|
||||
25.1 Release Notes
|
||||
==================
|
||||
|
||||
Bitcoin Core version 25.1 is now available from:
|
||||
Bitcoin Knots version 25.1.knots20231115 is now available from:
|
||||
|
||||
<https://bitcoincore.org/bin/bitcoin-core-25.1/>
|
||||
<https://bitcoinknots.org/files/25.x/25.1.knots20231115/>
|
||||
|
||||
This release includes various bug fixes and performance
|
||||
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/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
|
||||
==============
|
||||
@ -24,85 +24,540 @@ 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, macOS 10.15+, 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 10.15+, and Windows 7 and newer. It is not recommended to use
|
||||
Bitcoin Knots on unsupported systems.
|
||||
|
||||
Known Bugs
|
||||
==========
|
||||
|
||||
In various locations, including the GUI's transaction details dialog, transaction
|
||||
virtual sizes may not account for an unusually high number of sigops (ie, as
|
||||
determined by the `-bytespersigop` policy). This could result in reporting a
|
||||
lower virtual size than is actually used for mempool or mining purposes.
|
||||
|
||||
In the interest of time, this release does not include updated translations.
|
||||
Please open an issue on GitHub if this is of particular importance to you or
|
||||
anyone you know. If nobody expresses interest in localization, it may continue
|
||||
to be skipped going forward.
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
### P2P
|
||||
Security vulnerabilities fixed
|
||||
------------------------------
|
||||
|
||||
- #27626 Parallel compact block downloads, take 3
|
||||
- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED
|
||||
Several security issues (CVEs CVE-2023-40257, CVE-2023-40258, and CVE-2023-40259)
|
||||
were identified in the extended `rpcauth` wallet-restriction syntax, which is
|
||||
intended to enable semi-trusted local applications using the Bitcoin Knots API to
|
||||
access only specific wallets (or none at all) and not others. The full details of
|
||||
these issues will be disclosed at a future time, but they have all been fixed in
|
||||
this release.
|
||||
|
||||
### Fees
|
||||
P2P and network changes
|
||||
-----------------------
|
||||
|
||||
- #27622 Fee estimation: avoid serving stale fee estimate
|
||||
- To address a potential denial-of-service, the logic to download headers from peers
|
||||
has been reworked. This is particularly relevant for nodes starting up for the
|
||||
first time (or for nodes which are starting up after being offline for a long time).
|
||||
|
||||
### RPC
|
||||
Whenever headers are received from a peer that have a total chainwork that is either
|
||||
less than the node's `-minimumchainwork` value or is sufficiently below the work at
|
||||
the node's tip, a "presync" phase will begin, in which the node will download the
|
||||
peer's headers and verify the cumulative work on the peer's chain, prior to storing
|
||||
those headers permanently. Once that cumulative work is verified to be sufficiently high,
|
||||
the headers will be redownloaded from that peer and fully validated and stored.
|
||||
|
||||
- #27727 rpc: Fix invalid bech32 address handling
|
||||
This may result in initial headers sync taking longer for new nodes starting up for
|
||||
the first time, both because the headers will be downloaded twice, and because the effect
|
||||
of a peer disconnecting during the presync phase (or while the node's best headers chain has less
|
||||
than `-minimumchainwork`), will result in the node needing to use the headers presync mechanism
|
||||
with the next peer as well (downloading the headers twice, again). (#25717)
|
||||
|
||||
### Rest
|
||||
- Enable parallel compact block downloads to mitigate temporary stalls from a slow peer. (#27626)
|
||||
|
||||
- #27853 rest: fix crash error when calling /deploymentinfo
|
||||
- #28551 http: bugfix: allow server shutdown in case of remote client disconnection
|
||||
- The rate limit on transaction relay has been doubled to 14 transactions per
|
||||
second (35 tx/s for outbound connections) to better adapt to present network
|
||||
conditions. (#28592)
|
||||
|
||||
### Wallet
|
||||
- Transactions of non-witness size 65 and above are now allowed by mempool
|
||||
and relay policy. This is to better reflect the actual afforded protections
|
||||
against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265)
|
||||
|
||||
- #28038 wallet: address book migration bug fixes
|
||||
- #28067 descriptors: do not return top-level only funcs as sub descriptors
|
||||
- #28125 wallet: bugfix, disallow migration of invalid scripts
|
||||
- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted
|
||||
- With I2P connections, a new, transient address is used for each outbound
|
||||
connection if `-i2pacceptincoming=0`. (#25355)
|
||||
|
||||
### Build
|
||||
- A new net permission `forceinbound` (set with `-whitelist=forceinbound@...`
|
||||
or `-whitebind=forceinbound@...`) is introduced that extends `noban` permissions.
|
||||
Inbound connections from hosts protected by `forceinbound` will now be more
|
||||
likely to connect even if `maxconnections` is reached and the node's inbound
|
||||
slots are full. This is achieved by attempting to force the eviction of a random,
|
||||
inbound, otherwise unprotected peer. RPC `getpeerinfo` will also now indicate
|
||||
`forced_inbound`. (#27600)
|
||||
|
||||
- #27724 build: disable boost multi index safe mode in debug mode
|
||||
- #28097 depends: xcb-proto 1.15.2
|
||||
- #28543 build, macos: Fix qt package build with new Xcode 15 linker
|
||||
- #28571 depends: fix unusable memory_resource in macos qt build
|
||||
- The `-datacarriersize` policy limit has been updated to match newer style datacarrier
|
||||
transactions. (#28408)
|
||||
|
||||
### Gui
|
||||
- An additional `-datacarriercost` option has also been added to avoid giving the "segwit
|
||||
discount" to aribitrary data (and can be increased to require datacarrier transactions
|
||||
to pay higher fees).
|
||||
|
||||
- gui#751 macOS, do not process actions during shutdown
|
||||
- The spam filters limiting smart contract code sizes for pre-Segwit and Segwit
|
||||
"v0" scripts have been expanded to also cover Taproot. Since the sizes were
|
||||
inconsistent, the lower size of 1650 which actually had a rationale has been
|
||||
used as the default for this release. The size limit can be adjusted with the
|
||||
new `-maxscriptsize` option. If you know of any legitimate scripts that are
|
||||
larger than the default, please report a bug.
|
||||
|
||||
### Miscellaneous
|
||||
New RPCs
|
||||
--------
|
||||
|
||||
- #28452 Do not use std::vector = {} to release memory
|
||||
- A new `getprioritisedtransactions` RPC has been added. It returns a map of all fee deltas created by the
|
||||
user with prioritisetransaction, indexed by txid. The map also indicates whether each transaction is
|
||||
present in the mempool.
|
||||
|
||||
### CI
|
||||
- `getaddrmaninfo` has been added to view the distribution of addresses in the
|
||||
new and tried table of the node's address manager across different networks
|
||||
(ipv4, ipv6, onion, i2p, cjdns). The RPC returns count of addresses in new
|
||||
and tried table as well as their sum for all networks. (#27511, #28565)
|
||||
|
||||
- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN
|
||||
- #27834 ci: Nuke Android APK task, Use credits for tsan
|
||||
- #27844 ci: Use podman stop over podman kill
|
||||
- #27886 ci: Switch to amd64 container in "ARM" task
|
||||
Updated RPCs
|
||||
------------
|
||||
|
||||
- The `verifychain` RPC will now return `false` if the checks didn't fail,
|
||||
but couldn't be completed at the desired depth and level. This could be due
|
||||
to missing data while pruning, due to an insufficient dbcache or due to
|
||||
the node being shutdown before the call could finish. (#25574)
|
||||
|
||||
- `sendrawtransaction` has a new, optional argument, `maxburnamount` with a default value of `0`.
|
||||
Any transaction containing an unspendable output with a value greater than `maxburnamount` will
|
||||
not be submitted. At present, the outputs deemed unspendable are those with scripts that begin
|
||||
with an `OP_RETURN` code (known as 'datacarriers'), scripts that exceed the maximum script size,
|
||||
and scripts that contain invalid opcodes.
|
||||
|
||||
- The `testmempoolaccept` RPC now returns 2 additional results within the "fees" result:
|
||||
"effective-feerate" is the feerate including fees and sizes of transactions validated together if
|
||||
package validation was used, and also includes any modified fees from prioritisetransaction. The
|
||||
"effective-includes" result lists the wtxids of transactions whose modified fees and sizes were used
|
||||
in the effective-feerate (#26646).
|
||||
|
||||
- `decodescript` may now infer a Miniscript descriptor under P2WSH context if it is not lacking
|
||||
information. (#27037)
|
||||
|
||||
- `finalizepsbt` is now able to finalize a transaction with inputs spending Miniscript-compatible
|
||||
P2WSH scripts. (#24149)
|
||||
|
||||
- The `-deprecatedrpc=softforks` configuration option has been removed. The
|
||||
RPC `getblockchaininfo` no longer returns the `softforks` field, which was
|
||||
previously deprecated in 23.0. (#23508) Information on soft fork status is
|
||||
now only available via the `getdeploymentinfo` RPC.
|
||||
|
||||
- The `deprecatedrpc=exclude_coinbase` configuration option has been removed.
|
||||
The `receivedby` RPCs (`listreceivedbyaddress`, `listreceivedbylabel`,
|
||||
`getreceivedbyaddress` and `getreceivedbylabel`) now always return results
|
||||
accounting for received coins from coinbase outputs, without an option to
|
||||
change that behaviour. Excluding coinbases was previously deprecated in 23.0.
|
||||
(#25171)
|
||||
|
||||
- The `deprecatedrpc=fees` configuration option has been removed. The top-level
|
||||
fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees` are no
|
||||
longer returned by RPCs `getmempoolentry`, `getrawmempool(verbose=true)`,
|
||||
`getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)`.
|
||||
The same fee fields can be accessed through the `fees` object in the result.
|
||||
The top-level fee fields were previously deprecated in 23.0. (#25204)
|
||||
|
||||
- The `getpeerinfo` RPC has been updated with a new `presynced_headers` field,
|
||||
indicating the progress on the presync phase mentioned in the
|
||||
"P2P and network changes" section above.
|
||||
|
||||
- RPC `disconnectnode` now accepts a subnet into `address` argument. (#26576)
|
||||
|
||||
- The output from `getmempoolinfo` is extended to include a `rbf_policy` key
|
||||
briefly describing the current replace-by-fee policy ("never", "optin", or
|
||||
"always").
|
||||
|
||||
Changes to wallet related RPCs can be found in the Wallet section below.
|
||||
|
||||
Build System
|
||||
------------
|
||||
|
||||
- The `--enable-upnp-default` and `--enable-natpmp-default` options
|
||||
have been removed. If you want to use port mapping, you can
|
||||
configure it using a .conf file, or by passing the relevant
|
||||
options at runtime. (#26896)
|
||||
|
||||
Updated settings
|
||||
----------------
|
||||
|
||||
- If the `-checkblocks` or `-checklevel` options are explicitly provided by the
|
||||
user, but the verification checks cannot be completed due to an insufficient
|
||||
dbcache, Bitcoin Knots will now return an error at startup. (#25574)
|
||||
|
||||
- Setting `-blocksonly` will now reduce the maximum mempool memory
|
||||
to 5MB (users may still use `-maxmempool` to override). Previously,
|
||||
the default 300MB would be used, leading to unexpected memory usage
|
||||
for users running with `-blocksonly` expecting it to eliminate
|
||||
mempool memory usage.
|
||||
|
||||
As unused mempool memory is shared with dbcache, this also reduces
|
||||
the dbcache size for users running with `-blocksonly`, potentially
|
||||
impacting performance.
|
||||
- Setting `-maxconnections=0` will now disable `-dnsseed`
|
||||
and `-listen` (users may still set them to override).
|
||||
|
||||
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
|
||||
|
||||
New settings
|
||||
------------
|
||||
|
||||
- The `shutdownnotify` option is used to specify a command to execute synchronously
|
||||
before Bitcoin Knots has begun its shutdown sequence. (#23395)
|
||||
|
||||
- To assist in controlling access to the RPC "cookie" file on multiuser systems, a new
|
||||
`rpccookieperms` setting has been added to set the file permissions mode before
|
||||
writing the access token.
|
||||
|
||||
Wallet
|
||||
------
|
||||
|
||||
- Added a new `next_index` field in the response in `listdescriptors` to
|
||||
have the same format as `importdescriptors` (#26194)
|
||||
|
||||
- RPC `listunspent` now has a new argument `include_immature_coinbase`
|
||||
to include coinbase UTXOs that don't meet the minimum spendability
|
||||
depth requirement (which before were silently skipped). (#25730)
|
||||
|
||||
- Rescans for descriptor wallets are now significantly faster if compact
|
||||
block filters (BIP158) are available. Since those are not constructed
|
||||
by default, the configuration option "-blockfilterindex=1" has to be
|
||||
provided to take advantage of the optimization. This improves the
|
||||
performance of the RPC calls `rescanblockchain`, `importdescriptors`
|
||||
and `restorewallet`. (#25957)
|
||||
|
||||
- RPC `unloadwallet` now fails if a rescan is in progress. (#26618)
|
||||
|
||||
- Wallet passphrases may now contain null characters.
|
||||
Prior to this change, only characters up to the first
|
||||
null character were recognized and accepted. (#27068)
|
||||
|
||||
- Address Purposes strings are now restricted to the currently known values of "send",
|
||||
"receive", and "refund". Wallets that have unrecognized purpose strings will have
|
||||
loading warnings, and the `listlabels` RPC will raise an error if an unrecognized purpose
|
||||
is requested. (#27217)
|
||||
|
||||
- In the `createwallet`, `loadwallet`, `unloadwallet`, and `restorewallet` RPCs, the
|
||||
"warning" string field is deprecated in favor of a "warnings" field that
|
||||
returns a JSON array of strings to better handle multiple warning messages and
|
||||
for consistency with other wallet RPCs. The "warning" field will be fully
|
||||
removed from these RPCs in v26. It can be temporarily re-enabled during the
|
||||
deprecation period by launching bitcoind with the configuration option
|
||||
`-deprecatedrpc=walletwarningfield`. (#27279)
|
||||
|
||||
- Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149)
|
||||
|
||||
- The `-walletrbf` startup option will now default to `true`. The
|
||||
wallet will now default to opt-in RBF on transactions that it creates. (#25610)
|
||||
|
||||
- The `replaceable` option for the `createrawtransaction` and
|
||||
`createpsbt` RPCs will now default to `true`. Transactions created
|
||||
with these RPCs will default to having opt-in RBF enabled. (#25610)
|
||||
|
||||
- The `wsh()` output descriptor was extended with Miniscript support. You can import Miniscript
|
||||
descriptors for P2WSH in a watchonly wallet to track coins, but you can't spend from them using
|
||||
the Bitcoin Core wallet yet.
|
||||
You can find more about Miniscript on the [reference website](https://bitcoin.sipa.be/miniscript/). (#24148)
|
||||
|
||||
- The `tr()` output descriptor now supports multisig scripts through the `multi_a()` and
|
||||
`sortedmulti_a()` functions. (#24043)
|
||||
|
||||
- The `importdescriptors` RPC can now be used to import BIP 93 (codex32) seeds. (#27351)
|
||||
|
||||
- To help prevent fingerprinting transactions created by the Bitcoin Core wallet, change output
|
||||
amounts are now randomized. (#24494)
|
||||
|
||||
- The `listsinceblock`, `listtransactions` and `gettransaction` output now contain a new
|
||||
`parent_descs` field for every "receive" entry. (#25504)
|
||||
|
||||
- A new optional `include_change` parameter was added to the `listsinceblock` command. (#25504)
|
||||
|
||||
- RPC `importaddress` now supports watch-only descriptor wallets.
|
||||
|
||||
- RPC `walletprocesspsbt` return object now includes field `hex` (if the transaction
|
||||
is complete) containing the serialized transaction suitable for RPC `sendrawtransaction`. (#28414)
|
||||
|
||||
- The result of RPC `getaddressinfo` adds an `isactive` key which can be used to determine if
|
||||
the address is derived from the currently active wallet seed. (#27216)
|
||||
|
||||
- RPC `getreceivedbylabel` now returns an error, "Label not found
|
||||
in wallet" (-4), if the label is not in the address book. (#25122)
|
||||
|
||||
Migrating Legacy Wallets to Descriptor Wallets
|
||||
---------------------------------------------
|
||||
|
||||
An experimental RPC `migratewallet` has been added to migrate Legacy (non-descriptor) wallets to
|
||||
Descriptor wallets. More information about the migration process is available in the
|
||||
[documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/managing-wallets.md#migrating-legacy-wallets-to-descriptor-wallets).
|
||||
|
||||
GUI changes
|
||||
-----------
|
||||
|
||||
- The "Mask values" is a persistent option now. (gui#701)
|
||||
|
||||
- The "Mask values" option affects the "Transaction" view now, in addition to the
|
||||
"Overview" one. (gui#708)
|
||||
|
||||
- A new menu item to restore a wallet from a backup file has been added (gui#471).
|
||||
|
||||
- Configuration changes made in the bitcoin GUI (such as the pruning setting,
|
||||
proxy settings, UPNP preferences) are now saved to `<datadir>/settings.json`
|
||||
file rather than to the Qt settings backend (windows registry or unix desktop
|
||||
config files), so these settings will now apply to bitcoind, instead of being
|
||||
ignored. (#15936, gui#602)
|
||||
|
||||
- Also, the interaction between GUI settings and `bitcoin.conf` settings is
|
||||
simplified. Settings from `bitcoin.conf` are now displayed normally in the GUI
|
||||
settings dialog, instead of in a separate warning message ("Options set in this
|
||||
dialog are overridden by the configuration file: -setting=value"). And these
|
||||
settings can now be edited because `settings.json` values take precedence over
|
||||
`bitcoin.conf` values. (#15936)
|
||||
|
||||
REST
|
||||
----
|
||||
|
||||
- A new `/rest/deploymentinfo` endpoint has been added for fetching various
|
||||
state info regarding deployments of consensus changes. (#25412)
|
||||
|
||||
- The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use
|
||||
a query parameter instead of path parameter to specify the result count. The
|
||||
count parameter is now optional, and defaults to 5 for both endpoints. The old
|
||||
endpoints are still functional, and have no documented behaviour change.
|
||||
|
||||
For `/headers`, use
|
||||
`GET /rest/headers/<BLOCK-HASH>.<bin|hex|json>?count=<COUNT=5>`
|
||||
instead of
|
||||
`GET /rest/headers/<COUNT>/<BLOCK-HASH>.<bin|hex|json>` (deprecated)
|
||||
|
||||
For `/blockfilterheaders/`, use
|
||||
`GET /rest/blockfilterheaders/<FILTERTYPE>/<BLOCK-HASH>.<bin|hex|json>?count=<COUNT=5>`
|
||||
instead of
|
||||
`GET /rest/blockfilterheaders/<FILTERTYPE>/<COUNT>/<BLOCK-HASH>.<bin|hex|json>` (deprecated)
|
||||
|
||||
(#24098)
|
||||
|
||||
Binary verification
|
||||
----
|
||||
|
||||
- The binary verification script has been updated. In previous releases it
|
||||
would verify that the binaries had been signed with a single "release key".
|
||||
In this release and moving forward it will verify that the binaries are
|
||||
signed by a _threshold of trusted keys_. For more details and
|
||||
examples, see:
|
||||
https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md
|
||||
(#27358)
|
||||
|
||||
Low-level changes
|
||||
=================
|
||||
|
||||
RPC
|
||||
---
|
||||
|
||||
- The JSON-RPC server now rejects requests where a parameter is specified multiple
|
||||
times with the same name, instead of silently overwriting earlier parameter values
|
||||
with later ones. (#26628)
|
||||
|
||||
- RPC `listsinceblock` now accepts an optional `label` argument
|
||||
to fetch incoming transactions having the specified label. (#25934)
|
||||
|
||||
- Previously `setban`, `addpeeraddress`, `walletcreatefundedpsbt`, methods
|
||||
allowed non-boolean and non-null values to be passed as boolean parameters.
|
||||
Any string, number, array, or object value that was passed would be treated
|
||||
as false. After this change, passing any value except `true`, `false`, or
|
||||
`null` now triggers a JSON value is not of expected type error. (#26213)
|
||||
|
||||
- The `deriveaddresses`, `getdescriptorinfo`, `importdescriptors` and `scantxoutset` commands now
|
||||
accept Miniscript expression within a `wsh()` descriptor. (#24148)
|
||||
|
||||
- The `getaddressinfo`, `decodescript`, `listdescriptors` and `listunspent` commands may now output
|
||||
a Miniscript descriptor inside a `wsh()` where a `wsh(raw())` descriptor was previously returned. (#24148)
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- /dev/fd0
|
||||
- 0xb10c
|
||||
- 721217.xyz
|
||||
- Abubakar Sadiq Ismail
|
||||
- Adam Jonas
|
||||
- akankshakashyap
|
||||
- Ali Sherief
|
||||
- amadeuszpawlik
|
||||
- Amiti Uttarwar
|
||||
- Andreas Kouloumos
|
||||
- Andrew Chow
|
||||
- Andrew Toth
|
||||
- Anthony Towns
|
||||
- Antoine Poinsot
|
||||
- Antoine Riard
|
||||
- Aurèle Oulès
|
||||
- avirgovi
|
||||
- Ayush Sharma
|
||||
- Baas
|
||||
- Ben Woosley
|
||||
- Bitcoin Hodler
|
||||
- BrokenProgrammer
|
||||
- brunoerg
|
||||
- Bruno Garcia
|
||||
- brydinh
|
||||
- Bushstar
|
||||
- Calvin Kim
|
||||
- CAnon
|
||||
- Carl Dong
|
||||
- chinggg
|
||||
- Chris Geihsler
|
||||
- Cory Fields
|
||||
- Daniel Kraft
|
||||
- Daniela Brozzoni
|
||||
- darosior
|
||||
- Dave Scotese
|
||||
- David Bakin
|
||||
- David Gumberg
|
||||
- dergoegge
|
||||
- Dhruv Mehta
|
||||
- Dimitri
|
||||
- Dimitris Tsapakidis
|
||||
- dontbyte
|
||||
- dougEfish
|
||||
- Douglas Chimento
|
||||
- Duncan Dean
|
||||
- ekzyis
|
||||
- Elichai Turkel
|
||||
- Ethan Heilman
|
||||
- eugene
|
||||
- Eunoia
|
||||
- Fabian Jahr
|
||||
- FractalEncrypt
|
||||
- furszy
|
||||
- Gleb Naumenko
|
||||
- glozow
|
||||
- Greg Weber
|
||||
- Gregory Sanders
|
||||
- gruve-p
|
||||
- Hennadii Stepanov
|
||||
- hernanmarino
|
||||
- hiago
|
||||
- Igor Bubelov
|
||||
- ishaanam
|
||||
- ismaelsadeeq
|
||||
- Jacob P.
|
||||
- Jadi
|
||||
- James O'Beirne
|
||||
- Janna
|
||||
- Jarol Rodriguez
|
||||
- Jeff Ruane
|
||||
- Jeffrey Czyz
|
||||
- Jeremy Rand
|
||||
- Jeremy Rubin
|
||||
- Jesse Barton
|
||||
- jessebarton
|
||||
- João Barbosa
|
||||
- JoaoAJMatos
|
||||
- John Moffett
|
||||
- John Newbery
|
||||
- Jon Atack
|
||||
- Jonas Schnelli
|
||||
- jonatack
|
||||
- Joshua Kelly
|
||||
- Josiah Baker
|
||||
- josibake
|
||||
- Juan Pablo Civile
|
||||
- Karl-Johan Alm
|
||||
- kdmukai
|
||||
- KevinMusgrave
|
||||
- kevkevin
|
||||
- Kiminuo
|
||||
- klementtan
|
||||
- Kolby Moroz Liebl
|
||||
- kouloumos
|
||||
- Kristaps Kaupe
|
||||
- Larry Ruane
|
||||
- Leonardo Araujo
|
||||
- Leonardo Lazzaro
|
||||
- Luke Dashjr
|
||||
- MacroFake
|
||||
- Marnix
|
||||
- Martin Leitner-Ankerl
|
||||
- Martin Zumsande
|
||||
- Matias Furszyfer
|
||||
- Matt Whitlock
|
||||
- Matthew Zipkin
|
||||
- Michael Dietz
|
||||
- Michael Folkson
|
||||
- Michael Ford
|
||||
- Miles Liu
|
||||
- mruddy
|
||||
- Murch
|
||||
- Murray Nesbitt
|
||||
- mutatrum
|
||||
- muxator
|
||||
- omahs
|
||||
- Oskar Mendel
|
||||
- Pablo Greco
|
||||
- pablomartin4btc
|
||||
- pasta
|
||||
- Patrick Strateman
|
||||
- Pavol Rusnak
|
||||
- Peter Bushnell
|
||||
- phyBrackets
|
||||
- Pieter Wuille
|
||||
- practicalswift
|
||||
- Pttn
|
||||
- Randall Naar
|
||||
- Randy McMillan
|
||||
- Riahiamirreza
|
||||
- Robert Spigler
|
||||
- Roman Zeyde
|
||||
- Russell O'Connor
|
||||
- Ryan Ofsky
|
||||
- S3RK
|
||||
- Samer Afach
|
||||
- Sebastian Falbesoner
|
||||
- Seibart Nedor
|
||||
- Shashwat
|
||||
- sinetek
|
||||
- Sjors Provoost
|
||||
- Skuli Dulfari
|
||||
- Smlep
|
||||
- sogoagain
|
||||
- SomberNight
|
||||
- Stacie Waleyko
|
||||
- stickies-v
|
||||
- stratospher
|
||||
- Stéphan Vuylsteke
|
||||
- Suhail Saqan
|
||||
- Suhas Daftuar
|
||||
- Suriyaa Sundararuban
|
||||
- t-bast
|
||||
- TakeshiMusgrave
|
||||
- TheCharlatan
|
||||
- Vasil Dimov
|
||||
- Vasil Stoyanov
|
||||
- virtu
|
||||
- W. J. van der Laan
|
||||
- w0xlt
|
||||
- whiteh0rse
|
||||
- Will Clark
|
||||
- William Casarin
|
||||
- Yancy Ribbens
|
||||
- Yusuf Sahin HAMZA
|
||||
|
||||
As well as to everyone that helped with translations on
|
||||
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
|
||||
|
Loading…
Reference in New Issue
Block a user