VSS, which stands for Versioned Storage Service, is an open-source project designed to offer a server-side cloud storage solution specifically tailored for non-custodial Lightning supporting mobile wallets. Its primary objective is to simplify the development process for Lightning wallets by providing a secure means to store and manage the essential state required for Lightning Network (LN) operations.
You will need a Postgres database for VSS to connect to over TLS. I recommend NeonDB to get started with as it has a free tier.
In a non-custodial Lightning wallet, it is crucial to securely store and manage various types of state data. This includes maintaining a list of open channels with other nodes in the network and updating the channel state for every payment made or received. Relying solely on user devices to store this information is not reliable, as data loss could lead to the loss of funds or even the entire wallet.
Network and App Authentication
When you create your application on Nodana you will get an access token in the credentials file download. This is required to be able to connect to your app. Your access token should be provided using an X-Nodana-Access-Token header. You will receive a 401 Unauthorized if the access token is invalid.
Please be aware that the access token cannot currently be changed so look after it carefully and do not share it with others.
By default, VSS uses a simple authentication scheme whereby each client must provide a valid signature for a client-specified public key. The public key identifies the storage that belongs to the client. This scheme does not impose any restrictions on who can interact with VSS; it only ensures that each client can only access their own storage.