For a definition of M0 Milestone, see
Filecoin Saturn will be one of hopefully many networks to sit alongside the existing Filecoin Storage Provider Network in order to dramatically improve the retrieval performance and reliability of files stored in the wider Filecoin ecosystem.
The MVP proposal for Filecoin Saturn is shown in the below diagram.
This early architecture is just the first step towards making a decentralised retrieval network for Filecoin and focusses on the deployment of L1 cache nodes. These L1 cache nodes act as an entry point to the retrieval network for browser requests, which are mostly HTTP based.
In order to set up a L1 cache node, the L1 node operator will download a docker image from our distribution site. They will then spin it up and inform the Orchestrator that they have joined the network and are ready to begin serving content. They will send the orchestrator the following information.
The orchestrator, having established a secure connection with the L1 cache node, generates a new private key and CSR using the peer Id. The Orchestrator then requests a new cert for cdn.strn.network
from ZeroSSL and creates the CNAME record required to verify domain with Route53. The Orchestrator verifies with ZeroSSL and downloads the cert and replies back to L1 node with the private key and cert. The L1 node saves the cert and private key, and restarts its nginx with the new valid TLS config.
A L1 cache node does not need to preload itself with any files. It will populate its cache from the IPFS Gateway following a cache-miss, so it is now ready to go.
The retrieval client makes a request to its nearest L1 node based on geo matching in DNS. If the L1 node is storing the relevant file in its cache it will return it to the browser. If not it will cache-miss to the IPFS gateway which has an endpoint for CAR files. It will retrieve the relevant CAR file and return it to the browser.
In the browser, the file will pass through the service worker which will incrementally verify the CAR file and convert it back into the raw file for rendering.
The L1 node will then create a log record that it will send to the log service to record that it has provided a retrieval.