Introduction to dStor
dStor is a cloud storage service that stores data on a distributed network of computers around the world. This provides a lower cost alternative to centralized cloud storage providers while retaining high data performance and rapid access time. dStor will also provide storage node operators a way to make additional income from unused infrastructure by operating nodes that store and deliver data.
dStor is a new form of decentralized storage with the low costs and security of IPFS; and the speed, data permanence, and familiar payment structure of traditional cloud storage. Decentralized file and data storage will be a foundational component of Web3 and dStor has broken barriers in speed, security, and usability. Decentralized applications will now have high speed access to files and data in a truly decentralized fashion, with no single point of failure and at a low cost.
When a user wants to add data into the system for storage, they make a request to the gateway nodes using the API key associated with their account. The system ingests the data, and creates a unique file hash of it that serves as a resource locator. This is how end users access this data in the future. The gateway node forwards the data to a number of storage nodes (generally 16-20, depending on how many nodes are currently in the network) where they are ‘pinned’ to ensure they are not deleted.
dStor’s system frequently polls storage nodes to ensure they have their pinned data, which they receive pay for. If pinned files are missing, dStor requires another storage node to pin them and the previous node loses future income from storing that data.
When a user wants to access data in the system, their computer sends a request to one of the dStor gateway nodes which interprets the request based on the location of the requesting IP address and seeks to reflect that request quickly to one of the servers in the same region with the highest availability at that moment based on the gateway node’s ongoing monitoring.
Once the end user’s request is reflected to a storage node in the system, it asks for the requested data asset. If the file exists in the server’s storage or cache, it is immediately served. If the storage node does not have the file, it requests it from another node in the network and once it receives the file, it also caches it to hasten future requests.