I want to create a private IPFS Network in which nodes should be able to add data and share the Hash with other nodes in the network so that they will be able to access the files and make them available for further nodes in the network. My question here is... Should I use pinning so that the files will stay longer in the network or use IPFS Cluster(Note: I still can't figure out the difference between IPFS Cluster and IPFS)? Im actually trying to create an application like DTube but only for a particular set of nodes(A Private Network)??? Can I get some help?
You can build a private ipfs network which allows ipfs to only connect to other peers who have a shared secret key. Nodes in the private network won’t respond to communications from nodes outside. Here are the steps to build such network https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#private-networks
PS: Ipfs private network is an experimental feature.
Concerning the difference between ipfs and ipfs-cluster :
As you know IPFS is is a protocol and network designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia in a distributed file system (Wikipedia).
IPFS cluster is a service(stand-alone application and a CLI client) which helps you to automatically allocate, replicate and track pins throughout your IPFS network of nodes. It runs alongside IPFS as a separate service and needs to be installed on all the IPFS peers that make your cluster.
As stated in their website
The IPFS Cluster project aims to facilitate adoption of IPFS by:
-Providing support for production deployments of IPFS in the datacenter
-Facilitating the conservation and replication of data (pinsets) across multiple nodes
-Supporting the handling of large volumes, where a full DAG does not fit in a s single IPFS node Enabling collaborative storage
-efforts to backup data of interest on top of IPFS
=> therefore the cluster service is a complimentary extension that provides additional functionality on top of the Ipfs core network