ref-fvm
ref-fvm copied to clipboard
Reference implementation of the Filecoin Virtual Machine
## MVP - [ ] Endpoint for FFI to call into FVM to start up a validator - [ ] CGO FFI bindings - [ ] Syscall access constraining TODO...
## Context and motivation In order to ship the EVM runtime as a built-in actor, the easiest solution is to place the code inside the builtin-actors repo so that its...
## Motivation Foreign runtimes (e.g. EVM) make assumptions about the addressing scheme. Furthermore, existing workloads deployed on those runtimes (e.g. smart contracts on Ethereum) make further assumptions, as is the...
## Context The FVM team has decided to deliver FVM M2.1 (FEVM) in an incremental fashion. This allows the Filecoin community: - continuously experiment with FEVM, as it's being built...
ARM64 architecture wasn't the problem in https://github.com/filecoin-project/ref-fvm/issues/599, the ancient Linux kernel was. However, we should run unit, integration and conformance tests (as well as the build, obviously) on CI on...
HAMTs currently perform SHA256 hashing inside the actors (for hashing HAMT keys). We should be doing this via a syscall.
Currently, we need to pay an "extern" cost to get the randomness. However, we can pretty easily construct the FVM with 2x finality randomness information to avoid having to go...
(For M2.2) Besides `invoke` we are adding new entrypoints to actors to support [account abstraction](https://github.com/filecoin-project/FIPs/discussions/388) and updatable actors. Both the FVM and clients will need to make a quick determination...
Currently, we pull in the v7 bundle via cargo. However: 1. We no longer publish the bundle to crates.io. 2. We now build the bundle in github CI. So, we...
Currently, there are two code-paths for actor creation: 1. [Implicitly created actor accounts.](https://github.com/filecoin-project/ref-fvm/blob/7a4526943b404e47137714612f963bef50d30a37/fvm/src/state_tree.rs#L262-L277) 2. [Explicitly created actors (from the init actor)](https://github.com/filecoin-project/builtin-actors/blob/b7a35b4368377f090465553d0d6fe651fefb771b/actors/init/src/lib.rs#L80-L83). Both methods take entirely separate code paths. Proposal: Use...