Standard Grant : Wordpress Backup Plugin

Introduction

Project Name: Wordpress Backup By Sia

Name of the organization or individual submitting the proposal:

Dataverse

Describe your project :

WordPress Plugin: Backup and Restore using Sia Decentralized Storage

Introduction

The WordPress Backup by Sia plugin offers a complete and secure solution for backing up and restoring WordPress sites. By integrating the power of Sia’s decentralized storage, this plugin provides a reliable and scalable method to protect WordPress sites against data loss and allows for easy restoration when needed.

  1. Main Features
  • Automatic Backup

The plugin provides a programmable auto-backup feature, allowing users to set regular schedules for backing up their WordPress site.

Automatic backups ensure that the most recent data is always secure and ready to restore in the event of an incident.

  • Decentralized Storage

By using a decentralized storage system, the plugin provides data redundancy, eliminating the single point of failure often associated with centralized storage solutions.

This approach provides enhanced security and greater resilience in the event of data loss.

  • Easy Restauration

When needed, users can restore their WordPress site from backups stored on the decentralized storage system with just a few clicks.

Recovery is fast, reliable and helps minimize site interruptions in the event of a problem.

  • Data Encryption

All backups made by the plugin are automatically encrypted, ensuring the confidentiality and security of sensitive data stored on the decentralized storage system.

  • User-Friendly Interface

The plugin features a user-friendly and intuitive interface, allowing users to easily manage backup settings, schedule automatic backups, and restore their site with ease.

  • Wide Compatibility

The plugin is designed to be compatible with a wide variety of WordPress hosts as well as popular themes and plugins, ensuring smooth integration with various site setups.

2- Plugin architecture

We have architected our plugin to be able to facilitate data exchanges between the user website, our web interface and the Sia Blockchain.

In this architecture, we want to use S5 to store user files while ensuring their constant accessibility by using the CIDs of the files. Renterd is used both for the management of storage systems and for the management of user accounts to be able to assign a sia account to each user of the platform.

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

The project serves the foundation’s mission by enabling the formidable community of WordPress users (more than 60 million WordPress sites). This is a fantastic opportunity to increase the number of users of the Sia platform and also to better participate in securing Web2 by creating a bridge between web3 and web2.

Grant Specifics

We are requesting a total budget of $12,000 to design, test and put this plugin into production within 3 months.

The budget will be used for a period of 3 months with deliverables each month.

- Milestone 1:
Frontend PHP Dev Salary $1500
Backend/Blockchain Dev Salary $1500
UI Designer Salary $800
Cloud $200

Deliverables

  • *Feasibility study
  • *Architecture and diagram
  • *Renterd deployment
  • *S5 deployment
  • *Mapping of interfaces

-Milestone 2:

Frontend PHP Dev Salary $1500
Backend/BlockchainDev Salary $1500
UI Designer Salary $800
Cloud $200

Deliverables

  • *Creation of APIs
  • *Creation of the Website backup system
  • *Creation of the encryption system for websites
  • *Creation of the backup module on Renterd
  • *Creation of the incremental backup system

-Milestone 3:

Frontend PHP Dev Salary $1500
Backend/Blockchain Dev Salary $1500
UI Designer Salary $800
Cloud $200

Deliverables

  • *Functional tests of the plugin
  • *Publication of the plugin on wordpress.org

What are the goals of this small grant?

The objective of this Small Grant is to create an MVP which will integrate the different functionalities mentioned for each of the milestones above. The MVP is the first step for this project and subsequently, we will extend its functionalities by creating a web platform which will serve as support for managing backups.

Potential risks that will affect the outcome of the project:

The potentials risks that could affect the project include:

  • Risk of extending deadlines; It may be necessary to extend development or testing deadlines
  • Risk on technological compatibility; Wordpress could present compatibility limits with blockchain technologies
  • Risk on human resources; The development teams could represent a risk to the development of the project.

Development Information

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

No, All the project will be not open source for security reason. Only the saving and encryption module on Sia will be open source.

Leave a link where code will be accessible for review.

We will create a dedicated github for the project

Do you agree to submit monthly progress reports?

Yes, I agree

Contact info :

Email: [email protected]

Company description:

Dataverse is an innovative company founded in 2020, specializing in the development of advanced software solutions focused on Blockchain and Data Science. At the forefront of technology, our dedicated team is committed to providing quality products and services that meet the specific needs of our clients. With in-depth expertise in the fields of Blockchain and Data Science, Dataverse positions itself as an industry leader, offering customized and reliable solutions to support the digital transformation of its clients.

