Releases: fedimint/fedimint
v0.3.1-rc.0
release candidate v0.3.1-rc.0
v0.3.0: Forward, backward, sideward compatibility?
Upgrading
fedimintd
- Stop all federation guardian
fedimintd
s - Make a backup of the whole data dir (contains a bunch of JSON files and a
database
directory) - Verify that all
fedimintd
s in the federation are off - Upgrade the
fedimintd
binary through the deployment method of your choice - Restart all
fedimintd
s - 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:
- chore: move to self-published version of ldk-node by @elsirion in #3719
- chore: ensure prefix
fedimint
on all published crates by @elsirion in #3721 - feat: improved load-test-metrics by @douglaz in #3717
- Fixes I had to apply to 0.2 to be able to release Fedimint on crates.io by @elsirion in #3729
- chore: suppress tx already submitted error logs by @bradleystachurski in #3733
- feat: read git hash from .cargo_vcs_info.json if compiling release by @elsirion in #3735
- fix:
MintOperationMetaVariant
uses singular name by @elsirion in #3734 - fix(cln-extension): avoid holding the sender lock during HTLC processing by @douglaz in #3742
- fix: use 33 byte tweaks in recovery tool parser by @bradleystachurski in #3746
- chore: ignore uncommitted dbtx writes for endpoint audits by @bradleystachurski in #3756
- fedimint-client secret derivation path in fedimint-CLI by @shaurya947 in #3740
- fix(api): serialize enums in snake case by @elsirion in #3761
- fix: give gateway test more time to send/receive money by @elsirion in #3762
- chore(deps): bump cachix/install-nix-action from 23 to 24 by @dependabot in #3769
- chore(deps): bump cachix/cachix-action from 12 to 13 by @dependabot in #3770
- simplification: always propose block height and feerate votes by @joschisan in #3758
- fix: avoid warnings on recovery from mid session crash by @joschisan in #3775
- chore: add repo link to
Cargo.toml
of published crates by @elsirion in #3776 - fix: nix advisory db update by @douglaz in #3780
- Use IPV4 in tls-download-mutinynet.sh by @TonyGiorgio in #3783
- feat: can pass --auth flag to
fedimint-cli dev api
by @justinmoon in #3749 - feat: added recoverytool tests by @douglaz in #3777
- fix: dont require muc.xmpp as a traefik router by @otech47 in #3800
- fix 'withdraw all' feature by @justinmoon in #3755
- chore: lower cpu use when consensus is running locally in dev profile by @dpc in #3801
- fix: allow
mainnet
as a valid network by @douglaz in #3811 - fix: only send authentication to one peer by @elsirion in #3785
- feat: make FM_NUMBER_OF_ROUTE_HINTS default more explicit by @justinmoon in #3814
- chore: improve organization of ./devimint by @mayrf in #3798
- chore: log successful ln-gateway withdrawal by @mayrf in #3818
- chore: remove unneeded network_to_currency by @benthecarman in #3819
- fix(fedimint-cli): create data dir if doesn't exist by @dpc in #3825
- chore: make
just mprocs
parametric by @elsirion in #3827 - fix: make client less verbose by @elsirion in #3830
- Make LN payments more private by @elsirion in #3816
- fix(gateway): disconnect before changing the network by @douglaz in #3833
- refactor: consensus_encode_to_vec can't fail by @dpc in #3832
- fix: don't depend on std features from lightning-invoice by @elsirion in #3839
- chore: refactor invoice expiration check in client by @TonyGiorgio in #3845
- feat(wallet): special-case descriptor for single-guardian instances by @elsirion in #3821
- chore: bundle per-binary debs and rpms by @dpc in #3836
- chore: update nix flakes by @douglaz in #3850
- Update tls-download-mutinynet.sh to reflect snake case awaiting_password by @TonyGiorgio in #3851
- chore: change info endpoint http method to get by @mayrf in #3847
- feat(fedimint-cli): added support to pay a lnurl by @douglaz in #3848
- Get rid of needless nixpkgs by @dpc in #3823
- fix(gateway): allow setting configuration when disconnected by @douglaz in #3855
- chore: display message warning about docstring requirements by @dpc in #3824
- feat:
just backport-pr
by @dpc in #3861 - fix(cli): increase deposit timeout and make it configurable by @elsirion in #3864
- Increase BYTE_LIMIT to 50k by @shaurya947 in #3867
- feat: ability to customize version string when building custom bins by @dpc in #3858
- chore: change warning to a info by @douglaz in #3873
- test: verify recoverytool includes change outputs by @bradleystachurski in #3865
- CLI: split and combine e-cash by @elsirion in #3879
- chore: change some errors to warns/infos by @douglaz in #3885
- fix: wasm-bindgen 0.2.88 was yanked by @dpc in #3877
- fix(devimint): off-by-one error for mempool transactions by @bradleystachurski in #3893
- refactor(devimint): add get_block_count to bitcoind by @bradleystachurski in #3898
- fix: supply LN invoice features to LN gateway node by @elsirion in #3896
- refactor: amount improvements by @douglaz in #3889
- feat: GlobalClientConfig::federation_name() by @justinmoon in #3908
- chore: deprecate DatabaseSource::Reuse by @dpc in https://github.com/fedimint/fedimint/pull/...
v0.3.0-rc.3
release candidate v0.3.0-rc.3
v0.3.0-rc.2
release candidate v0.3.0-rc.2
v0.3.0-rc.1
release candidate v0.3.0-rc.1
v0.3.0-rc.0
release candidate v0.3.0-rc.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
- Fix liveness bug in case guardians are offline
- chore: speed up recovery by batching and streaming
- Bumping deps:
h2
,ahash
,shlex
due to some CVEs - More efficient session counting to avoid slowdown of long-running federations #4203
- Fix: client alsways retries on errors that are not meant to fail operations 8b57b8a
- Expose
fedimint-dbtool
for easier debugging - Switch to a fork of AlephBFT that makes some interfaces async to avoid locking up async executors with sync code 90b7d6c + 4b0f47c
- Make LN gateway to be used for a payment known upfront to be able to preview fees
- chore: upgrade tonic_lnd to 0.2.0
- fix: log warning on invalid header signature from peer
- feat: expose pending accepted consensus items in endpoint for easier debugging + #4180
For the complete set of changes see https://github.com/fedimint/fedimint/commits/v0.2.2/
v0.2.2-rc8
release candidate v0.2.2-rc8
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.