Skip to content

Releases: callebtc/electronwall

v0.5

22 Apr 10:40
7537220
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.4...v0.5

electronwall v0.4

31 Aug 12:59
60cd54b
Compare
Choose a tag to compare

⚡️🛡 Scripts and node explorer APIs

Programmable rules

electronwall has a Javascript engine called goja that allows you to set custom rules. Note that you can only use pure Javascript (ECMAScript), you can't import a ton of other dependcies like with web applications.

Rules are saved in the rules/ directory. There are two files, one for channel open requests ChannelAccept.js and one for HTLC forwards HtlcForward.js.

electronwall passes contextual information to the Javascript engine that you can use to create rich rules. See below for a list of objects that are currently supported.

Contextual information

electronwall now fetches data from 1ML.com and Amboss.space and provides this information to the rule script.

Here is one rather complex rule for channel accept decisions in ChannelAccept.js for demonstration purposes:

// only channels > 0.75 Msat
ChannelAccept.Event.FundingAmt >= 750000 && 
// nodes with high 1ML availability score
ChannelAccept.OneMl.Noderank.Availability > 100 &&
// nodes with a low enough 1ML age rank
ChannelAccept.OneMl.Noderank.Age < 10000 &&
( 
   // only nodes with Amboss contact data
   ChannelAccept.Amboss.Socials.Info.Email ||
   ChannelAccept.Amboss.Socials.Info.Twitter ||
   ChannelAccept.Amboss.Socials.Info.Telegram 
) &&
(
   // elitist: either nodes with amboss prime
   ChannelAccept.Amboss.Amboss.IsPrime ||
   // or nodes with high-ranking capacity
   ChannelAccept.Amboss.GraphInfo.Metrics.CapacityRank < 1000 ||
   // or nodes with high-ranking channel count
   ChannelAccept.Amboss.GraphInfo.Metrics.ChannelsRank < 1000
)

electronwall v0.3.3

03 Aug 16:44
Compare
Choose a tag to compare

⚡️🛡 JSON output

In this release

JSON output

In config.yaml set log-json: true to receive all logs in json format for better log aggregation with external tools. Output will now be written to StdOut (instead of StdErr).

Detailed logging

You'll now see the details for LinkFailEvent events and the preimage for successful forwards.

Color output

In terminal.

electronwall v0.3.2

10 Jul 21:21
Compare
Choose a tag to compare

⚡️🛡 Wildcards

electronwall can now filter payment routings along specific channels or channel pairs using an allowlists or a denylists.

In this release

Wild cards

To allow or deny HTLC forwards, you can either use a specific filter for a channel ID pair like 6629856x65537x0->7143424x65537x0 or filter, for example, all outgoing forwards to a channel like *->25328x256x0. Similarly, you can filter for incoming payments using *->25328x256x0.

You can also apply wildcards to filter for all public keys when using the channel acceptor.

Config changes

This release requires you to make appropriate changes in your config:

forward-mode: "allowlist"               # only one mode can be used at a time!
forward-allowlist:
  - "7143424x65537x0"                   # all forwards from this channel
  - "7143424x65537x0->*"                # same as above
  - "6629856x65537x0->7143424x65537x0"  # channel pair
  - "*->25328x256x0"                    # all forwards to this channel
forward-denylist:
  - "9961472x65537x1"
  - "*"                                 # this would deny all forward events in "denylist" mode

Screenshot

electronwall0 3 2

electronwall v0.3.1

08 Jul 23:05
Compare
Choose a tag to compare

⚡️🛡 Filter channel pairs

electronwall now supports allowlists and denylists for payment routing (HTLC forwarding). You can add channel IDs to your config to allow or deny forwards from certain channels. You can also filter HTLCs forwards along a specific pair of channels.

In this release

Standard channel ID format

electronwall now uses the standard channel ID format 7143424x65537x0 that is used in many places such as amboss.space.

Filter channel pairs

You can now also add channel pairs to the filter list like 7929856x65537x0->7143424x65537x0. electronwall will then only filter HTLC forwards along this incoming->outgoing channel pair.

Config changes

This release requires you to make appropriate changes in your config. whitelist was renamed to allowlist and blacklist to denylist. An example config.yaml:

forward-mode: "allowlist"
forward-allowlist:
  - "7143424x65537x0"
  - "7929856x65537x0->7143424x65537x0"
forward-denylist:
  - "9961472x65537x1"

Screenshot

shot2

HTLC interceptor

08 Jul 13:34
Compare
Choose a tag to compare

⚡️ electronwall v0.3

electronwall now supports whitelists and blacklists for payment routing (HTLC forwarding). You can add channel IDs to the config file (long uint64 numbers) to allow or deny forwards from these channels.

Note: This version has config file changes (config.yaml) since some of the entries have been renamed. There are two lists now: the list of peers for channel open requests and the list of channels IDs for payment forward request. If you are using an old config, transfer your entries to the new one.

Blacklist support

29 May 12:05
Compare
Choose a tag to compare
  • Rename project to electronwall
  • Add support for blacklisting nodes

Whitelist for channel openings

27 May 13:59
5178062
Compare
Choose a tag to compare

This is a first release with whitelist support.