Standard Grant Proposal: Libsia & php-sia libraries

Introduction

Project Name:
SIA Userspace Libraries (aka libsia & php-sia)

Name of the organization or individual submitting the proposal:
OKay INC
Luis Daniel Lucio Quiroz (CEO & Developer). Small business owner if you prefer.

Describe your project.
After coding the siafs, We realized that much of the code could be packed into a library (hence libsia). This will open the door for other C/C++ developers to be able to adopt the SIA storage in their projects without a filesystem mount point. Having a siafs mount point is nice, it allows non-aware applications to use SIA out-of-the-box; however, FUSE has some limitations that impact the SIA performance.

While enabling an unaware application to use SIA is cool, making it aware of it is super cool.

Additionally, We are heavy PHP coders and now that we are creating libraries. PHP-SIA is a good idea with the same rationale. Letting PHP developers adopt the SIA infrastructure in a very easy way.

Who benefits from your project?
Directly, any C/C++ and PHP developer; and as a consequence, any open-source user. Indirectly, any end-user who uses a sia-enabled project.

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

Libsia & PHP-SIA will have the following positive impacts:

  • Project adoption. For example, Bacula (the backup system for Linux) already supports AWS. Having Libsia available will allow Bacula Developers to add support very easily. Other services, such as webmail portals or internal corporate storage are more examples of the kind of projects that will get a direct benefit from this proposal.
  • Better economics. Having more options to use SIA will raise the storage demand, therefore it will make the SC worth going up in the future.

Grant Specifics

A total of 49,900 USD will cover the following:

  • Salary: coding and documentation time, 10 months of development and documentation (approx). We do not plan to ask for more money if we need more time.

A testnet wallet will be used through the Faucet . The hardware acquired from the last grant will be reused.

Timeline

As we are doing two package deliveries, this is what we are planning.

libsia

  • Release 0.1: the first working library. This release will have all the codes from siafs as libraries. It will deliver at this point a library that can be linked to a C source.
  • Release 0.1.x: siafs 0.3 will be published using the library. No new capabilities on siafs will be added, just a library porting.
  • Release 0.2: missing renterd bus API endpoints will be packed into the library.
  • Release 0.3: missing renterd worker API endpoints will be packed into the library.
  • Release 0.4: missing autopilot worker API endpoints will be packed into the library.
  • Release 0.5: helper programs. Some helper CLI programs will be added as an example of how to use the library and command line management.

This code will be built using CMake which is adopted for all major Linux distributions. From our last experience, libcurl will be required. Each release will have the README file updated to reflect how to use the C/C++ routines (any seasoned coder will be able to understand it).

  • Demo day (not a release): we will plan a small showcase using libsia.

php-sia

  • Release 0.0.1: README and class architecture.
  • Release 0.1: the first working library published on the composer environment. It will include all the renterd bus API endpoints.
  • Release 0.2: the renterd worker API endpoints will be included.
  • Release 0.3: the renterd autopilot API endpoints will be included.

This code will be a set of PHP classes that any seasoned PHP coder will follow. A detailed README is planned as a coding guide. Each release will have the README file updated to reflect how to use the PHP API (any seasoned coder will be able to understand it).

  • Demo day (not a release): we will plan a small showcase using php-sia.

Potential risks that will affect the outcome of the project:
Unforeseen changes in the Renterd API.

Development Information

Will all of your project’s code be open-source?
Yes, under GPL3 license.

Leave a link where the code will be accessible for review.
libsia & php-sia, the repositories will be created when the grant is approved. Some test repositories may be created, links will be updated as they are needed.

Do you agree to submit monthly progress reports?
Yes

Contact info

Email: [email protected], [email protected]

Any other preferred contact methods:
LinkedIn: https://www.linkedin.com/in/dlucio/
Telegram: daniel_lucio (please email first to disclose your Telegram ID)

Related Past Projects

Thanks for your proposal to the Sia Foundation Grants Program.

The committee will be meeting next on October 15, 2024. They will attempt to review your grant then, but the number of current proposals may push this to the following meeting on the 29th.

1 Like