Hello, are you building a wordpress backup system from scratch or plugging onto one of the existing systems as a provider (backup storage location)?

I will state I actually have a decade+ as a wordpress dev (and doing a lot of engineering along the way in it) so I am asking questions knowing how complicated this would be.

Depending on how your doing it, this could honestly be done under 10k (a small grant) and there really is no need for a “blockchain dev”. With both S5 and renterd, its just rest API’s. I don’t see any need to port S5’s actual protocol to PHP.

Saying that I also don’t even think a “feasibility study” is needed. I know 100% that this can be added, and its something that has crossed my mind in the past related to my project. I also can say that given WordPress has very strong S3 support via plugins, that defacto can work in a DIY setup, though that’s not going to help in “managed service” use cases, where a managed S5 (or S3) service could be better.

Thoughts? Kudos.

2 Likes

Hello @pcfreak30
Thank you very much for your interest in our project. We want to completely design the backup system from scratch and not use an existing auxiliary system by just connecting the Sia storage.

We are very happy to know that you have experience with the Wordpress CMS and will be delighted to have advice on the different possibilities available to us in this project.

As for the amount of the subsidy, we should take into account the fact that developing a plugin like the one from scratch as well as the web platform which will allow users to access their backups in the event of website failures also requires development skills a certain expertise in data security which will condition the use of a large number of resources. And above all, we must keep in mind that the goal of this manager is first and foremost to build a 100% functional MVP. We will therefore need to integrate the existing S5/Renterd APIs while ensuring security of exchanges and ease of use for end users.

certain expertise in data security which will condition the use of a large number of resources Sure, you need to know infosec for webapps as an engineer. My point was that paying a blockchain engineer makes zero sense when your not actually working inside blockchain code, your working with effectively web services (rest API’s). And… I personally don’t think there even needs to be a “study” of anything. It can be done, its just a question of what approach and how much effort.

And understood regarding wanting to build a completely independent plugin. Just be aware that amount of effort to make this most effective in the long term means a lot more R&D from user feedback, after the initial MVP. The major WP backup plugin products have entire companies focused for covering 99% of use cases.

That’s why I personally would rather plugin (no pun intended, :laughing: ) to a backup ecosystem then start the R&D from zero in this situation.

That’s my 2C at-least. Also please be aware im not part of the foundation or the grant committee and you will get a response probably in a week or so based on their current schedule. But this forum is open to all community members to give criticism or feedback to any proposal.

Kudos.

1 Like

Hello @pcfreak30 ,
I understand what you mean for the Blockchain developer and it is a small error. The Blockchain developer is also in charge of the design and security of the backend of the platform as well as the functional and security aspects of the plugin.
To say that it is not necessary to carry out a feasibility study is a little truncated in our opinion because it is necessary to be able to determine the most suitable approach to make the plugin the most user friendly and to be able to compete with the different plugins existing on the market. market who already do wordpress backup. We therefore need to have a systemic approach to know how to structure it while highlighting the Sia Blockchain which will be the main storage medium for all the data.

As you probably know, 43.2% of websites on the planet use WordPress. It would therefore be completely normal that a storage technology like that of Sia could be used as a formidable support to protect the data of WordPress websites as IPFS already is. There is already a range of backup plugins which each presents a certain particularity and therefore we want to put dedicated teams who will work 100% on this project while carrying out all the R&D work to improve it.

We are very happy with your interventions and the interest you have in this project despite the fact that you are not on the committee and we remain very open to any comments or improvements that you can make :grinning:.

1 Like

I would just call that research in general on how your going to tackle it. I personally would not say that actually requires some formal report, especially since it is clear it is possible, but the details are undecided.

As for the blockchain developer thing… that’s fine, I would just suggest you update your proposal to better reflect that. Though a nit-pick of mine would say a PHP dev is a backend dev :upside_down_face: . Overall my point I think is to better communicate what labor your asking to be funded.

Kudos.

Thanks for your proposal to The Sia Foundation Grants Program! The committee has reviewed this grant and will not be approving it in its current state. We’ll share our concerns here if you’d like to revise your proposal.

  • Projects being open source is a requirement for this program. This means that all code must be open source.
  • The committee would also like to see a more specific explanation of how Sia would be used in the project. renterd and S5 are both noted in the proposal - a clear explanation of how each would operate and what the individual parts would do would be helpful.

