Releases: talaia-labs/rust-teos
Releases · talaia-labs/rust-teos
v0.2.0 - Pruned tower
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 usesproxy
(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 ofbitcoind
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
andalways-use-proxy
logic forwatchtower-plugin
. This replaces the oldwatchtower-proxy
config option with theproxy
(which is the native CLN option for this purpose). Also, the client now honors thealways-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 updatewatchtower-proxy
forproxy
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 forteosd
, replacingbitcoin
formainnet
(#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 forteosd
intodebug
anddeps-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 forwait_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
First release candidate for v0.2.0
v0.1.2 - CLN ❤️ Tor
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
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):
- @meryacine
- @sr-gi
v0.1.1 - CLN Plugin
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):
- @booklearner
- @meryacine
- @orbitalturtle
- @sr-gi
- @tee8z
v0.1.0-alpha
Alpha release