Skip to content

Commit 4b6b3d9

Browse files
committed
Format README.md
1 parent 3c49158 commit 4b6b3d9

File tree

1 file changed

+44
-12
lines changed

1 file changed

+44
-12
lines changed

README.md

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,68 @@
11
# Versioned Storage Service
22

33
### Introduction to VSS (Versioned Storage Service)
4-
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.
54

6-
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.
5+
VSS, which stands for Versioned Storage Service, is an open-source project designed to offer a server-side cloud storage
6+
solution specifically tailored for non-custodial Lightning supporting mobile wallets. Its primary objective is to
7+
simplify the development process for Lightning wallets by providing a secure means to store and manage the essential
8+
state required for Lightning Network (LN) operations.
79

8-
To address this challenge, the VSS project introduces a framework and a readily available service that can be hosted by anyone as a Versioned Storage Service. It offers two core functionalities:
10+
In a non-custodial Lightning wallet, it is crucial to securely store and manage various types of state data. This
11+
includes maintaining a list of open channels with other nodes in the network and updating the channel state for every
12+
payment made or received. Relying solely on user devices to store this information is not reliable, as data loss could
13+
lead to the loss of funds or even the entire wallet.
914

10-
* **Recovery**: In the event of a user losing their phone or access to their app's data, VSS allows for the restoration of the wallet state. This ensures that users can regain access to their funds, even in cases of device or data loss.
11-
* **Multi-device Access**: VSS enables multiple devices with the same wallet app to securely access and share LN state. This seamless switching between devices ensures consistent access to funds for users.
15+
To address this challenge, the VSS project introduces a framework and a readily available service that can be hosted by
16+
anyone as a Versioned Storage Service. It offers two core functionalities:
17+
18+
* **Recovery**: In the event of a user losing their phone or access to their app's data, VSS allows for the restoration
19+
of the wallet state. This ensures that users can regain access to their funds, even in cases of device or data loss.
20+
* **Multi-device Access**: VSS enables multiple devices with the same wallet app to securely access and share LN state.
21+
This seamless switching between devices ensures consistent access to funds for users.
1222

1323
<p align="center">
1424
<img src="http://www.plantuml.com/plantuml/png/VP2nJWCn44HxVyMKK4JqAQ8W8aGHA33GBxuXP-7p7lRUeVmzAz60X6YcsQTvezrtasRBL89bAyHBZBZBfn57hYmuY0bkYtw6SA-lkV30DITkTd1mY-l5HbRBIInhnIC_5dOBVjliVl9RT9ru8Ou_wJlhPGX5TSQRDhYddJ7BUV8cT8-hniIySlZJ-JmFOiJn0JUZrCg2Q6BybaRJ9YVwCjCff_zWUE7lZN59YRq7rY7iFVmhNm00" />
1525
</p>
1626

1727
Clients can also use VSS for general metadata storage as well such as payment history, user metadata etc.
28+
1829
### Motivation
1930

20-
By providing a reusable component, VSS aims to lower the barriers for building high-quality LN wallets. Wallet developers have the flexibility to either host the VSS service in-house, enabling easy interaction with the component, or utilize reliable third-party VSS providers if available.
31+
By providing a reusable component, VSS aims to lower the barriers for building high-quality LN wallets. Wallet
32+
developers have the flexibility to either host the VSS service in-house, enabling easy interaction with the component,
33+
or utilize reliable third-party VSS providers if available.
2134

22-
VSS is designed to work with various applications that implement different levels of key-level versioning and data-integrity mechanisms. It even allows for the disabling of versioning altogether for single-device wallet usage, making it simple to get started.
35+
VSS is designed to work with various applications that implement different levels of key-level versioning and
36+
data-integrity mechanisms. It even allows for the disabling of versioning altogether for single-device wallet usage,
37+
making it simple to get started.
2338

24-
The project's design decisions prioritize features such as multi-device access, user privacy through client-side encryption(e.g. using key derived from bitcoin wallet), authorization mechanisms, data and version number verifiability, and modularity for seamless integration with different backend technologies.
39+
The project's design decisions prioritize features such as multi-device access, user privacy through client-side
40+
encryption(e.g. using key derived from bitcoin wallet), authorization mechanisms, data and version number verifiability,
41+
and modularity for seamless integration with different backend technologies.
2542

2643
### Modularity
27-
VSS can work out-of-box with minor configuration but is intended to be forked and customized based on the specific needs of wallet developers. This customization may include implementing custom authorization, encryption, or backend database integration with different cloud providers. As long as the API contract is implemented correctly, wallets can effortlessly switch between different instances of VSS.
2844

29-
VSS ships with a PostgreSQL implementation by default and can be hosted in your favorite infrastructure/cloud provider (AWS/GCP) and its backend storage can be switched with some other implementation for KeyValueStore if needed.
45+
VSS can work out-of-box with minor configuration but is intended to be forked and customized based on the specific needs
46+
of wallet developers. This customization may include implementing custom authorization, encryption, or backend database
47+
integration with different cloud providers. As long as the API contract is implemented correctly, wallets can
48+
effortlessly switch between different instances of VSS.
49+
50+
VSS ships with a PostgreSQL implementation by default and can be hosted in your favorite infrastructure/cloud provider (
51+
AWS/GCP) and its backend storage can be switched with some other implementation for KeyValueStore if needed.
3052

3153
### Project Execution
32-
To explore the detailed API contract of VSS, you can refer to the [VSS API contract](https://github.com/lightningdevkit/vss-server/blob/main/app/src/main/proto/vss.proto) and can track project progress [here](https://github.com/lightningdevkit/vss-server/issues/9). VSS execution is split into two phases, phase-I prioritizes recovery and single-device use, whereas phase-II covers multi-device use. The first phase is expected to be released in Q2 2023. The second phase will be subject to monitoring for demand from wallets and may slip to 2024. [[LDK-Roadmap](https://lightningdevkit.org/blog/ldk-roadmap/#vss)]
54+
55+
To explore the detailed API contract of VSS, you can refer to
56+
the [VSS API contract](https://github.com/lightningdevkit/vss-server/blob/main/app/src/main/proto/vss.proto) and can
57+
track project progress [here](https://github.com/lightningdevkit/vss-server/issues/9). VSS execution is split into two
58+
phases, phase-I prioritizes recovery and single-device use, whereas phase-II covers multi-device use. The first phase is
59+
expected to be released in Q2 2023. The second phase will be subject to monitoring for demand from wallets and may slip
60+
to 2024. [[LDK-Roadmap](https://lightningdevkit.org/blog/ldk-roadmap/#vss)]
3361

3462
### Summary
35-
In summary, VSS is an open-source project that offers a server-side cloud storage solution for non-custodial Lightning wallets. It provides multi-device access, recovery capabilities, and various features to ensure user privacy and data verifiability. By leveraging VSS, wallet developers can focus on building innovative Lightning wallets without the burden of implementing complex storage solutions from scratch.
63+
64+
In summary, VSS is an open-source project that offers a server-side cloud storage solution for non-custodial Lightning
65+
wallets. It provides multi-device access, recovery capabilities, and various features to ensure user privacy and data
66+
verifiability. By leveraging VSS, wallet developers can focus on building innovative Lightning wallets without the
67+
burden of implementing complex storage solutions from scratch.
3668

0 commit comments

Comments
 (0)