We’ll be leaving this in Proposed as we feel the changes are not too drastic that the existing proposal can’t be amended. If you decide to, edit your original post and let us know when we should reconsider. Thanks!

Hello Steve and thank you for the consideration the committee has for our project. We really appreciate the remarks you have highlighted on our request and are willing to respond to them:

  • We will make the project completely open source by trying to secure the web platform as best as possible guaranteeing the accessibility of user data.
  • In the service architecture that we wish to set up, we will use S5 as a storage platform to be able to make the data continuously accessible to users of the plugin by using content addressing via CIDs. Renterd will be used both to allow the generation of user accounts and also to facilitate the storage of data via its S3 API.

These details have been added to our proposal to be able to better clarify it.
Thanks

Thanks for the updates to your proposal! After review, the committee has some further comments and questions.

  • Your proposal mentions “assigning a Sia account” and the updates mention using renterd to allow the facilitation of user accounts. Can you expand on this? Sia doesn’t use accounts inherently, and they were curious as to how you would involve renterd in that.
  • How does S5 benefit users for backup?
  • Will it be possible for users to self-host the backup plugin?
  • We’d like some additional info about your team. Please list the team members that would be working on this project, links to previous work, and if you would be contracting out any development work or if your team would be completing everything.
  • When we access your domain dataversecorp.pro it says it is suspended. Why is that?

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

Sorry for the late reply and thanks for the feedback from the committee.
To be able to respond to your comments:

  • In the basic architecture of the application that we thought of developing, all user accounts to be created will be systematically linked to a private key/seed on the sia network. These private keys will be generated and a contract will be activated on them via Renterd (while waiting for Hostd to be fully operational). We ultimately want payments for storage spaces for user backups to be made directly in Siacoin.

Then we imagined using S5 as a storage path using the CIDs generated as an anchor point to recover website backups incrementally but considering that the data stored via S5 would not be redistributed on Sia servers we preferred to set up a middleware using the S3 API and recording and encrypting backups directly using Renterd. To materialize the operation we made these diagrams:

Even if it is true that we will have a slightly more precise architecture after the first week of study on the project.

  • We thought about putting the plugin in 2 different versions of operations: A self-hosted version to allow users to keep control of the backup system by deploying a local renterd and a small middleware to manage communication with renterd; A Cloud version that will involve the Web platform ensuring communication with the Sia network.

  • Our team members are as follows:

https://www.linkedin.com/in/jason-savelli/
https://github.com/Newpoki
A passionate web developer, Jason Savelli has 3 years of experience in the design and development of web applications. Specialized in JavaScript (ES6+), PHP, React and Laravel, he has participated in the creation of many high-performance and scalable web applications.

https://www.linkedin.com/in/bruno-antunes/
Bruno, a PHP expert with 5 years of experience, has mastered the art of transforming ideas into digital reality. His skills in developing WordPress plugins and using Laravel allow him to create custom websites and web applications that meet the most demanding needs. Most of his work has mainly been proprietary and is not on the WordPress market.

The problem with our website came from our host but this has been resolved for a while.

Hello, I think you may want to re-think some of this as high level it is not clear if you fully understand how sia works or how S5 interacts.

Creating a private key per user means also needing funding per user, and renterd only supports 1 wallet IIRC, and you need at-least 30 contracts, ideally 50 minimum. Hosts are not guaranteed to be stable or “professional” and its akin to having a contract with a torrent seeder honestly, you need many for redundancy. Contracts are not abstractions such they handle all reliability issues and you can have just 1.

S5 data gets stored in a bucket and the dart node is the primary implementation, unless you make your own for the protocol for your use case.

There may be more im missing, but that stands out as glaring design issues based on what you have described.

Kudos.

Hello @pcfreak30 and thanks for tour inputs. Just to clarify some points we will use renterd for wallet generation only for the testing phase (While waiting for walletd to be in version 1.0 and be stable for production release).

Of course, to ensure constant availability of generated backups, we cannot use a single contract with a host. Each new backup will be encrypted and sent to multiple hosts on the network (we have not yet worked on the number, everything will depend on the different costs of the contracts) to ensure constant redundancy and accessibility to the data.

Using the S5 node would make it easy to manage the data encryption part even as the data is directly stored on a bucket of the renterd server. We will study better the possibilities of using the S5 node.

Do not hesitate to point out errors or misunderstandings on our proposal because it helps us to improve it and produce a quality plugin.

Thanks

I think your still missing a point here. You cannot mix and match walletd and renterd.

