Filecoin Virtual Machine Explained, From Scratch - Part 1

You've seen the words "Filecoin" & "IPFS" and the potential of "FVM" but you're new to web3

Β·

6 min read

Starting from scratch? I got you.

Hi! I'm Sarah, a Developer Advocate on the Filecoin Virtual Machine (FVM) team, as part of Protocol Labs.

If you're new to web3 and starting out on a search engine bar to try to make sense of it a, you might click around and see "Filecoin" or "IPFS". And in those circles, you'll see quite a bit of buzz about "the FVM" and the capability it will unlock for all things data-related. Sounds massive but you sifted through lots of articles and things still aren't clicking.

I too, went down that user journey, before I joined Protocol Labs this month. And I'll be the first to admit, I struggled (still struggling) to understand a lot of the terminologies in the repos and docs. PLUS clicking in and out of Wikipedia hyperlinks, made it hard to digest the narrative.

So I've written this introductory guide to FVM, with the self-given challenge of not hyperlinking terminologies but rather, trying to explain them! I hope you walk away from this with a little more clarity and knowledge πŸ™‚

Some context

Protocol Labs is an open-source research, development, and deployment laboratory. It started back in 2014 and has since launched 2 key products - the Interplanetary File System (IPFS) & Filecoin.

In short, IPFS is intended as a more efficient, resilient and democratic alternative to HTTP (yes the internet protocol that powers our URLs today). A protocol is a set of coded rules to determine how data is transferred in a network.

The main difference between IPFS and HTTP, is that the former is a decentralised peer-to-peer model & the latter is a centralised client-server model. In this context, 'peer' refers to devices that can provide data operations, owned by individuals in the majority, like a common individual's device. 'Server' refers to a single/few majority shareholder that owns the device that provides operations to the majority like AWS, Google etc.

I won't rabbit-hole into IPFS here but if you're already interested, you can read the technical docs or watch a clear video explanation (~30 mins) from my team mate @mosh.

To give a popular reference and a sense of how well IPFS is used today, it powers NFT.Storage that powers OpenSea which is a widely used NFT marketplace. New to NFTs? It stands for Non-Fungible Tokens that are digital assets, which cannot be replicated and ownership is recorded for all to see, via the blockchain.

With IPFS in place to transfer large amounts of data in a decentralised network, Filecoin was then created to enable a storage & retrieval marketplace and an incentive layer, to move these data around.

Filecoin and IPFS are complementary protocols. The difference is that Filecoin is backed by a blockchain, while IPFS is not. A blockchain is a massively replicated database that then functions as an agreed upon record of operations, by many many people, via the nodes they run on the devices they own.

Filecoin uses the blockchain to capture and facilitate marketplace operations of storing & receiving, by referencing the unique address tagged to each piece of data. The same data that is transferred via the protocol that IPFS uses.

Deep breaths, trust me, you already got half of it down!

Filecoin technology enables the necessary functions that occur between Storage Provider & Client (e.g. deals to store data, retrieve the data etc.). To give a sense of how much storage the Filecoin network currently provides, it's over 18 exbibytes (EiB)!

I find the below conversion helpful to explain to the common person, although I'll never let my mother know this cos that would mean her asking me how she can get it set up, to call me everyday πŸ‘πŸ‘„πŸ‘

13 exbibyte is the same as 8,905,000 years of non-stop video calling. 🀳 Staying connected and up-to-date with your family and friends would be effortless!

β€” Filecoin (@Filecoin) November 4, 2021

Now we get to FVM

FVM was created to add general programmability to the Filecoin blockchain (general programmability means you can code it to do just about anything you imagine). Just to be clear, we're not actually programming your stored data, but defining how it can automatically/conditionally behave after being stored on the network via actors (Filecoin's equivalent of smart contracts).

Now imagine the use cases. You could enhance the capabilities of the Filecoin storage marketplace for a more efficient, cheaper and more secure experience. You could create a perpetual dataset that keeps growing without manual maintenance. You could automate transactions for NFTs stored on the network for lower costs of operations. Any data-related use case could be applied on the FVM, as a layer that runs natively (directly) on top of the Filecoin blockchain, resulting in more efficient, resilient, secure and democratic computing in Web 3.0. Here's a really clear explanation of use cases from my team lead @RaΓΊl Kripalani:

Sounds cool, I'm in.

Great! Before I throw a bunch of resources at you to get started, let me briefly describe where we're headed.

FVM is currently a work-in-progress. We are at Milestone 2.1 of 3, before what we envision can be widely used around Q1 2023. You can see our full roadmap and gain a thorough understanding! At time of writing, we are currently focussed on allowing Ethereum smart contracts (EVMs) to be added as-is to the FVM, which should make it easier for the wide user base of EVMs. More on FVM VS EVM soon!

We are an open-source team and as with the general ethos of Web 3.0, we need builders, testers, community input and more to achieve this vision together. No input is too small or not technical enough (really REALLY). Here's how we can build this together:

  • Experienced solidity devs, with a great EVM to FVM use case in mind: join the Foundry F/1 Cohort, more info here (starts in October 2022 so apply soon!)
  • Experienced solidity devs who want to learn more: join the #FVM Slack channel and see the docs
  • Devs & Community:
    • join the #FVM Slack channel, we're going to kick-off community calls soon. I'm running them I promise it'll be fun.
    • contribute to the FVM Discourse and build the docs together!

Alrighty, hope that gave you a good understanding of the FVM vision and why we do it.

This FVM, From Scratch series aims to give context for beginners and guide us towards deploying on the FVM and disrupting πŸ˜‡ Next article is likely to be on a whole lot of terminologies, to prepare you for entering the docs.

-Sarah

Β