Standard Grant: Refurbishing of Sia Satellite

Introduction

Project name: Refurbishing of Sia Satellite

Name of the organization or individual submitting the proposal: Michael Bulanov

Describe your project.

The first (and the only known) public satellite (https://ss-alpha.online) has been there for a couple of years. Apparently, people have been using it, although several people reported that they experienced various issues. The satellite operator (which happens to be the same as the project developer) could not reproduce those issues, but they obviously made Sia Satellite less usable.

Problem number two is that Sia Satellite will stop functioning after the hardfork. Support for V2 hosts and V2 contracts needs to be added promptly.

Problem number three is the necessity to run a custom fork of renterd. The project developer believes that this has actually been the most severe hurdle that prevented a broader adoption. The reason for creating a custom fork was mainly because Sia Satellite was developed before the renterd API had taken the shape it has today. The project developer believes that it should now be possible to rely solely on the API endpoints, without ever needing to modify the code of renterd.

Lastly, multiple people criticized the design of the web portal, and the project developer finds this criticism fair.

So, the present proposal is aimed at solving the problems described above.

Who benefits from your project?

The ultimate purpose of Sia Satellite, allowing more people to use the Sia network by eliminating the need to buy crypto currency, has not changed. With other added benefits, like taking the data health monitoring off the shoulders of the renters, this aims at lowering the barriers for a mass adoption of the Sia project.

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

Let’s be fair, Sia Satellite adds a bit of centralization by means of running a physical server that can be taken down anytime. However, having implemented the changes included in this proposal, the project developer hopes that it will become easier for the others to run more satellites, so this centralization will in the end become less pronounced.

Also, Sia Satellite does not take over the user-owned data. It only forms storage contracts on behalf of the user. Other features, like migrating the data if its health drops, require more trust, but such features are optional and still do not grant the satellite operator a full access to the data.

We cannot provide grants to residents of jurisdictions under increased FATF monitoring, those that have active OFAC sanctions, or those that fail our bank compliance tests. We also cannot provide grants if your payment bank account is located in those same locations. Please review the following list.

Are you a resident of any jurisdiction on that list? No

Will your payment bank account be located in any jurisdiction on that list? No

Grant Specifics

Project budget:

The project developer requests the budget of $27000 over the period of 6 months.

Timeline with measurable objectives and goals.

Milestone 1: Define the product specifications

  • Define the API endpoints
  • Define the portal structure
  • Create a design specification

Timeline: by April 2, 2025
Budget: $2000

Milestone 2: Build the backend core

  • Syncer
  • Chain manager
  • Multi-address wallet
  • Host database

Timeline: by May 2, 2025
Budget: $4000

Milestone 2a: Design the web portal (shall run in parallel to Milestone 2)

  • Hire a web designer
  • Have the web designer develop a portal design according to the specification

Timeline: by June 2, 2025
Budget: $5000

Milestone 3: Build the contract manager

  • V1 and V2 contract formations
  • V1 and V2 contract renewals
  • Archiving expired contracts
  • Contract transfer to and from renterd

Timeline: by June 2, 2025
Budget: $4000

Milestone 4: Build the web portal

  • Build the web portal according to the design

Timeline: by July 2, 2025
Budget: $4000

Milestone 5: Enable file repairs

  • Metadata backup
  • Data migration
  • Metadata transfer back to renterd

Timeline: by August 2, 2025
Budget: $4000

Milestone 6: Wrap-up

  • Satellite operator interface
  • Testing
  • Writing the docs

Timeline: by September 2, 2025
Budget: $4000

Potential risks that will affect the outcome of the project:

The satellite https://ss-alpha.online has been running long enough to demonstrate the viability of the project. The only foreseeable risk that remains is that some of the required renterd API endpoints are either not implemented or are not working as expected. In such a case, either some work together with the Foundation developers shall be carried out to implement the missing behavior, or the respective features shall be abandoned.

Development Information

Will all of your project’s code be open-source?

The code has always been available at GitHub - mike76-dev/sia-satellite: A network service that allows credit card payment for Sia storage., and this will not change.

Leave a link where code will be accessible for review.

See above.

Do you agree to submit monthly progress reports?

Yes.

Contact Info

The contact details of the project developer should already be known to the Foundation.

Satellite was one of the first grant projects launched under the Sia Foundation’s wing and was among the earliest projects that I really loved. Though, I believe I was one of those who criticized its design :sweat_smile: Therefore, I’m giving my vote for Satellite and wishing Mike good luck in finding a great designer because I want to see it with a cool new design. Excited to see how Satellite evolves with this aesthetic and backend core refresh!

1 Like

Thanks for your proposal to The Sia Foundation Grants Program.

After review, the committee has decided to approve your proposal. Congratulations! They’re excited to see what you can accomplish with this grant.

We’ll reach out to your provided email address for onboarding. This shouldn’t take long unless your info has changed from last time, but you may still need to adjust your timelines.

1 Like

Thanks a lot Steve and the Committee!

Progress Report March

What progress was made on your grant this month?

  • Wrote up the blueprints of the new Satellite
  • Created a preliminary OpenAPI specification
  • Wrote up the design concept of the new web portal
  • Started writing the Satellite server code

List repos worked on this month with links to PRs and relevant commits.

What will you be working on next month?

Coming month I will mostly continue to work on the server code.

Hello,

Thank you for your progress report!

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

Progress Report April

What progress was made on your grant this month?

List repos worked on this month with links to PRs and relevant commits.

What will you be working on next month?

  • Complete the user accounts (including SC and fiat payment integration)
  • Implement contract management
  • Implement most of the API endpoints
  • Write a renter-side client
  • Work on the frontend

Hello

Thank you for your progress report!

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

@mike76 Just a quick note that we’re sending to all current grantees.

When submitting progress reports, especially ones that contain work towards your milestones, development work must be easy to access and review. Please directly link to work done, and if that report says “support added for feature x”, please link either to a branch or to a commit range showing the diff for that feature.

Moving forward, we will be assuming that progress that is not linked to directly was not made.

Acknowledged, edited my latest report according to the milestone.

The development of the new version of Sia Satellite has been running well so far. However, this time I have hit a roadblock.

One of the key features of Sia Satellite, besides enabling the users to pay with fiat for decentralized storage, has always been managing contracts and data health of the users, even if their renterd nodes are switched off. Unfortunately, this implies storing the user’s signing key on the satellite. Only this way can the satellite sign the contracts and migrate the failed slabs in the absence of the user.

I requested adding an API endpoint to renterd to retrieve the signing key but the request was declined. Yes, sharing private keys is potentially dangerous, even though the signing key is different from the wallet key, but this is how the whole concept is supposed to work. I was offered to implement another approach where the satellite would be sending hashes to renterd and having them sign these hashes, so the signing key would never have to leave renterd.

Exactly this approach is implemented in the current version of Sia Satellite. But only for the scenarios where the user is actively communicating with the satellite, instructing it on what host to form a contract with.

The other scenario, where the user can switch their renterd node off and come back later, tomorrow or in a few months, and find their data intact, implies more trust: the signing key has to be stored on the satellite. And this scenario is also implemented in the current version! The user may opt out anytime, after which their signing key is wiped away from the satellite.

The major drawback of the current design is that the user has to run a custom fork of renterd. One of the objectives of the new proposal was to get rid of the fork, so the user can run the official software. This does not seem feasible anymore.

Giving the users a possibility to hand the contract and data management over to the satellite and not keep running renterd 24/7 has been one of the critical features of Sia Satellite. A custom fork of renterd allowed that, but the original plan was to have the fork merged into the mainstream at some point. Unfortunately, this does not seem feasible, either.

Considering all the above, I do not see any other solution than to stop the development and close the project. I have already instructed my frontend developer to stop the work until further notice.

Thanks to everyone who supported me.

Sincerely,
mike76

This is a shame. I was actually viewing that this work could be later integrated to Lume, as a plugin, as a means of allowing users to have someone manage their data contracts without the portal needing to know or be able to read the data.

A recurring theme in Sia’s design is the contract management and both minimizing the work needed to do all the magic and just delegating the work entirely to a managed service if the user desires.

I think a technical solution is needed if users want to keep their privacy but offload whats basically a sysadmin task of keeping all contracts and data healthy. This has been a recurring ? I have seen for a few years now and I think there should be a solution to it.

Kudos.

1 Like

Satellites sometimes may fall from their orbital heights and burn up in the atmosphere, but the engineers who built them always launch new missions and reach for new altitudes.

Mike, you’ve got a lot of experience under your belt. We look forward to hearing about your future projects and conquered tech peaks.

Cheers.

1 Like

We’re obviously in touch via other channels, but I just wanted to post publicly here to acknowledge your decision and thank you for your hard work. Sia Satellite is a great project and we hope to see you continue to build in the ecosystem.

I’ll move this thread to Inactive.

1 Like