I am trying to use IPFS as a decentralised storage solution for my application and I came across few (basic) questions,
I understand that the files I add to my node are synchronised to other nodes in the network only when others allow so. In that case, in absence of FileCoin, how can I encourage others to store my files in their nodes?
If my file is not synchronised in other nodes, then there is no benefit of decentralised storage, since it actually will be store in only one node (which is mine)?
When there is IPFS and a copy of the files in all nodes across the network, what is the need and other benefits of ipfs-cluster, is this to improve the performance or for some other needs?
Is there any benchmark done (or is there any other way) using IPFS to see how many nodes/instances we need to run to enable the low latency?
What is the best way to access the files in IPFS from the client app. to get a better performance? ie, it should find a nearest node to fetch the file requested.
How can I ensure that the file request is coming from a valid user? Anyone who has the hash can access the file? Or is there any authentication mechanism built in (with keys)? Does that slow down the performance in any way?
What else can be done to increase the performance of IPFS when delivering normal files, medium and large sized images, videos and audios? Also, do we need to use any CDNs to stream videos or audios from IPFS to the client for better performance?
A lot of the questions are very open ended, but here are some thoughts on a few of them.
One way would be to make content that others find worthy of voluntarily pinning or viewing through IPFS and caching.
No. There are other benefits to decentralized storage besides having other nodes store your files for free. Here’s a blog post with some thoughts related to your statement/question.
ipfs-cluster is for nodes you control, so it gives you guaranteed replication across nodes. It doesn’t matter what nodes that you don’t control do (or say they do). Malicious nodes could hypothetically say they have a file when they really don’t.
What do you mean by “low latency”? Latency of what operation?
Latency of file retrievals is dependent upon a variety of factors like network latency between nodes, how many nodes have the content you’re requesting, how many of those peers you’re connected to, etc.
I mean the latency of finding and fetching the data. Yep, got it.
About the other questions, let me be a bit more specific,
5. There are few ways to fetch the files from IPFS (we are planning to store the app. (logical) data (in JSON format) and the files in IPFS). So, we can either access the data by ipfs, ipns or using the common gateway. I was thinking if any of these are better than each other in performance.
I know they are a bit broad, but if you could let me know your thoughts and redirect me to right references which you have come across, it would be great. Probably I will ask the other 2 questions in a different topic since it might not be related to performance.
I’d vote for accessing them directly through IPFS. Accessing files through the public gateways means depending on centralized servers to be available; it also introduces some potential security problems since the gateway operators can theoretically alter what gets returned for a given hash. I wouldn’t personally recommend using IPNS in its currently state if you’re concerned about performance.