Skip to content

Latest commit

 

History

History
729 lines (657 loc) · 67.5 KB

File metadata and controls

729 lines (657 loc) · 67.5 KB

v0.7.0

v0.6.2

  • Fix status endpoint regression #7120
  • Allow overwriting blockchain API supplied to clients #7124
  • Add parse_invite_code function in fedimint-client-wasm #7116
  • Expose additional backup metrics via prometheus #7053
  • Fix potential client resource exhaustion #7060

v0.5.1

v0.6.1

Fixes a regression in client DB.

v0.6.0 - On-Chain for Everyone

Fedimint v0.6.0 is here! 🎉

The on-chain wallet is no longer considered "expert-only."

Since v0.4.0, Fedimint developers advised not exposing on-chain deposits to end users, due to limitations on processing deposits in very large (in bytes) on-chain transactions. This limitations has been lifted and on-chain deposits are now safe in all cases.

Some other highlights since our last major (0.5) release:

  • Federation will now reject attempt to reuse ecash blind nonces, preventing possibility of loss of funds even in the event of client-side bugs and data corruption, significantly increasing ecash robustness and funds safety.
  • Fedimint will now query (configurable) external sources for feerate information to improve real time fee estimation.
  • On-chain feerate multiplier have been lowered, as it no longer needs to be as conservative.
  • LN payment events are now tracked, allowing tracking profit and fees statistics.
  • It's now possible to customize LNv2 gateway fees.
  • Client recovery has been optimized and should be faster and use less data.
  • Core lightning gateway is no longer supported.
  • Work has been started on Iroh networking integration
  • Fedimintd should use less memory now.

... and many, many internal changes and improvements. See commit log.

v0.5.0 - Christmas Edition

Fedimint v0.5.0 is here! 🎉

Some highlights since our last major (0.4) release:

  • Tor support for client-federation connections (see Connector enum) (thx @oleonardolima!)
  • Stabilization of v2 of our lightning module. While not being rolled out by default yet integration and testing is encouraged. (thx @joschisan and @m1sterc001guy!)
  • Upgraded rust-bitcoin (and related ecosystem-crates) from 0.30 to 0.32, which should be a stable shelling point for the foreseeable future and leads fewer duplicates dependencies (thx @tvolk131!)
  • Multiple bug fixes that were already backported to 0.3 and 0.4, but came out of refactoring and review work of modules (thx @bradleystachurski and @joschisan!)
  • CI improvements to increase our agility while maintaining compatibility guarantees (thx @dpc and @bradleystachurski!)

As usual, there was lots more maintenance, debugging and integration going on in the background. Big thanks to everyone who contributes getting Fedimint closer to being the go-to, bulletproof community custody tool in Bitcoin!

I also asked GPT to summarize what else happened, ymmv:

Features & Improvements

Lightning Network

  • Preparation for BOLT12 invoice support
  • Enhanced LNv2 module client API cleanup
  • Improved LN module initialization and offline handling
  • Gateway fee configuration improvements
  • Fixed LDK create invoice issues
  • Enhanced LN module thresholds handling

Performance & Optimization

  • Faster consensus synchronization
    • Single session outcome request per session
    • Removed delay in signed session outcomes
  • Optimized Rustls configuration
  • Improved block sync and chain tracking
  • Enhanced self-sync mechanism with checksum verification

Security & Authentication

  • Made sync_to_chain authenticated
  • Added security checks for ciphertext validation
  • Improved secret hash comparison mechanisms

Developer Experience

  • Added structured logging for devimint channel operations
  • Improved cargo and git hash version handling
  • Enhanced debugging tools for consensus issues
  • Better panic messages and logging

Infrastructure

  • Added support for WASM compilation
  • Improved RocksDB implementation
  • Added default BTC RPC environment variables in NixOS module
  • Enhanced gateway registration process
  • Better handling of dependencies and build profiles

