Neo St Petersburg Competence Center (Neo SPCC) released an article introducing a content delivery network (CDN) it has created for use with its Send.NeoFS service. The CDN is hoped to show dApps and other projects how to optimize the distribution of data from NeoFS to end users, and is part of a larger plan to provide a global, decentralized CDN using NeoFS and the Neo blockchain.

NeoFS was designed to provide a reliable and distributed data storage service, however issues can be encountered when it comes to serving content to end users. Rather than being served directly by storage nodes on NeoFS, content is usually requested by users through standard protocols such as HTTP.

Neo SPCC has created HTTP gates to proxy requests to the NeoFS network for this purpose, however the use of HTTP gates means that users may be connected with servers from other regions, often leading to a high latency or slow download speed.

Recognizing these drawbacks for users in its own demo application, Send.NeoFS, the team created a small CDN served by a cluster of GeoDNS servers. When a user requests a data object, rather than being randomly connected to one of the limited number of HTTP gates, the GeoDNS servers can estimate the user’s location by IP address and return the two closest CDN edge nodes.

The data request can be sent through these nodes, each of which is proxied to numerous NeoFS HTTP gates which can then serve the request. This ensures minimal latency for content requests, and any edge nodes that are unavailable or unresponsive can be removed from the DNS cluster to ensure users are matched only with healthy servers.

Since NeoFS users can use the data placement policy to define a geographic location when storing data on NeoFS, dApps can also further improve the average response time by using NeoFS storage nodes located near the HTTP gates.

Neo SPCC has updated its Send.NeoFS service with this optimization in mind, intending to make uploaded objects immediately available to CDN edge nodes. As these nodes will also cache responses, future requests to the same URL will be served with minimal latency.

Moving forward, Neo SPCC noted that it will seek to produce a global, decentralized CDN that can be used to further decentralize the operation of blockchain-based applications. The solution would use NeoFS for backend data storage and the Neo blockchain for its governance and economical requirements, providing the infrastructure for truly decentralized applications.

The original article may be read at the link below:
https://medium.com/@neospcc/neofs-cdn-2722586f14bc