Lightning Wallet is mostly autonomous but there is also a special server called Olympus which helps it with general maintenance tasks.
Note: the wallet does not depend on or ever shares any personally identifying information with Olympus and is designed to remain functional even when Olympus server goes offline.
Here is what Olympus server does:
It collects and provides an aggregate fiat prices (by periodially polling a number of well-known exchanges), as well as the current on-chain transaction fee rates.
Maintains a list of public Lightning nodes which the wallet uses to open payment channels. Note: Olympus only provides node information - all payment channel management (including opening and closing of channels) is done entirely by the Lightning Wallet in a completely autonomous manner.
Provides partial payment routes by traversing a Lightning Network graph. This relieves the wallet of some of the burden of maintaining such a graph locally, which may quickly become computationally infeasible for a mobile phone app, however this also introduces privacy implications which need clarifications:
Wallet always asks for a partial route which starts at your peer’s node. This provides a plausible deniability since peers typically have many different wallets connected to them so there is no way for Olympus to tell for sure who exactly is asking for a route.
Wallet knows when a payment is being sent directly to your peer and does not ask Olympus for a payment route in this special case.
Wallet caches successful routes so typically it only asks Olympus for a route once and then reuses it locally for subsequent payments.
Recipient may insert an assisted route right into its payment request and wallet is smart enough to detect that. Here is an example: suppose a complete route is A (you) → B (peer) → C → D → E (payee)
, in case when payee adds an assisted D → E
route into it’s payment request an Olympus will be asked to provide only B (peer) → C → D
part so it would know neither who is a sender nor who is a receiver here.
Stores an encrypted payment channel backup which can be used to reimburse your locked channel balance if you lose an access to your phone. Note: saving one backup requires one storage token.
Schedules delayed refunding transactions, which spend funds from a payment channel to your on-chain wallet in a case of a forced channel closing. Note: your wallet is capable of spending these transactions all by itself but it’s possible that you lose your phone before a refund time lock is cleared so Olympus acts as a safety belt here. This service also requires one storage token.
Provides watchtower services so users who receive Lightning funds don’t need to get their wallets online periodically. More info on this can be found in a Medium post.
Wallet uses these Olympus servers by default:
It is always possible to opt out of these and use your own. Server sources are available on GitHub.