How Does Station Work
Station is a deployment target for running code (modules) on hardware provided by Station Operators. Station Operators can either run Station Core on a server, or they can run Station Desktop on their home computers. Soon, operators will even be able to run Station on their phones.
Modules
Modules are independent pieces of code that run on Station. The first module that is running on Station is called Spark. Spark makes retrieval requests to Filecoin Storage Providers and measures the responses. You can read more about Spark here.
Station is built so that many independent modules can run at the same time. Station is able to do this with its runtime which is called Zinnia. Zinnia leans on the v8 isolate architecture to ensure that there are strong enough guarantees around sandboxing and security to make sure that modules can’t do things they aren’t supposed to.
Zinnia
Zinnia is Station’s sandboxed and resource-limited runtime for distributed workers. It is named after the first flower to bloom is space! Our goal is to offer a runtime that is able to make the most of Station operators’ unused capacity, but with limits on resource usage, to ensure the Station is unobtrusive and does not interfere with other work performed by your computer, even as it scales up and down.
Zinnia is built using Deno Core which in turn builds on the v8 engine and isolate model. v8 isolates are battle-tested as the backbone of popular web browsers like Google Chrome, allowing for sandboxing between domains. They are also used at the foundations for Cloudflare workers. Zinnia allows Station module builders to build in JS and Rust/WASM.
If you would like to start building a Station module on Zinnia, head to here.