Standard Grant: SMB - Indexer Support

Introduction

Project Name: SMB - Indexer Support

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

Describe your project.

The proposal is largely based on the previous project named SiaSMB, or Sia - SMB Mounts (GitHub - mike76-dev/siasmb: SMB protocol implementation for Sia cloud storage). SiaSMB uses renterd as the underlying storage. Going forward, indexd support will be required, enabling users to access the Sia storage directly.

Who benefits from your project?

  • Developers, by being able to implement the SMB protocol in their apps
  • Hosts, by getting more demand for storage

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

The project implements yet another building block that aims to close the gap between decentralized storage and the broad audience.

Are you a resident of any jurisdiction on the sanctioned/monitored list? No

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

Grant Specifics

Amount of money requested and justification with a reasonable breakdown of expenses.

The proposal is requesting 20.000 USD (100% constitutes the developer fee).

Timeline with measurable objectives and goals.

Milestone 1a: Expand dialect support

Add support for SMB dialects 2.1 and 3.0
Timeline: 1 month

Milestone 1b: Expand dialect support

Add support for SMB dialects 3.0.2 and 3.1.1
Timeline: 1 month

Milestone 2: Integrate indexd

  • Add support for Indexer API
  • Deploy a test server

Timeline: 1 month

Milestone 3: Collect and incorporate community feedback

Timeline: 1 month

Potential risks that will affect the outcome of the project:

It happened in the past that new features introduced in renterd broke the SMB compatibility. Fortunately and thankfully, the core team came up with a fix. It may also happen with indexd. However, everything can be solved, one way or another. It is just a trade-off between simplicity and performance.

Development Information

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

Leave a link where code will be accessible for review.

Do you agree to submit monthly progress reports? Yes

Contact Info

The contact details are already known to the Foundation.

Hi @mike76 - thank you for this grant proposal. We’re planning on shifting to monthly breakdowns of milestones - the announcement for this should be in the next week or so - meaning a more granular breakdown of tasks expected to be completed within each month of the grant.

Could you provide more details for your milestones following a monthly format?

This would mean if a milestone is set over two months, you’re showing in month 1 of the milestone x tasks will be accomplished and in month 2 these remaining x tasks will see the milestone is completed.

Hey @mecsbecs, thanks for your feedback. I am sure I had already defined the milestones to match the monthly deadlines. However, in response to your request, I edited my original proposal. It didn’t change anything, though.

Hi @mike76 - the change in format for greater legibility is appreciated. This will be presented to the Committee next week.

1 Like

Thanks for your proposal to The Sia Foundation Grants Program.

After review, the Committee has decided to reject your proposal citing the following reasons:

  • There will be no file system abstraction available on indexd to integrate with the SMB mounting feature, therefore apps will need to implement that functionality themselves first.

The Committee would therefore prefer to see a Small grant detailing what’s listed here as Milestone 1a and 1b, plus a community feedback phase, as its own grant to develop the file system structure required before considering funding the indexd integration.

We’ll be moving this to the Rejected section of the Forum and will look forward to a new revised proposal in time for discussion at the November 25th Committee meeting. Please let us know if there are any questions or concerns.

There seems to be a misunderstanding about how SiaSMB works.

The file system abstraction is not provided by renterd or indexd, it is provided by the SMB server. So, it is already there. What is missing is all the uploading and downloading stuff that renterd has built-in. But this is what indexd integration essentially means. The metadata of the uploaded files can be stored on the Indexer, if there are still plans to implement that. If not, it’s not a huge effort to roll out an own store. Sia Satellite had that, after all.

Hi @mike76 - to elaborate, what was meant by “file system abstraction” was specifically the object listing endpoint in renterd that you are currently making use of in your queryDirectory code. The indexer stores object metadata but only as a way to back it up and to sync across devices, not as a store that can be arbitrarily queried. Meaning there is still a need to implement storing and querying that metadata locally.

Would this not impact the work & timeline of this grant?

Yes, this is exactly what indexd integration was supposed to mean.

But you’re right, I may have underestimated the time needed for implementing this milestone. Even though I don’t believe it should be moved to a separate grant.