Skip to content

Releases: talaia-labs/rust-teos

v0.2.0 - Pruned tower

06 Feb 22:10
43f9971
Compare
Choose a tag to compare

Summary

This release packs improvements to both the tower daemon and the cln client. The highlights are:

  • The tower can now be run using pruned bitcoind node
  • CLN client does auto-register with altruistic towers once a subscription expires
  • CLN client auto-retries unreachable towers every fixed periods of time

There are also a couple of breaking changes to bear in mind:

  • The default port for the Tor interface is now set to the same as for clearnet (9814 instead of 2121)
  • The watchtower-proxy option for the CLN client has been dropped, the client now uses proxy (which is a native CLN option)

Also, some defaults have been updated:

  • The CLN client now will retry an unreachable tower up to an hour instead of the previous 15 minutes (with wait intervals of 15 minutes instead of 1 minute).

List of contributors for this release (alphabetically):

@decentralizedb
@jochemin
@JonathanPlasse
@mariocynicys
@sr-gi
@ulrichard

Release notes

Improvements

  • Builds an internal transaction index (txindex) so we don't require bitcoind to run with --txindex. This allows us to run on top of bitcoind in pruned mode, therefore significantly reducing the initial storage requirements to run a tower (from ~420 GiB disk space to ~5.5GiB plus a few dozen KiB in memory) (#132)
  • Adds network interface info to gettowerinfo. Now it will report the interfaces where the tower services are being offered (#151, #188)
  • RPC commands for the watchtower-client can now be formatted with named parameters instead of just with positional parameters. e.g. lightning-cli -k <command> arg_0=val_0...arg_n=val_n (#134)
  • Implement auto-register for the watchtower-client. Now clients do re-register with altruistic towers automatically (#164)
  • Implement auto-retry logic for watchtower-plugin. Now if a tower retry strategy is given up on due to an accumulation of transient errors the tower will be automatically retried later on (#168)
  • Adds systemd service for teosd (#176, #183)
  • Logs RPC requests (#177)

Breaking changes

  • RPC commands have been refactored from snake case to lowercase. e.g. get_tower_info -> gettowerinfo (#144)
  • The Tor default port is set to 9814 (the same port as clearnet) (#145)
  • Implements proxy and always-use-proxy logic for watchtower-plugin. This replaces the old watchtower-proxy config option with the proxy (which is the native CLN option for this purpose). Also, the client now honors the always-use-proxy logic, meaning if the flag is set, all tower data will be sent through Tor. Notice if you were using Tor you'll need to update watchtower-proxy for proxy or the client won't run! (#160)

Bug fixes

  • Fixes Tor proxy redirection. The Tor proxy assumed the HTTP API was served at localhost, which may not always be the case (especially if both clearnet and Tor interfaces were up) (#146)
  • Don't set the tower status in watchtower-plugin if a fresh register fails (#166)
  • Fix btc-network documentation for teosd, replacing bitcoin for mainnet (#171)

Misc

  • Reduce log-level severity for http errors in CLN plugin to avoid creating **BROKEN** logs when it is not necessary. This is specially intended for connection issues, which are most common (#140)
  • Slits debug flag for teosd into debug and deps-debug so we don't have to include third-party lib debug logs within ours (if we don't intend to) (#139)
  • Narrowed down SQL requests to prevent using SELECT * (#107)
  • Minimized String usage throughout the codebase (#135)
  • Replace names, defaults and descriptions by constants in watchtower-plugin (#170)
  • Defined endpoints as enum variants instead of hardcoded strings (#173)

Dev

  • Updates GitHub actions and caches (#141)
  • Track Cargo.lock (#149)
  • Simplify url formatting in watchtower-plugin tests (server.address() -> server.baseurl) in tests (#110)
  • Avoid sleep-based testing in watchtower-plugin E2E test suite. Replace it for wait_for_logs (#167)
  • Fixes random failures in test_get_appointment E2E (#169)
  • Properly defines sleeps in Retrier's tests (#184)
  • Formats strings to use inline params when possible (#185)

v0.2.0-rc1

23 Jan 23:01
4ce986e
Compare
Choose a tag to compare
v0.2.0-rc1 Pre-release
Pre-release

First release candidate for v0.2.0

v0.1.2 - CLN ❤️ Tor

28 Sep 13:45
v0.1.2
e19bb20
Compare
Choose a tag to compare

Highlights

Tor related improvements

  • #70 which persisted the Tor private key so it does not change over restarts
  • #96 which added Tor support to the CoreLN plugin

Additional commands for the CoreLN plugin

  • #83 and #86. This includes:
    • abandontower <tower_id>: deletes all data associated with a given tower.
    • getsubscriptioninfo <tower_id>: gets the subscription information by querying the tower.
    • getappointmentreceipt <tower_id> <locator>: pulls a given appointment receipt from the local database.
    • getregistrationreceipt <tower_id>: pulls the latest registration receipt from the local database.

General improvements

#98, #99, #117, #121 and #124

Bug fixes

  • Minor: #81, #82 and #113
  • #89: A race condition could be triggered in the CoreLN plugin when retrying sending data to an unreachable tower, which may have made some appointments to be missed.

List of contributors for this release (alphabetically):

v0.1.1 - CLN Plugin

22 Jul 10:25
66a1eef
Compare
Choose a tag to compare

Highlights

  • Adds a new (rustlang 🦀 ) version of the cln-plugin. A watchtower client for Core Lightning to interact with teos.
  • Adds authentication to the CLI, so remotely interacting with the tower backend can be done securely.
  • Adds a Tor interface to the HTTP API, so clients can interact with the tower more privately.
  • Modifies the registration receipts to include a start time, so subscriptions can be properly bound.

Minor improvements

This also includes some minor improvements/fixes, such as correcting some default values, improving the docs, adding some additional CI tests, etc.

List of contributors for this release (alphabetically):

v0.1.0-alpha

11 Mar 16:41
009e3be
Compare
Choose a tag to compare
v0.1.0-alpha Pre-release
Pre-release

Alpha release