Standard Grant: Tiri Vault

Introduction

Project name

Tiri Vault (ARC data wallet)

Name of the organization or individual submitting the proposal:

Registered Legal Entity: BELA SUPERNOVA, sistemske rešitve d.o.o.

Registered Address: Tabor 5a, 1380 Cerknica, Slovenia

Describe your project

Bela Supernova has developed a simple browser extension – the Tiri Vault – an easy to use SIA network data wallet with features for managing files stored in the SIA network. The Tiri Vault data wallet is a light client-end solution enabling private users to use the SIA storage network independently through a browser extension without a need to download and sync the SIA local node.

A demo video of the basic features of Tiri Vault you can see in this video.

A test operation of the dAapp has shown that it is a simple and convenient method for retail use of the SIA decentralized storage. However, user feedback clearly indicates that it is necessary to develop the Tiri Vault application towards a desktop background app so that users could work with files directly in the local file system.

This task partially addresses the RFP “renterd iSCSI/NFS integration.” However, since we are working on a personal application, integration with a file folder on the local disk seems more applicable in this case, rather than emulating a network disk. Moreover, such functionality can be developed using JavaScript, which will allow us to leverage the existing JS code of the Tiri backend.

Who benefits from your project?

With the increasing reliance on cloud storage solutions for managing digital assets, individuals often find themselves grappling with the challenges of managing files across multiple cloud providers. Furthermore, concerns about data privacy and security have prompted users to seek alternative solutions to safeguard their sensitive information. In response to these challenges, third-party data management applications have emerged as a viable solution, offering users the convenience of managing files from different cloud storages within a single interface while bolstering data privacy through client-end encryption mechanisms. This convenience and increased privacy cost users an extra price, usually comparable to the cost of the storage itself.

The Tiri Vault concept is to bring crypto wallets use case to a files storage workflow to provide private users with the highest level of privacy by leveraging the blockchain technology and client-end encryption with the convenience of common web2 era storage services – all that for a reasonable price in crypto.

How does the project serve the Foundation’s mission of user-owned data?

Personal files are considered as crypto assets and managed alike in a non-custodial manner. Only the user holds the keys, not a solution provider. Considering the implementation of the SIA network, Tiri Vault acts as a gateway for multi-user access to the storage network, but users’ files are encrypted on the client side with the user’s wallet key, so Tiri does not have access to anz of the user’s files or other data. Tiri Vault is an open source project and uses common SIA wallets for authorization and encryption.

Grant Specifics

The project will be supported by a group of 2 developers, 1 QA + PO and a UI/UX designer.

The total budget for the MVP development is estimated at $ 50.400 including: team’s salary (estimated FTE for this proposal is 8,4). The team is better to be paid on a monthly basis, but we can also split the work in 3 milestones to be paid upon delivery, but with the first milestone prepaid.

The timeline for the Tiri Vault local daemon MVP development is considered to be four months. As a result of this project we will deliver a working Windows app that supports files synchronization between a local file folder and the SIA blockchain using user’s wallet credentials for access and encryption/decryption.

We plan to execute the work in three milestones/steps:

  • Disk change Tracking and Synchronization (17.600 USD; 1,5 months);
  • WebSocket Server and Storage Change Tracking (17.600 USD; 1,5 months);
  • Application UI/UX (15.200 USD; 1 month).

Risks

We see several risks both from a business and technical points:

  • synchronization issues: e.g. a user works from different devices and being offline corrected a file on several of them. Then the user get’s online and both devices start synchronization. The logical way is to check correction time and upload the latest, but there could be different situatuions and we will have to test different algorithms.
  • the local node is a problem itself, as we have to add an intermediary server to process user’s files. If the workload will be high (a lot of users with huge synchronizations) it could cost a lot to provide appropriate resources for this work. We will need to optimize intermediary storage algorithms, but after we meet these constraints.
  • also I see one risk in the future - due to lack of smart contracts in the SIA network we can meet some intricacies in providing product features. For example, we can provide file sharing mechanism by changing a smart contract (in our PoC in FVM) for a server feature and the entire access list will be stored as an encrypted file in the user’s SIA storage, but this method could have processing speed issues and will require a user, receiving access, to get the file through the server as well. This type of tasks should be reviewed and solved on the later stages of the project.

Development Information

Will all of your project’s code be open-source?
Yes. All code will be opensource and delivered under the Apache 2.0 license.

Leave a link where code will be accessible for review.
The code will be available in our GitHub.

Do you agree to submit monthly progress reports?
We agree to submit monthly progress reports here in the forum. Additionally, all milestones will be delivered with a video demonstration of the results (in case UI demonstration won’t be available as a result of a milestone, we will show code execution).

  1. Disk Change Tracking and Synchronization (1,5 months)

Deliverables:

  • implement recursive downloading of all folders and files and saving them to a local disk;
  • develop a mechanism for tracking changes on the disk like adding/deleting/modifying folders and files. These changes will trigger synchronization with the SIA storage. Files will be encrypted with the user’s key and sent to the network using the Tiri Vault node/server. Before sending, all files will be split into chunks.
  1. WebSocket Server and SIA Storage Change Tracking (1,5 months)

Deliverables:

  • create a WebSocket server to receive information about changes in folders/files in the SIA storage;
  • implement changes tracking in the SIA storage disk like adding/deleting/modifying folders and files. Changes in the SIA storage will be synchronized with the local app using the WebSocket server. Received data will be decrypted with the user’s key and saved to the local disk to the appropriate folder. This will enable users to work across multiple devices, with changes synchronized between them.
  1. Application UI/UX (1 month)

Deliverables:

  • develop a Windows application with various settings, including: user authorization with a wallet key, setting a local password that encrypts the user’s secret key for file encryption and stores it encrypted on the local disk, managing tariffs, managing synchronization settings, managing local folders for synchronization;
  • the app should work in the background when.