renterd supports a single wallet for all its network operations. and generating a wallet is in the end, just a 12 word bip39 seed that gets derived into a ed25519 key…

So, there is actually no way to create “multiple users” with their own contracts via multiple wallets in renterd. At best you would be able to create multiple contract sets, but renterd isn’t far enough a long to have that with autopilot working IIRC.

So, I believe you need to look at your design plans again and re-evaluate.

Kudos.

1 Like

After checking it is true that Renterd does not support a multiwallet mode. In this case we will work with the Beta version of Walletd while waiting for the production version. As for the generation of wallets we know that it is the process of generating the Bip39 seed key.

The goal is not to impose on plugin users a systemic deployment of Renterd in order to keep an intuitive interface and a user experience as simplified as other solutions on the market but we also want to be able to keep a certain control over the data they save via the plugin and therefore creating the different contracts from the same wallet would not be the optimal solution.

We will choose the most suitable solution during the week of technical study of the project.

To be clear:

  • renterd: the system to rent and store data.
  • walletd: a system to hold your money, hardware wallet support, and important for exchanges too.

You cannot use renterd and walletd together for the things you are trying to do. walletd is not a renter, and renterd is not multi-wallet.

Kudos.

This is exactly what we are trying to explain to you!

We will use Walletd so that the backup storage spaces are paid using Sia as native currency (By going through an Onramp gateway).

We want to use Renterd for the storage system either by managing the contracts from a single wallet or if we find a solution with the Sia development team by managing each backup account via different wallets and separate contracts.

Ok, Though you should clarify how walletd and an on-ramp fit together.

Also to be clear, IIRC, the two cannot be running the same wallet seed that im aware of.

So your focus really should likely just be on designing a system with renterd, as walletd is unclear how it fits in the picture.

Hi @Dataverse, thanks for your updates and responses to the committee’s questions. Unfortunately they came in just after our review deadline (the Wednesday before our next meeting), so we’ll be able to discuss these during our next meeting on September 3rd. Thanks for your patience!

Thank you for all the comments and contributions you made to our proposal. The team and I have tried to develop a more concrete operating process for the plugin.

  1. Integration with the Sia API
  • Identification of an entry point: The WordPress plugin will establish a secure connection with the S3 and Renterd API of Sia. Since Renterd is not open, we will create a small, easily deployable middleware to provide this function.
  • The choice of relevant functions: The Sia API offers a variety of functions. The plugin will focus on those related to file uploads, the creation of storage contracts and data management.
  • Operating mode: The plugin will offer 2 operating modes, a self-hosted mode that will allow the user to use their own renterd server or by using our public renterd server.
  1. Data Selection and Preparation
  • Definition of data to be backed up: The plugin will allow the user to choose the items to be backed up (databases, media files, etc.).
  • Compression and encryption: To optimize storage space on Sia and strengthen security, the data will be compressed and encrypted using an AES 256 CBC algorithm using a unique mnemonic for each user as an encryption key before uploading to the Renterd server.
  1. Upload to Sia
  • Chunking: Large backup files will generally be cut into smaller chunks to facilitate storage and recovery of backups (the choice of algorithm has not yet been made).
  • Creation of storage contracts: Each piece of file will be associated with a storage contract on Sia. These contracts will define the storage conditions (duration, price, etc.). The creation of storage contracts will be done from a unique seed key used on the renterd server and an encrypted version of which will be displayed to users (it would be good if the developers of the Sia platform considered adding a multi key/account feature to facilitate its use for multi-user applications).
  • Distribution on the network: Sia will distribute the pieces on several nodes of the network to ensure redundancy and data availability. Given the low cost of data storage as well as the low cost of storage contracts, distributing data on several hosts (at least fifty as you have proposed) will remain a much more viable option than other existing solutions on the market.
  1. Monitoring and Management of Backups
  • User interface: The plugin will offer an intuitive interface to allow the user to view the status of backups, download files and perform backups.
  • Notifications: The user can receive notifications in case of problems by email and also on the plugin interface (backup failure, contract expiration, etc.).
  • Scheduling: The plugin can be configured to perform backups at regular intervals.

Hoping that this will allow us to have a better view of what we want to do for this phase of the MVP. It is true that previously we went a little deeper by giving details on additional features such as the integration of a wallet in addition to a Fiat Onramp to fully integrate the plugin users into the Sia blockchain but all this will be developed a little later if the MVP is finally developed perfectly.

Hello Steve,
Thanks for the informations, we are waiting impatiently the committees answer about our proposal.