Skip to content

Releases: tradecraftio/tradecraft

New release v27-40537

03 May 21:47
Compare
Choose a tag to compare

Freicoin version v27-40537 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v27-40537

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/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

libfreicoinconsensus

  • libfreicoinconsensus is deprecated and will be removed for v28. This library has existed for nearly 10 years with very little known uptake or impact. It has become a maintenance burden.

    The underlying functionality does not change between versions, so any users of the library can continue to use the final release indefinitely, with the understanding that merge mining is its final consensus update.

    In the future, libfreicoinkernel will provide a much more useful API that is aware of the UTXO set, and therefore be able to fully validate transactions and blocks. (bitcoin/bitcoin#29189)

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 XOR'ing of transaction contents to mitigate issues where external programs (such as anti-virus) attempt to interpret and potentially modify 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. (bitcoin/bitcoin#28207)

P2P and network changes

  • Support for serving compatibility (non-auxpow) blocks and headers to peers older than v13.2.4-11864 has been removed. Due to the difficulty transition, any peer which has not upgraded to a merge-mining aware release of Freicoin (v13.2.4-11864 or later) is vulnerable to hashrate-based attacks against its view of the blockchain. In addition, the protocol cleanup hard-fork is scheduled to activate later this year, which will permanently fork older clients off the network anyway.

    If you are running an older version of Freicoin, it is recommended that upgrade immediately. If for some reason you must keep the older version running, it is recommended that you firewall it by having it only connect to a v26.1-39475 node, which still supports serving non-auxpow block headers to unupgraded network peers.

  • BIP324 v2 transport is now enabled by default. It remains possible to disable v2 by running with -v2transport=0. (bitcoin/bitcoin#29347)

  • Manual connection options (-connect, -addnode and -seednode) will now follow -v2transport to connect with v2 by default. They will retry with v1 on failure. (bitcoin/bitcoin#29058)

  • 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 removes 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. (bitcoin/bitcoin#28956)

Mempool Policy Changes

  • Opt-in Topologically Restricted Until Confirmation (TRUC) Transactions policy (aka v3 transaction policy) is available for use on test networks when -acceptnonstdtxn=1 is set. By setting the transaction version number to 3, TRUC transactions request the application of limits on spending of their unconfirmed outputs. These restrictions simplify the assessment of incentive compatibility of accepting or replacing TRUC transactions, thus ensuring any replacements are more profitable for the node and making fee-bumping more reliable. TRUC transactions are currently nonstandard and can only be used on test networks where the standardness rules are relaxed or disabled (e.g. with -acceptnonstdtxn=1). (bitcoin/bitcoin#28948)

External Signing

  • Support for external signing on Windows has been disabled. It will be re-enabled once the underlying dependency (Boost Process), has been replaced with a different library. (bitcoin/bitcoin#28967)

Updated RPCs

  • The addnode RPC now follows the -v2transport option (now on by default, see above) for making connections. It remains possible to specify the transport type manually with the v2transport argument of addnode. (bitcoin/bitcoin#29239)

Build System

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+ kria/vB, based on -consolidatefeerate×3). (bitcoin/bitcoin#27877)

  • The Branch And Bound coin selection algorithm will be disabled when the subtract fee from outputs feature is used. (bitcoin/bitcoin#28994)

  • If the birth time of a descriptor is detected to be later than the first transaction involving that descriptor, the birth time will be reset to the earlier time. (bitcoin/bitcoin#28920)

Low-level changes

Pruning

  • When pruning during initial block download, more blocks will be pruned at each flush in order to speed up the syncing of such nodes. (bitcoin/bitcoin#20827)

Init

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
  • Jameson Lopp
  • Jesse Barton
  • John Moffett
  • Jon Atack
  • 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
  • Max Edwards
  • Murch
  • muxator
  • naiyoma
  • Nikodemas Tuckus
  • ns-xvrn
  • pablomartin4btc
  • Peter Todd
  • Pieter Wuille
  • Richard Myers
  • Roman Zeyde
  • Russell Yanofsky
  • Ryan Ofsky
  • Sebastian Falbesoner
  • Sergi Delgado Segura
  • Sjors Provoost
  • stickies-v
  • stratospher
  • Supachai Kheawjuy
  • TheCharlatan
  • UdjinM6
  • Vasil Dimov
  • w0xlt
  • willcl-ark

As well as to everyone that helped with translations on Transifex.

New release v26.1-39475

09 Apr 01:35
Compare
Choose a tag to compare

Freicoin version v26.1-39475 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v26.1-39475

This release includes various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:

https://github.com/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

Wallet

  • #28994 wallet: skip BnB when SFFO is enabled
  • #28920 wallet: birth time update during tx scanning
  • #29176 wallet: Fix use-after-free in WalletBatch::EraseRecords
  • #29510 wallet: getrawchangeaddress and getnewaddress failures should not affect keypools for descriptor wallets

RPC

  • #29003 rpc: fix getrawtransaction segfault
  • #28784 rpc: keep .cookie file if it was not generated

Logs

  • #29227 log mempool loading progress

P2P and network changes

  • #29200 net: create I2P sessions using both ECIES-X25519 and ElGamal encryption
  • #29412 p2p: Don't process mutated blocks
  • #29524 p2p: Don't consider blocks mutated if they don't connect to known prev block

Build

  • #29127 Use hardened runtime on macOS release builds.
  • #29195 build: Fix -Xclang -internal-isystem option

CI

  • #28992 ci: Use Ubuntu 24.04 Noble for asan,tsan,tidy,fuzz
  • #29080 ci: Set HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK to avoid unrelated failures
  • #29610 ci: Fix "macOS native" job

Miscellaneous

  • #28391 refactor: Simplify CTxMempool/BlockAssembler fields, remove some external mapTx access
  • #29179 test: wallet rescan with reorged parent + IsFromMe child in mempool
  • #28791 snapshots: don't core dump when running -checkblockindex after loadtxoutset
  • #29357 test: Drop x modifier in fsbridge::fopen call for MinGW builds
  • #29529 fuzz: restrict fopencookie usage to Linux & FreeBSD

Credits

Thanks to everyone who directly contributed to this release:

  • dergoegge
  • fanquake
  • furszy
  • glozow
  • Greg Sanders
  • Hennadii Stepanov
  • Jon Atack
  • MarcoFalke
  • Mark Friedenbach
  • Martin Zumsande
  • Murch
  • Roman Zeyde
  • stickies-v
  • UdjinM6

As well as to everyone that helped with translations on Transifex.

New backports release v25.2-37636

07 Apr 05:12
Compare
Choose a tag to compare

Freicoin version v25.2-37636 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v25.2-37636

This release includes various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:

https://github.com/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

Gui

  • gui#774 Fix crash on selecting "Mask values" in transaction view

RPC

  • #29003 rpc: fix getrawtransaction segfault

Wallet

  • #29176 wallet: Fix use-after-free in WalletBatch::EraseRecords
  • #29510 wallet: getrawchangeaddress and getnewaddress failures should not affect keypools for descriptor wallets

P2P and network changes

  • #29412 p2p: Don't process mutated blocks
  • #29524 p2p: Don't consider blocks mutated if they don't connect to known prev block

Credits

Thanks to everyone who directly contributed to this release:

  • dergoegge
  • Greg Sanders
  • MarcoFalke
  • Mark Friedenbach
  • Martin Zumsande
  • Sebastian Falbesoner
  • UdjinM6

As well as to everyone that helped with translations on Transifex.

New release v26.0.2-39498

27 Dec 07:47
Compare
Choose a tag to compare

Freicoin version v26.0.2-39498 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v26.0.2-39498

This release includes various bug fixes and compatibility improvements related to the stratum mining subsystem.

Please report bugs using the issue tracker at GitHub:

https://github.com/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

There are no notable, user-facing changes between this release and the prior release in this series, v26.0.1-39423. However, in the process of fixing build errors when compiling from within Microsoft Visual Studio, which is now supported, a number of logic errors and undefined behavior conditions were uncovered and fixed.

The undefined behavior related to popping from an empty stack, which is then deallocated. With the standard template library used in the release builds, this is not a problem, but it does produce a memory access violation when compiled with Microsoft Visual Studio. This instance of undefined behavior is now fixed, enabling Freicoin to be compiled and run natively from within Microsoft Visual Studio, without the cross compilation infrastructure used to generate release builds.

Additionally, the proper locks are now taken in the stratum mining subsystem before accessing shared resources, such as the current chain state. In the unlikely event of a data race this could have led to stability issues, although the shared state is updated so infrequently that it is not surprising that these bugs have never been encountered in the wild. Nevertheless, upgrading to this release is recommended for all users.

Credits

Thanks to everyone who directly contributed to this release:

  • Mark Friedenbach

As well as to everyone that helped with translations on Transifex.

New release v26.0.1-39423

23 Dec 09:13
Compare
Choose a tag to compare

Freicoin version v26.0.1-39423 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v26.0.1-39423

This release includes various bug fixes and compatibility improvements related to the stratum mining subsystem.

Please report bugs using the issue tracker at GitHub:

https://github.com/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

Stratum mining system

This release includes two alterations to the stratum mining subsystem to better support the Apollo BTC home miner. Specifically, the Apollo BTC miner does not support job IDs longer than 64 characters, and expects the stratum server to return a mining.set_difficulty notification upon first connect, even before the miner provides its authorization credentials.

This release modifies the stratum mining subsystem to use shorter job IDs and to immediately return a mining.set_difficulty notification when a new miner connects to the stratum server. The Apollo BTC miner is the only known hardware that is affected by this change. All other currently supported hardware should continue to work as before.

Short job IDs

Some mining hardware, notably the Apollo BTC miner, does not support job IDs longer than 64 charactrs. While job IDs generated by Tradecraft are always 64 characters in length, these job IDs are used by the Bitcoin Core with stratum server and merge mining patches applied release binaries to produce jobs with IDs longer than 64 characters.

This release modifies the Tradecraft stratum mining subsystem to switch to shorter job IDs, only 16 characters in length. As these job IDs are hex-encoded, this allows for 64 bits of entropy, which would require close to 2^32 concurrent work units before collisions become an issue. Or with more realistic numbers, 1000 concurrent work units would have a 1 in 2^54 chance of collision with the next generated work unit, which is a negligible risk.

Difficulty notification upon initial connection

Some mining hardware, notably the Apollo BTC miner, require the stratum server to return a mining.set_difficulty notification upon first connect, even before the miner provides its authorization credentials. This release modifies the Tradecraft stratum mining subsystem to immediately generate a mining.set_difficulty notification when a new miner connects to the stratum server.

This reported difficulty will be immediately overridden by the actual work unit returned once the miner provides its authorization credentials, however this change in behavior allows the Apollo BTC miner to connect to Tradecraft stratum servers without requiring any changes to the miner firmware, and should be understood by other mining hardware as well.

Configurable minimum mining diffculty

For protection against denial of service attacks, the Tradecraft stratum mining subsystem will not generate work units with too low of a difficulty. This release adds a new configuration option, -miningmindifficulty, which allows the minimum difficulty to be configured. The default value is 1000, which means that a single mining unit with 1 TH/s of hashing power will be able to generate a share every few seconds seconds, on average.

The minimum difficulty can be disabled entirely with a value of 0, however this is not recommended as it will make the stratum server vulnerable to denial of service attacks.

Expose getauxdifficulty RPC in debug console

Due to a bug, in prior releases the getauxdifficulty RPC was not available to be called from the debug console. This release fixes that bug, and user may now call getauxdifficulty from within the GUI debug console.

Credits

Thanks to everyone who directly contributed to this release:

  • Mark Friedenbach

As well as to everyone that helped with translations on Transifex.

New release v26-39408

12 Dec 09:07
Compare
Choose a tag to compare

Freicoin version v26-39408 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v26-39408

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/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

P2P and network changes

  • Experimental support for the v2 transport protocol defined in BIP324 was added. It is off by default, but when enabled using -v2transport it will be negotiated on a per-connection basis with other peers that support it too. The existing v1 transport protocol remains fully supported.

  • Nodes with multiple reachable networks will actively try to have at least one outbound connection to each network. This improves individual resistance to eclipse attacks and network level resistance to partition attacks. Users no longer need to perform active measures to ensure being connected to multiple enabled networks. (bitcoin/bitcoin#27213)

Pruning

  • When using assumeutxo with -prune, the prune budget may be exceeded if it is set lower than 1100MB (i.e. MIN_DISK_SPACE_FOR_BLOCK_FILES * 2). Prune budget is normally split evenly across each chainstate, unless the resulting prune budget per chainstate is beneath MIN_DISK_SPACE_FOR_BLOCK_FILES in which case that value will be used. (bitcoin/bitcoin#27596)

Updated RPCs

  • Setting -rpcserialversion=0 is deprecated and will be removed in a future release. It can currently still be used by also adding the -deprecatedrpc=serialversion option. (bitcoin/bitcoin#28448)

  • The hash_serialized_2 value has been removed from gettxoutsetinfo since the value it calculated contained a bug and did not take all data into account. It is superseded by hash_serialized_3 which provides the same functionality but serves the correctly calculated hash. (bitcoin/bitcoin#28685)

  • New fields transport_protocol_type and session_id were added to the getpeerinfo RPC to indicate whether the v2 transport protocol is in use, and if so, what the session id is.

  • A new argument v2transport was added to the addnode RPC to indicate whether a v2 transaction connection is to be attempted with the peer.

Changes to wallet related RPCs can be found in the Wallet section below.

New RPCs

  • loadtxoutset has been added, which allows loading a UTXO snapshot of the format generated by dumptxoutset. 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 freicoind instance that is current with the network tip in a matter of minutes rather than hours. UTXO snapshot are typically obtained via third-party sources (HTTP, torrent, etc.) which is reasonable since their contents are always checked by hash.

    You can find more information on this process in the assumeutxo design document (https://github.com/bitcoin/bitcoin/blob/master/doc/design/assumeutxo.md).

  • getchainstates has been added to aid in monitoring the assumeutxo sync process.

  • 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. (bitcoin/bitcoin#27501)

  • A new RPC, submitpackage, has been added. It can be used to submit a list of raw hex transactions to the mempool to be evaluated as a package using consensus and mempool policy rules. These policies include package CPFP, allowing a child with high fees to bump a parent below the mempool minimum feerate (but not minimum relay feerate). (bitcoin/bitcoin#27609)

    • Warning: successful submission does not mean the transactions will propagate throughout the network, as package relay is not supported.

    • Not all features are available. The package is limited to a child with all of its unconfirmed parents, and no parent may spend the output of another parent. Also, package RBF is not supported. Refer to doc/policy/packages.md for more details on package policies and limitations.

    • This RPC is experimental. Its interface may change.

  • A new RPC 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. (bitcoin/bitcoin#27511)

  • A new importmempool RPC has been added. It loads a valid mempool.dat file and attempts to add its contents to the mempool. This can be useful to import mempool data from another node without having to modify the datadir contents and without having to restart the node. (bitcoin/bitcoin#27460)

    • Warning: Importing untrusted files is dangerous, especially if metadata from the file is taken over.

    • If you want to apply fee deltas, it is recommended to use the getprioritisedtransactions and prioritisetransaction RPCs instead of the apply_fee_delta_priority option to avoid double-prioritising any already-prioritised transactions in the mempool.

Updated settings

  • freicoind and freicoin-qt will now raise an error on startup if a datadir that is being used contains a freicoin.conf file that will be ignored, which can happen when a datadir= line is used in a freicoin.conf file. The error message is just a diagnostic intended to prevent accidental misconfiguration, and it can be disabled to restore the previous behavior of using the datadir while ignoring the freicoin.conf contained in it. (bitcoin/bitcoin#27302)

  • Passing an invalid -debug, -debugexclude, or -loglevel logging configuration option now raises an error, rather than logging an easily missed warning. (bitcoin/bitcoin#27632)

Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.

Tools and Utilities

  • A new freicoinconsensus_verify_script_with_spent_outputs function is available in libconsensus which optionally accepts the spent outputs of the transaction being verified.

Wallet

  • Wallet loading has changed in this release. Wallets with some corrupted records that could be previously loaded (with warnings) may no longer load. For example, wallets with corrupted address book entries may no longer load. If this happens, it is recommended load the wallet in a previous version of Freicoin and import the data into a new wallet. Please also report an issue to help improve the software and make wallet loading more robust in these cases. (bitcoin/bitcoin#24914)

  • The gettransaction, listtransactions, listsinceblock RPCs now return the abandoned field for all transactions. Previously, the "abandoned" field was only returned for sent transactions. (bitcoin/bitcoin#25158)

  • The listdescriptors, decodepst and similar RPC methods now show h rather than apostrophe (') to indicate hardened derivation. This does not apply when using the private parameter, which matches the marker used when descriptor was generated or imported. Newly created wallets use h. This change makes it easier to handle descriptor strings manually. E.g. the importdescriptors RPC call is easiest to use h as the marker: '["desc": ".../0h/..."]'. With this change listdescriptors will use h, so you can copy-paste the result, without having to add escape characters or switch ' to 'h' manually. Note that this changes the descriptor checksum. For legacy wallets the hdkeypath field in getaddressinfo is unchanged, nor is the serialization format of wallet dumps. (bitcoin/bitcoin#26076)

  • The getbalances RPC now returns a lastprocessedblock JSON object which contains the wallet's last processed block hash and height at the time the balances were calculated. This result shouldn't be cached because importing new keys could invalidate it. (bitcoin/bitcoin#26094)

  • The gettransaction RPC now returns a lastprocessedblock JSON object which contains the wallet's last processed block hash and height at the time the transaction information was generated. (bitcoin/bitcoin#26094)

  • The getwalletinfo RPC now returns a lastprocessedblock JSON object which contains the wallet's last processed block hash and height at the time the wallet information was generated. (bitcoin/bitcoin#26094)

  • Coin selection and transaction building now accounts for unconfirmed low-feerate ancestor transactions. When it is necessary to spend unconfirmed outputs, the wallet will add fees to e...

Read more

New backports release v23.2-33198

12 Dec 08:54
Compare
Choose a tag to compare

Freicoin version v23.2-33198 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v23.2-33198

This release includes various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:

https://github.com/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on Mac) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

P2P and network changes

Build system

Miscellaneous

Credits

Thanks to everyone who directly contributed to this release:

  • Anthony Towns
  • Hennadii Stepanov
  • MacroFake
  • Mark Friedenbach
  • Martin Zumsande
  • Michael Ford
  • Suhas Daftuar

As well as to everyone that helped with translations on Transifex.

New backports release v24.2-35816

12 Dec 08:55
Compare
Choose a tag to compare

Freicoin version v24.2-35816 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v24.2-35816

This release includes various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:

https://github.com/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on Mac) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

Fees

RPC and other APIs

Build System

CI

Miscellaneous

Credits

Thanks to everyone who directly contributed to this release:

  • Abubakar Sadiq Ismail
  • Hennadii Stepanov
  • Marco Falke
  • Mark Friedenbach
  • Michael Ford
  • Pieter Wuille

As well as to everyone that helped with translations on Transifex.

New release v25.1-37601

12 Dec 08:57
Compare
Choose a tag to compare

Freicoin version v25.1-37601 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v25.1-37601

This release includes various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:

https://github.com/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

P2P

Fees

RPC

Rest

Wallet

Build

Gui

Miscellaneous

CI

Credits

Thanks to everyone who directly contributed to this release:

  • Abubakar Sadiq Ismail
  • Andrew Chow
  • Bruno Garcia
  • Gregory Sanders
  • Hennadii Stepanov
  • MacroFake
  • Mark Friedenbach
  • Matias Furszyfer
  • Michael Ford
  • Pieter Wuille
  • stickies-v
  • Will Clark

As well as to everyone that helped with translations on Transifex.

New release v25-37561

12 Dec 08:52
Compare
Choose a tag to compare

Freicoin version v25-37561 is now available from:

https://github.com/tradecraftio/tradecraft/releases/tag/v25-37561

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/tradecraftio/tradecraft/issues

To receive security and update notifications, please subscribe to:

https://tradecraft.groups.io/g/announce/

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/Freicoin-Qt (on macOS) or freicoind/freicoin-qt (on Linux).

Upgrading directly from a version of Freicoin 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 Freicoin are generally supported.

Compatibility

Freicoin is supported and extensively tested on operating systems using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Freicoin should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Freicoin on unsupported systems.

Notable changes

New RPCs

  • The scanblocks RPC returns the relevant blockhashes from a set of descriptors by scanning all blockfilters in the given range. It can be used in combination with the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note that this functionality can only be used if a compact block filter index (-blockfilterindex=1) has been constructed by the node. (bitcoin/bitcoin#23549)

Updated RPCs

  • All JSON-RPC methods accept a new named parameter called args that can contain positional parameter values. This is a convenience to allow some parameter values to be passed by name without having to name every value. The python test framework and freicoin-cli tool both take advantage of this, so for example:
freicoin-cli -named createwallet wallet_name=mywallet load_on_startup=1

Can now be shortened to:

freicoin-cli -named createwallet mywallet load_on_startup=1
  • 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. (bitcoin/bitcoin#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, 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 (bitcoin/bitcoin#26646).

  • decodescript may now infer a Miniscript descriptor under P2WSH context if it is not lacking information. (bitcoin/bitcoin#27037)

  • finalizepsbt is now able to finalize a transaction with inputs spending Miniscript-compatible P2WSH scripts. (bitcoin/bitcoin#24149)

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. (bitcoin/bitcoin#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, Freicoin will now return an error at startup. (bitcoin/bitcoin#25574)

  • Ports specified in -port and -rpcport options are now validated at startup. Values that previously worked and were considered valid can now result in errors. (bitcoin/bitcoin#22087)

  • 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 Freicoin has begun its shutdown sequence. (bitcoin/bitcoin#23395)

Wallet

  • The minconf option, which allows a user to specify the minimum number of confirmations a UTXO being spent has, and the maxconf option, which allows specifying the maximum number of confirmations, have been added to the following RPCs in #25375:

    • fundrawtransaction
    • send
    • walletcreatefundedpsbt
    • sendall
  • Added a new next_index field in the response in listdescriptors to have the same format as importdescriptors. (bitcoin/bitcoin#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). (bitcoin/bitcoin#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. (bitcoin/bitcoin#25957)

  • RPC unloadwallet now fails if a rescan is in progress. (bitcoin/bitcoin#26618)

  • Wallet passphrases may now contain null characters. Prior to this change, only characters up to the first null character were recognized and accepted. (bitcoin/bitcoin#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. (bitcoin/bitcoin#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 freicoind with the configuration option -deprecatedrpc=walletwarningfield. (bitcoin/bitcoin#27279)

  • Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (bitcoin/bitcoin#24149)

GUI changes

REST

  • A new /rest/deploymentinfo endpoint has been added for fetching various state info regarding deployments of consensus changes. (bitcoin/bitcoin#25412)

Binary verification

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. (bitcoin/bitcoin#26628)

  • RPC listsinceblock now accepts an optional label argument to fetch incoming transactions having the specified label. (bitcoin/bitcoin#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. (bitcoin/bitcoin#26213)

Credits

Thanks to everyone who directly contributed to this release:

  • 0xb10c
  • 721217.xyz
  • amadeuszpawlik
  • Amiti Uttarwar
  • Andrew Chow
  • Andrew Toth
  • Anthony Towns
  • Antoine Poinsot
  • Aurèle Oulès
  • Ben Woosley
  • Bitcoin Hodler
  • brunoerg
  • Bushstar
  • Carl Dong
  • Chris Geihsler
  • Cory Fields
  • David Gumberg
  • dergoegge
  • Dhruv Mehta
  • Dimitris Tsapakidis
  • dougEfish
  • Douglas Chimento
  • ekzyis
  • Elichai Turkel
  • Ethan Heilman
  • Fabian Jahr
  • FractalEncrypt
  • furszy
  • Gleb Naumenko
  • glozow
  • Greg Sanders
  • Hennadii Stepanov
  • hernanmarino
  • ishaanam
    ...
Read more