1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-03-15 12:20:13 +01:00
eclair/docs/release-notes/eclair-vnext.md
t-bast 6e8d67550c
Allow disabling the reputation recorder
We must allow node operators to run plain blip-0004 without our
experimental reputation recorder. It's also a stop-gap in case
there is a bug in it that can be exploited.

We also refactor to introduce more types and documentation, without
changing the reputation algorithm itself.

We also fix a few issues mentioned on the main PR comments.
2024-08-02 14:19:25 +02:00

4.2 KiB

Eclair vnext

Major changes

Update minimal version of Bitcoin Core

With this release, eclair requires using Bitcoin Core 27.1. Newer versions of Bitcoin Core may be used, but have not been extensively tested.

This version introduces a new coin selection algorithm called CoinGrinder that will reduce on-chain transaction costs when feerates are high.

To enable CoinGrinder at all fee rates and prevent the automatic consolidation of UTXOs, add the following line to your bitcoin.conf file:

consolidatefeerate=0

Incoming obsolete channels will be rejected

Eclair will not allow remote peers to open new static_remote_key channels. These channels are obsolete, node operators should use option_anchors channels now. Existing static_remote_key channels will continue to work. You can override this behaviour by setting eclair.channel.accept-incoming-static-remote-key-channels to true.

Eclair will not allow remote peers to open new obsolete channels that do not support option_static_remotekey.

Local reputation and HTLC endorsement

To protect against jamming attacks, eclair gives a reputation to its neighbors and uses it to decide if a HTLC should be relayed given how congested the outgoing channel is. The reputation is basically how much this node paid us in fees divided by how much they should have paid us for the liquidity and slots that they blocked. The reputation is per incoming node and endorsement level. The confidence that the HTLC will be fulfilled is transmitted to the next node using the endorsement TLV of the update_add_htlc message. Note that HTLCs that are considered dangerous are still relayed: this is the first phase of a network-wide experimentation aimed at collecting data.

To configure, edit eclair.conf:

// We assign reputations to our peers to prioritize payments during congestion.
// The reputation is computed as fees paid divided by what should have been paid if all payments were successful.
eclair.peer-reputation {
    // Set this parameter to false to disable the reputation algorithm and simply relay the incoming endorsement
    // value, as described by https://github.com/lightning/blips/blob/master/blip-0004.md,
    enabled = true
    // Reputation decays with the following half life to emphasize recent behavior.
    half-life = 7 days
    // Payments that stay pending for longer than this get penalized
    max-relay-duration = 12 seconds
    // Pending payments are counted as failed, and because they could potentially stay pending for a very long time,
    // the following multiplier is applied.
    pending-multiplier = 1000 // A pending payment counts as a thousand failed ones.
}

API changes

Miscellaneous improvements and bug fixes

Verifying signatures

You will need gpg and our release signing key 7A73FE77DE2C4027. Note that you can get it:

To import our signing key:

$ gpg --import drouinf.asc

To verify the release file checksums and signatures:

$ gpg -d SHA256SUMS.asc > SHA256SUMS.stripped
$ sha256sum -c SHA256SUMS.stripped

Building

Eclair builds are deterministic. To reproduce our builds, please use the following environment (*):

  • Ubuntu 22.04
  • AdoptOpenJDK 11.0.22
  • Maven 3.9.2

Use the following command to generate the eclair-node package:

mvn clean install -DskipTests

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

(*) You may be able to build the exact same artefacts with other operating systems or versions of JDK 11, we have not tried everything.

Upgrading

This release is fully compatible with previous eclair versions. You don't need to close your channels, just stop eclair, upgrade and restart.

Changelog

<fill this section when publishing the release with git log v0.10.0... --format=oneline --reverse>