Understand what is Filecoin FVM and FEVM (Filecoin Ehtereum Virtual Machine) to to quickly start writing participants on the Filecoin blockchain.
The FVM is a WASM-based polyglot execution environment for IPLD data. It is designed to support native Filecoin actors written in languages that compile to WASM, as well as smart contracts written for foreign runtimes including the Ethereum Virtual Machine (EVM). The Ethereum Virtual Machine is an execution environment originally designed, built, and run for the Ethereum blockchain.
Filecoin EVM (FEVM) is the Ethereum Virtual Machine (EVM), virtualized as a runtime on top of the Filecoin Virtual Machine (FVM). Before understanding FEVM, you must be familiar with general EVM. Keep reading on.
What is Filecoin Virtual Machine (FVM)
The Filecoin Virtual Machine (FVM) is a technology that lets developers deploy custom code to the Filecoin network and have the nodes on the network run that code. The FVM allows developers to link decentralized applications to verified storage — a feature that needs to be added to the web3 ecosystem.
The FVM is a WASM-based polyglot execution environment for IPLD data. It is designed to support native Filecoin actors written in languages that compile to WASM, as well as smart contracts written for foreign runtimes including the Ethereum Virtual Machine (EVM), Secure EcmaScript (SES), and eBPF.
The initial version of the FVM is relatively simple and deliberately conservative in features. This enables developers onboard quickly, and serves as a rock-solid foundation for many innovations to come.
Examples of future ideas include: async programming via continuations/futures, capability-orientation, time-locked transactions (using external beacons), parallel execution, native primitives for cross-chain interoperability, computation correctness proofs, and more.
The FVM supports EVM smart contracts out of the box. It emulates EVM bytecode at the low-level, supporting contracts written in Solidity, Vyper, and Yul.
What is Ethereum Virtual Machine (EVM)
The Ethereum Virtual Machine is an execution environment originally designed, built, and run for the Ethereum blockchain. The EVM is revolutionary because for the first time, arbitrary code can be deployed to and run on a blockchain. The code inherits all the decentralized properties of the Ethereum blockchain. Before the EVM, new blockchains had to be created with custom logic and then bootstrapped with validators every time a new type of decentralized application needed to be built.
Code deployed to the EVM is typically written in the high-level language Solidity, although others exist, such as Vyper. High-level Solidity code is compiled to EVM bytecode, which is what is actually deployed to and run on the EVM. Since it is the first virtual machine to run on a blockchain, the EVM has developed one of the strongest developer ecosystems in Web3 to date. Today, many different blockchains run their own instances of the EVM to allow developers to easily port their existing applications to new blockchain ecosystems.
What is Filecoin EVM (FEVM)
Filecoin EVM (FEVM) is the Ethereum Virtual Machine, virtualized as a runtime on top of the Filecoin Virtual Machine. It will allow developers to port any existing EVM-based smart contracts directly onto the FVM (what we call actors). FEVM is also fully compatible with any EVM development tool such as Hardhat, Brownie, and Metamask, making it easy to deploy and interact with EVM-based actors! This is because Filecoin nodes provide the Ethereum JSON-RPC API.
FEVM is milestone 2.1 on the FVM roadmap and will actually be ready before native WASM actors can deploy to FVM. This is to allow existing smart contract developers who are primarily accustomed to the EVM ecosystem and write code in Solidity to quickly start porting their existing applications and writing new applications on top of FVM.
FEVM VS FVM
Once milestone 2.2 of the FVM roadmap is complete, developers will have the option to deploy actors on FEVM or native FVM (or both, if they really want to). But which should you choose? The decision can be summed up as: if you want better performance, write actors that compile to WASM and deploy to native FVM. If you’re familiar with Solidity and want access to the EVM tool ecosystem, but don’t mind the performance hit, deploy to FEVM. See the pros and cons of each of the following:
FVM | FEVM | |
Pros | Native execution speed and performance (i.e. lower gas cost per unit of participant code executed) on Filecoin. Write actors in any language that compiles to WASM 1. | Quickly port or write actors using current Solidity and EVM tools. |
Cons | Tools are not as mature as EVM tools | Higher gas costs and lower performance due to virtualization overhead of FEVM. |
In both cases, you can use all the powerful features of the Filecoin blockchain, including storage contracts as native primitives!
Conclusion: Quickly Participant on Filecoin Blockchain
FEVM allows current Web3 developers to quickly start writing participants on the Filecoin blockchain, while still using all the tools, packages and languages they are used to, while still being able to access Filecoin storage transactions as native. It will be done with Milestone 2.1 in the FVM roadmap. Due to the virtualization overhead of the EVM, it will not have the same performance as native actors arriving with Milestone 2.2.
FAQs
Is Filecoin EVM Compatible?
It is designed to support native Filecoin actors written in languages that compile to WASM, as well as smart contracts written for foreign runtimes including the Ethereum Virtual Machine (EVM), Secure EcmaScript (SES), and eBPF.
Is Filecoin Built on Ethereum?
Filecoin incentivizes IPFS by rewarding storage providers and retrievers for contributing resources to the system. The network also comes with built-in Ethereum integration allowing developers to access data on Ethereum’s blockchain and interact with its smart contracts.
Is Mining Filecoin Profitable?
It can be. However, its profitability will depend on many factors, such as the price of Filecoin (its current price is $7.63), the amount of storage space you have available, and the amount of CPU or GPU power you are willing to use for mining.
How to Mine Filecoin?
To mine Filecoins, miners must provide storage space and bandwidth to clients. In return, they are rewarded with Filecoins for their contributions. Storage providers earn File crypto by leasing their storage space to miners.