Auto Drive is a decentralized content-addressed storage solution built on the Autonomys Network, leveraging its underlying permanent storage layer known as the Autonomys Distributed Storage Network (DSN).
Create a pinning service, where users are allowed to pay for "pinning" files to the server's DB (the cache for the blockchain). This will ensure that the files are kept on the server even if they aren't used for a short while. It will work similar to IPFS's pinning system.
In the frontend, users will be allocated pinning credits. For now, these credits will be based upon their up/download credits in some arbitrary way. For example 5GB up/down gets 3 pinning credits, while 10GB up/down gets 8 pinning credits, etc.
In the frontend, wherever the metadata for a file is located, it also should contain a button for pinning the file. If the user doesn't have enough pinning credits, the appropriate error message will show.
The backend will manage the pinning credits the same way it manages up/down credits.
The particular design of the pinning is up to the developer. You can either choose to have a special key value storage in RAM on the server exclusively meant for holding pinned files. Or you can develop a more complicated approach where, when key-values are removed from the database to store more recently used key-values, it will never remove a pinned item. Personally, I recommend the first as it is much easier to develop and maintain.
Create a pinning service, where users are allowed to pay for "pinning" files to the server's DB (the cache for the blockchain). This will ensure that the files are kept on the server even if they aren't used for a short while. It will work similar to IPFS's pinning system.
In the frontend, users will be allocated pinning credits. For now, these credits will be based upon their up/download credits in some arbitrary way. For example 5GB up/down gets 3 pinning credits, while 10GB up/down gets 8 pinning credits, etc.
In the frontend, wherever the metadata for a file is located, it also should contain a button for pinning the file. If the user doesn't have enough pinning credits, the appropriate error message will show.
The backend will manage the pinning credits the same way it manages up/down credits.
The particular design of the pinning is up to the developer. You can either choose to have a special key value storage in RAM on the server exclusively meant for holding pinned files. Or you can develop a more complicated approach where, when key-values are removed from the database to store more recently used key-values, it will never remove a pinned item. Personally, I recommend the first as it is much easier to develop and maintain.