Table of Contents

Introduction

The goal of this document is to describe how we can build the Saturn L2(”L2”) node and by extension the Saturn L2 network. It will also try to flesh out the L1 ↔ L2 interplay story with the goal of building a high bandwidth, low latency and reliable CDN on top of the L2 network. It will lay out the feature set/milestones we need to achieve for a working MVP that we can quickly deploy to our users to solicit feedback and also talk about the optimisations and further engineering we can do to optimise the L2 network post MVP launch.

Non-Goals

This document does NOT attempt to solve the L2 ↔ Filecoin Storage Provider(”Filecoin SP”) cache miss story. The L2 nodes will cache miss to the IPFS Gateway/Estuary for the MVP/V1. We can work on the L2 ↔ SP cache miss story once Project Thunder and Lightning Storm lands and enables performant and reliable retrievals from SPs. However, the remainder of this document will assume that the origin server is the Filecoin SP as that’s the eventual problem we are solving for.

Let’s talk about the shortcomings of an L2 node that will guide the design and solutions we need to engineer.

Shortcomings of an L2

L2s are resource constrained home machines running on a flaky home network. The limitations of an L2 node that we need to account for are:

Considering the above L2 limitations, we need to put in significant thought and engineering in building a high bandwidth, low latency and reliable CDN on top of the L2 network. Bittorent solved the same problem of building a p2p content transfer network using home machines and so we have some precedents to draw from with the added benefit that Saturn L2s will be incentivised to serve retrievals by getting paid in FIL tokens versus the relatively weaker “I scratch your back, you scratch mine” incentives of the Bittorent network.

Why build the L2 network at all ?

There have been some concerns about the incentives of an L1 node to fetch an L1 cache miss from an L2 rather than the L1 fetching a cache miss directly from the Filecoin SP/origin server given the suboptimal nature of L2s described above. The answer to this concern depends on whether the L1 sees an L2 cache hit or an L2 cache miss:

When an L1 request results in an L2 cache hit

If an L2 already has the desired content cached and the L1 fetch would be a cache hit, the L1 will get the following benefits by fetching the content from the L2 rather than the Filecoin SP: