You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`eclair.router.path-finding.default.blip18-inbound-fees`|`false`| enables support for bLIP-18 inbound routing fees |
20
+
|`eclair.router.path-finding.default.exclude-channels-with-positive-inbound-fees`|`false`| enables exclusion of channels with positive inbound fees from path finding, helping to prevent `FeeInsufficient` errors and ensure more reliable routing |
21
+
22
+
The routing logic considers inbound fees during route selection if enabled. New logic is added to exclude channels with
23
+
positive inbound fees from route finding when configured. The relay and route calculation logic now computes total fees
24
+
as the sum of the regular (outbound) and inbound fees when applicable.
25
+
26
+
The wire protocol is updated to include the new TLV (0x55555) type for bLIP-18 inbound fees in ChannelUpdate messages.
27
+
Code that (de)serializes channel updates now handles these new fields.
28
+
29
+
New database tables and migration updates for storing inbound fee information per peer.
30
+
31
+
### API changes
32
+
33
+
<insertchanges>
34
+
35
+
-`updaterelayfee` now accepts optional `--inboundFeeBaseMsat` and `--inboundFeeProportionalMillionths` parameters. If omitted, existing inbound fees will be preserved.
36
+
37
+
### Miscellaneous improvements and bug fixes
38
+
39
+
<insertchanges>
40
+
41
+
## Verifying signatures
42
+
43
+
You will need `gpg` and our release signing key E04E48E72C205463. Note that you can get it:
44
+
45
+
- from our website: https://acinq.co/pgp/drouinf2.asc
46
+
- from github user @sstone, a committer on eclair: https://api.github.com/users/sstone/gpg_keys
47
+
48
+
To import our signing key:
49
+
50
+
```sh
51
+
$ gpg --import drouinf2.asc
52
+
```
53
+
54
+
To verify the release file checksums and signatures:
55
+
56
+
```sh
57
+
$ gpg -d SHA256SUMS.asc > SHA256SUMS.stripped
58
+
$ sha256sum -c SHA256SUMS.stripped
59
+
```
60
+
61
+
## Building
62
+
63
+
Eclair builds are deterministic. To reproduce our builds, please use the following environment (*):
64
+
65
+
- Ubuntu 24.04.1
66
+
- Adoptium OpenJDK 21.0.6
67
+
68
+
Use the following command to generate the eclair-node package:
69
+
70
+
```sh
71
+
./mvnw clean install -DskipTests
72
+
```
73
+
74
+
That should generate `eclair-node/target/eclair-node-<version>-XXXXXXX-bin.zip` with sha256 checksums that match the one we provide and sign in `SHA256SUMS.asc`
75
+
76
+
(*) You may be able to build the exact same artefacts with other operating systems or versions of JDK 21, we have not tried everything.
77
+
78
+
## Upgrading
79
+
80
+
This release is fully compatible with previous eclair versions. You don't need to close your channels, just stop eclair, upgrade and restart.
81
+
82
+
## Changelog
83
+
84
+
<fill this section when publishing the release with `git log v0.12.0... --format=oneline --reverse`>
// we need to periodically re-send channel updates, otherwise channel will be considered stale and get pruned by network
401
403
// we take into account the date of the last update so that we don't send superfluous updates when we restart the app
@@ -825,7 +827,7 @@ class Channel(val nodeParams: NodeParams, val wallet: OnChainChannelFunder with
825
827
log.info("announcing channelId={} on the network with shortChannelId={} for fundingTxIndex={}", d.channelId, localAnnSigs.shortChannelId, c.fundingTxIndex)
826
828
// We generate a new channel_update because we can now use the scid of the announced funding transaction.
caseReconnectedif d.commitments.announceChannel &&Announcements.areSame(channelUpdate1, d.channelUpdate) && age <REFRESH_CHANNEL_UPDATE_INTERVAL=>
862
864
// we already sent an identical channel_update not long ago (flapping protection in case we keep being disconnected/reconnected)
@@ -1447,7 +1449,7 @@ class Channel(val nodeParams: NodeParams, val wallet: OnChainChannelFunder with
1447
1449
// if we have pending unsigned htlcs, then we cancel them and generate an update with the disabled flag set, that will be returned to the sender in a temporary channel failure
1448
1450
if (d.commitments.changes.localChanges.proposed.collectFirst { caseadd: UpdateAddHtlc=> add }.isDefined) {
0 commit comments