Testing & CI

  • Added gateway upgrade tests for LDK gateway
  • Re-enabled LNv2 inter-federation tests
  • Improved test shuffling for better coverage
  • Enhanced upgrade testing framework

These changes appear to focus on improving Lightning Network functionality, system reliability, and developer tooling while maintaining security and performance optimizations.

v0.4.4

v0.4.3

v0.4.2

v0.4.1

This patch release fixes a bug when using esplora bitcoin backend.

Please refer to v0.4.0 release notes for general v0.4 release information.

v0.4.0 - Rotation Station

⚠️ CAUTION ⚠️

Please refer to the upgrade docs for upgrading fedimintd older than 0.4.0. Clients are not effected.

https://github.com/fedimint/fedimint/blob/master/docs/RELEASE_NOTES-v0.4.md

Release Notes

  • Changing peer's DNS names is now possible.
  • On chain deposits are now considered "expert-only" .
  • On chain deposit charge fees by default to counter dust attacks.
  • Wallet client module implements backup and recovery.
  • Wallet client module is robust w.r.t deposit address reuse and rbf transactions.
  • Client reconnection backoff was improved.
  • RBF withdrawal functionality was removed.
  • It's possible to finish DKG (setting up Federation) using only the fedimint-cli tool.

... and many, many internal changes and improvements.

On chain deposits are now considered "expert-only"

Given growing Fedimint usage, Fedimint developers officially recommend applications integrating fedimintd NOT to expose on-chain deposits to the end uses. LN Gateways and Mint guardians are recommended to use fedimint-cli to manage deposits.

In the near future we are planning to implement changes necessary to make on-chain deposits easy to use for all users. For further details, please refer to fedimint#5585.

Changing peer DNS names is now possible

Due to incidents where some Federations lost their guardian's DNS name and were unable to rotate DNS names, implementing a scheme that allows it was prioritized and implemented.

In the mid-term future we are planning to remove the DNS requirement altogether.

Wallet client module rewrite

The wallet client module was updated to accommodate deposit address reuse, rbf deposits, and streamline the backup and restore system.