Future plans:

We see the development of the Tiri Vault as two complementary products: the entire Tiri Vault and the Tiri Collaboration Suite.

The Tiri Vault should consist of a personal file storage wallet developed for use in all desktop and mobile environments and a Secret Notebook for storing short text credentials like passwords, credit cards data and etc. that will be stored in a separate encrypted file in a user’s SIA storage and uploaded by a user’s browser to be safely used in online forms on web sites.

The second product is the Tiri Collaboration Suite, that includes safe files sharing functionality: a dedicated ACL file encrypted and stored in a user’s personal SIA storage:

Currently we are developing the Tiri Vault whitepaper and a financial model for the product presentation and funding acquisition.

Contact info

Email: [email protected]

Telegram: @dsrdrk11a

Thanks for the updates to your proposal! The committee is pleased with your updates but after review is requesting one further piece of information.

  • Your proposal lists no risks, which is a required section of the proposal. Please update your proposal with any potential risks that could affect your project.

We’ll keep your proposal in the Proposed section of the forums. Thanks!

@frances thank for your comment. I’ve just added the “risks” part to the application.

Thanks for the requested updates to your latest proposal. The committee felt your identified risks were reasonable and after review has approved this grant!

We’ll reach out to the provided email address to get you onboarded for this new work. Since you’ve previously received funding from us it should be a fairly quick process. Congrats and speak soon!

1 Like

Wow, thanks for the support! Looking forward to deliver!

October Progress Report

What progress was made on your grant this month?

We have developed a base Tiri desktop application and implemented in it Tiri browser extension features - now you can log in with your existing SIA wallet or make a new wallet. When logged into the application you can see a “sync” menu where you can choose a directory on your local disk that will be synced with your private SIA storage.

Summarize any problems that you ran into this month and how you’ll be solving them.

The main task for now is to refactor the interaction with sia-worker for file handling. This is necessary because the Tiri browser includes a web-extension worker, but now it’s becoming a regular one. We have already implemented this in the authorization code, and now file handling is in process.

Links to repos worked on this month:
Tiri desktop
The current version of the executable file (for Windows) is here

What will you be working on next?

Our plan for next two weeks is to finish with files uploading from the chosen local folger to the SIA storage (including encryption).

Sorry, the link to the exe file is not working and I can’t correct my post. So, if you don’t want to build it yourself, here’s the correct link.

Hello @dsrdrk11a

Thank you for your progress report!

Regards,
Kino on behalf of the Sia Foundation and Grants Committee

November Progress Report

What progress was made on your grant this month?

  • We have adopted all file handling functionality available in the Tiri browser extension, and added a “File” menu section for browsing the SIA storage.
  • In the “Sync” menu section we have implemented scanning of the chosen directory for folders and files structure, and building up a “tree model” populated with files checksums and modification times for comparison with similar data in the SIA storage for synchronisation.
  • We’ve added API points on the Tiri backend to store and retrieve “tree model” data.

Currently, the “Sync” menu section performs replication of the local structure to the SIA storage.

Summarize any problems that you ran into this month and how you’ll be solving them.

We have encountered several challenges that, unfortunately, took longer to resolve than we had planned, so we are slightly behind schedule.
There were several issues causing the upload to fail: it happened at the “weak point” of the project - streaming uploads, which are very sensitive to conditions. Preliminary research suggested that this should work in Electron.js as it uses the Chromium engine, but it didn’t. The issue turned out not to be with fetch, but a step earlier: the worker responsible for encryption wasn’t providing correct data for fetch. We had to further rework the interaction with the sia-worker to function smoothly with Electron’s production mode.

We plan to fix the timeline in Dec-Jan, where additional time has been allocated for holidays and potential risks.

Links to repos worked on this month:
Tiri desktop
Tiri gateway
The current version of the executable file (for Windows) is here: TiriVD-Setup-v.0.2.1.exe

What will you be working on next?

Our plan for the next month is to proceed to the 2nd milestone and start implementing WebSocket Server and SIA Storage Change Tracking.

Hello,

Thank you for your progress report!

Regards,
Kino on behalf of the Sia Foundation and Grants Committee

December Progress Report

What progress was made on your grant this month?

  • We have created a WebSocket server to receive information about changes in folders/files in the SIA storage;
  • We have implemented changes tracking in the SIA storage. Changes in the SIA storage are synchronized with the local app using the WebSocket server. Received data is decrypted with the user’s key and saved to the local disk to the chosen folder.

Currently the “Sync” section in the app shows the synchronisation process and the “Files” section shows all current files in the local folder. This “Files” menu section is only used for testing purposes and more likely to be removed on the 3rd Milestone.

Summarize any problems that you ran into this month and how you’ll be solving them.

We have encountered several issues with our web-socket server, as spdy-server (needed for HTTP/2 and “duplex:half”) had conflicts with NestJS WebSocketGateway, so first of all we had to run two http-servers - the second one for WebSockets on a separate port. But finally we have found the right solution and implemented a single server.
Also, to speed up the process and return to the timeline specified in the application, we have implemented the 2nd Milestone functionality without a multiuser feature, so currently synchronisation works in both ways, but only for the first wallet logged into the desktop application. If a test user will switch to another wallet, he will encounter errors. These bugs will be fixed in January.

Links to repos worked on this month:
Tiri desktop
Tiri gateway
The current version of the executable file (for Windows) is here: TiriVD-Setup-v.0.2.2.exe

What will you be working on next?

Our plan for the next month is to fix multiuser issues and then proceed to Milestone 3 - UI development.

Hello,

Thank you for your progress report!

Regards,
Kino on behalf of the Sia Foundation and Grants Committee