v0.3.1: Forward, backward, sideward compatibility? II

  • Added Premetheus metrics
  • Utils for fetching meta fields and vetted gateways (fedimint#4856)
  • Minor fixes

What's Changed

  • Backport fix: bump wait_server_status timeout by @bradleystachurski in fedimint#4731
  • [Backport releases/v0.3] chore: add clap version command to all binaries by @fedimint-backports in fedimint#4739
  • [Backport releases/v0.3] chore(devimint): bump lnd polling to 60s by @fedimint-backports in fedimint#4741
  • [Backport releases/v0.3] chore(fedimint-cli): increase wait-block-count to 60s by @fedimint-backports in fedimint#4747
  • [Backport releases/v0.3] chore: make client task group available to modules by @fedimint-backports in fedimint#4770
  • [Backport releases/v0.3] chore: expose try_download_client_config by @fedimint-backports in fedimint#4774
  • chore(metrics): labeled grouped promethus metrics for wallet module (Backport 4697 to releases/v0.3) by @dpc in fedimint#4758
  • chore(metrics): labeled grouped prometehus metrics for wallet module (Backport 4696 to releases/v0.3) by @dpc in fedimint#4759
  • [Backport releases/v0.3] chore(devimint): increase default poll timeout from 30s to 60s by @bradleystachurski in fedimint#4833
  • chore: bump h2 [backport] by @maan2003 in fedimint#4857
  • [Backport releases/v0.3] chore(consensus): log items failing max size validation by @fedimint-backports in fedimint#4902
  • mass backport by @maan2003 in fedimint#4856
  • backport: feat: gateway filter for update_gateway_cache_continuously by @maan2003 in fedimint#4906
  • backport: fix: use u64 for attempts in fedimint retry by @maan2003 in fedimint#4933
  • backport: chore: auto update on list-gateways by @maan2003 in fedimint#4920
  • chore: backport #4876 (update jsonrpsee) by @elsirion in fedimint#4980
  • fix(recovery): can't recover without all server-side modules (backport v0.3) by @dpc in fedimint#4987
  • feat(nix): expose fedimintd NixOS module (v0.3 backport) by @dpc in fedimint#5062
  • chore: bump to v0.3.1-rc.1 by @elsirion in fedimint#5030

Full Changelog: https://github.com/fedimint/fedimint/compare/v0.3.0...v0.3.1

v0.3.0: Forward, backward, sideward compatibility?

Upgrading

fedimintd

  • Stop all federation guardian fedimintds
  • Make a backup of the whole data dir (contains a bunch of JSON files and a database directory)
  • Verify that all fedimintds in the federation are off
  • Upgrade the fedimintd binary through the deployment method of your choice
  • Restart all fedimintds
  • Verify in the admin UI or via fedimint-cli that all of them are online again and making progress producing sessions

Note that, when upgrading from 0.2, you will not get the new Meta module, which otherwise gets added automatically to new setups now. In 0.4 we will add functionality that will allow retroactively adding the module. For compatibility with old clients it is still advised to use the meta_override_url field.

Clients

Just using the new version of the client library should do. There were some rust interface changes, especially around LN gateways, but nothing too major. Reach out on GitHub or Discord if anything is unclear.

Downgrading

Downgrading to previous versions is unsupported and will likely fail.

What's Changed

New Features:

  • Dynamic meta fields through the Meta module
  • Improved load-test-metrics for better performance insights.
  • Capability to pass --auth flag to fedimint-cli dev api.
  • Added recovery tool tests for enhanced reliability.
  • Enhanced LN payments privacy for LND.
  • CLI improvements and more configurable options.
  • Added support to pay a lnurls.
  • Implemented a special case descriptor for single-guardian instances for smaller on-chain transactions.
  • Introduced versioned Gateway API for backward compatibility.
  • Introduced a latency test for restore functions.

Fixes and Updates:

  • Introduced a simplification for always proposing block height and feerate votes.
  • Multiple fixes including singular naming in MintOperationMetaVariant, serialization of enums in snake case for API consistency and adjustment for HTLC processing.
  • Addressing warnings and errors for more robust operations and deployment.
  • Various fixes to ensure compatibility and optimization across different platforms, networking conditions and operational scenarios.
  • Database migrations for consistency and performance.
  • Client-side transaction size checks to prevent unexpected server-side rejections

Chore and Maintenance:

  • Several chores to clean up code, improve build and testing processes, and update dependencies. *Introduction of concurrency and latency optimizations.
  • Documentation improvements including more information on cargo packages and updating READMEs.
  • Refactoring efforts for cleaner and more maintainable code design.

Security:

  • Updated dependencies and code changes to address known vulnerabilities.

Detailed list of PRs:

New Contributors 🎉

Full Changelog: https://github.com/fedimint/fedimint/compare/v0.2.2...v0.3.0

v0.2.2: : Federate all the Things II

This release fixes a lot of bugs, both client authors and federation operators are recommended to upgrade.

Guardian Upgrade Process

We recommend proceeding as follows:

  • Coordinate a time with all guardians
  • Everyone shuts down their fedimintd service
  • Make a backup of the data dir
  • Upgrade fedimintd to v0.2.2 (how depends on the deployment method)
  • Check that the version matches for everyone by running fedimintd version-hash
  • Everyone starts their fedimintd service again

While this is not a consensus upgrade and thus doesn't require coordination we recommend not running different versions of fedimintd together since it is not supported and hasn't been tested.

Highlighted Changes

For the complete set of changes see https://github.com/fedimint/fedimint/commits/v0.2.2/

v0.2.1: Federate all the Things

This is the first version that will stay compatible for a long time and provide an upgrade path into the indefinite future.